From cccb0bbaa41e95a1efbe997ebe8119454f9b93f9 Mon Sep 17 00:00:00 2001 From: Aria Desires Date: Thu, 4 Dec 2025 10:46:23 -0500 Subject: [PATCH 01/65] [ty] Add tests for implicit submodule references (#21793) ## Summary I realized we don't really test `DefinitionKind::ImportFromSubmodule` in the IDE at all, so here's a bunch of them, just recording our current behaviour. ## Test Plan *stares at the camera* --- crates/ty_ide/src/find_references.rs | 207 +++++++++++++++ crates/ty_ide/src/goto_declaration.rs | 292 ++++++++++++++++++++++ crates/ty_ide/src/goto_type_definition.rs | 277 ++++++++++++++++++++ crates/ty_ide/src/hover.rs | 291 +++++++++++++++++++++ crates/ty_ide/src/rename.rs | 203 +++++++++++++++ 5 files changed, 1270 insertions(+) diff --git a/crates/ty_ide/src/find_references.rs b/crates/ty_ide/src/find_references.rs index 5b5c3e4f43..48cbfaf9cf 100644 --- a/crates/ty_ide/src/find_references.rs +++ b/crates/ty_ide/src/find_references.rs @@ -1906,4 +1906,211 @@ func_alias() | "); } + + #[test] + fn references_submodule_import_from_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = subpkg + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // TODO(submodule-imports): this should light up both instances of `subpkg` + assert_snapshot!(test.references(), @r" + info[references]: Reference 1 + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg.submod import val + 3 | + 4 | x = subpkg + | ^^^^^^ + | + "); + } + + #[test] + fn references_submodule_import_from_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = subpkg + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // TODO(submodule-imports): this should light up both instances of `subpkg` + assert_snapshot!(test.references(), @"No references found"); + } + + #[test] + fn references_submodule_import_from_wrong_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = submod + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // No references is actually correct (or it should only see itself) + assert_snapshot!(test.references(), @"No references found"); + } + + #[test] + fn references_submodule_import_from_wrong_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = submod + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // No references is actually correct (or it should only see itself) + assert_snapshot!(test.references(), @"No references found"); + } + + #[test] + fn references_submodule_import_from_confusing_shadowed_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // No references is actually correct (or it should only see itself) + assert_snapshot!(test.references(), @"No references found"); + } + + #[test] + fn references_submodule_import_from_confusing_real_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + assert_snapshot!(test.references(), @r" + info[references]: Reference 1 + --> mypackage/__init__.py:2:21 + | + 2 | from .subpkg import subpkg + | ^^^^^^ + 3 | + 4 | x = subpkg + | + + info[references]: Reference 2 + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg import subpkg + 3 | + 4 | x = subpkg + | ^^^^^^ + | + + info[references]: Reference 3 + --> mypackage/subpkg/__init__.py:2:1 + | + 2 | subpkg: int = 10 + | ^^^^^^ + | + "); + } + + #[test] + fn references_submodule_import_from_confusing_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // TODO: this should also highlight the RHS subpkg in the import + assert_snapshot!(test.references(), @r" + info[references]: Reference 1 + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg import subpkg + 3 | + 4 | x = subpkg + | ^^^^^^ + | + "); + } } diff --git a/crates/ty_ide/src/goto_declaration.rs b/crates/ty_ide/src/goto_declaration.rs index 02b329f88e..a2f147b2d3 100644 --- a/crates/ty_ide/src/goto_declaration.rs +++ b/crates/ty_ide/src/goto_declaration.rs @@ -2602,6 +2602,298 @@ def ab(a: int, *, c: int): ... "); } + #[test] + fn goto_declaration_submodule_import_from_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = subpkg + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // TODO(submodule-imports): this should only highlight `subpkg` in the import statement + // This happens because DefinitionKind::ImportFromSubmodule claims the entire ImportFrom node, + // which is correct but unhelpful. Unfortunately even if it only claimed the LHS identifier it + // would highlight `subpkg.submod` which is strictly better but still isn't what we want. + assert_snapshot!(test.goto_declaration(), @r" + info[goto-declaration]: Declaration + --> mypackage/__init__.py:2:1 + | + 2 | from .subpkg.submod import val + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 3 | + 4 | x = subpkg + | + info: Source + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg.submod import val + 3 | + 4 | x = subpkg + | ^^^^^^ + | + "); + } + + #[test] + fn goto_declaration_submodule_import_from_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = subpkg + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // TODO(submodule-imports): I don't *think* this is what we want..? + // It's a bit confusing because this symbol is essentially the LHS *and* RHS of + // `subpkg = mypackage.subpkg`. As in, it's both defining a local `subpkg` and + // loading the module `mypackage.subpkg`, so, it's understandable to get confused! + assert_snapshot!(test.goto_declaration(), @r" + info[goto-declaration]: Declaration + --> mypackage/subpkg/__init__.py:1:1 + | + | + info: Source + --> mypackage/__init__.py:2:7 + | + 2 | from .subpkg.submod import val + | ^^^^^^ + 3 | + 4 | x = subpkg + | + "); + } + + #[test] + fn goto_declaration_submodule_import_from_wrong_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = submod + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // No result is correct! + assert_snapshot!(test.goto_declaration(), @"No goto target found"); + } + + #[test] + fn goto_declaration_submodule_import_from_wrong_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = submod + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // Going to the submod module is correct! + assert_snapshot!(test.goto_declaration(), @r" + info[goto-declaration]: Declaration + --> mypackage/subpkg/submod.py:1:1 + | + 1 | + | ^ + 2 | val: int = 0 + | + info: Source + --> mypackage/__init__.py:2:14 + | + 2 | from .subpkg.submod import val + | ^^^^^^ + 3 | + 4 | x = submod + | + "); + } + + #[test] + fn goto_declaration_submodule_import_from_confusing_shadowed_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // Going to the subpkg module is correct! + assert_snapshot!(test.goto_declaration(), @r" + info[goto-declaration]: Declaration + --> mypackage/subpkg/__init__.py:1:1 + | + 1 | + | ^ + 2 | subpkg: int = 10 + | + info: Source + --> mypackage/__init__.py:2:7 + | + 2 | from .subpkg import subpkg + | ^^^^^^ + 3 | + 4 | x = subpkg + | + "); + } + + #[test] + fn goto_declaration_submodule_import_from_confusing_real_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // Going to the subpkg `int` is correct! + assert_snapshot!(test.goto_declaration(), @r" + info[goto-declaration]: Declaration + --> mypackage/subpkg/__init__.py:2:1 + | + 2 | subpkg: int = 10 + | ^^^^^^ + | + info: Source + --> mypackage/__init__.py:2:21 + | + 2 | from .subpkg import subpkg + | ^^^^^^ + 3 | + 4 | x = subpkg + | + "); + } + + #[test] + fn goto_declaration_submodule_import_from_confusing_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // TODO(submodule-imports): Ok this one is FASCINATING and it's kinda right but confusing! + // + // So there's 3 relevant definitions here: + // + // * `subpkg: int = 10` in the other file is in fact the original definition + // + // * the LHS `subpkg` in the import is an instance of `subpkg = ...` + // because it's a `DefinitionKind::ImportFromSubmodle`. + // This is the span that covers the entire import. + // + // * `the RHS `subpkg` in the import is a second instance of `subpkg = ...` + // that *immediately* overwrites the `ImportFromSubmodule`'s definition + // This span seemingly doesn't appear at all!? Is it getting hidden by the LHS span? + assert_snapshot!(test.goto_declaration(), @r" + info[goto-declaration]: Declaration + --> mypackage/__init__.py:2:1 + | + 2 | from .subpkg import subpkg + | ^^^^^^^^^^^^^^^^^^^^^^^^^^ + 3 | + 4 | x = subpkg + | + info: Source + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg import subpkg + 3 | + 4 | x = subpkg + | ^^^^^^ + | + + info[goto-declaration]: Declaration + --> mypackage/subpkg/__init__.py:2:1 + | + 2 | subpkg: int = 10 + | ^^^^^^ + | + info: Source + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg import subpkg + 3 | + 4 | x = subpkg + | ^^^^^^ + | + "); + } + impl CursorTest { fn goto_declaration(&self) -> String { let Some(targets) = goto_declaration(&self.db, self.cursor.file, self.cursor.offset) diff --git a/crates/ty_ide/src/goto_type_definition.rs b/crates/ty_ide/src/goto_type_definition.rs index b611eac28a..fc5aa9aded 100644 --- a/crates/ty_ide/src/goto_type_definition.rs +++ b/crates/ty_ide/src/goto_type_definition.rs @@ -1672,6 +1672,283 @@ def function(): "#); } + #[test] + fn goto_type_submodule_import_from_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = subpkg + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // The module is the correct type definition + assert_snapshot!(test.goto_type_definition(), @r" + info[goto-type-definition]: Type definition + --> mypackage/subpkg/__init__.py:1:1 + | + | + info: Source + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg.submod import val + 3 | + 4 | x = subpkg + | ^^^^^^ + | + "); + } + + #[test] + fn goto_type_submodule_import_from_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = subpkg + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // The module is the correct type definition + assert_snapshot!(test.goto_type_definition(), @r" + info[goto-type-definition]: Type definition + --> mypackage/subpkg/__init__.py:1:1 + | + | + info: Source + --> mypackage/__init__.py:2:7 + | + 2 | from .subpkg.submod import val + | ^^^^^^ + 3 | + 4 | x = subpkg + | + "); + } + + #[test] + fn goto_type_submodule_import_from_wrong_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = submod + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // Unknown is correct, `submod` is not in scope + assert_snapshot!(test.goto_type_definition(), @r" + info[goto-type-definition]: Type definition + --> stdlib/ty_extensions.pyi:20:1 + | + 19 | # Types + 20 | Unknown = object() + | ^^^^^^^ + 21 | AlwaysTruthy = object() + 22 | AlwaysFalsy = object() + | + info: Source + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg.submod import val + 3 | + 4 | x = submod + | ^^^^^^ + | + "); + } + + #[test] + fn goto_type_submodule_import_from_wrong_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = submod + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // The module is correct + assert_snapshot!(test.goto_type_definition(), @r" + info[goto-type-definition]: Type definition + --> mypackage/subpkg/submod.py:1:1 + | + 1 | / + 2 | | val: int = 0 + | |_____________^ + | + info: Source + --> mypackage/__init__.py:2:14 + | + 2 | from .subpkg.submod import val + | ^^^^^^ + 3 | + 4 | x = submod + | + "); + } + + #[test] + fn goto_type_submodule_import_from_confusing_shadowed_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // The module is correct + assert_snapshot!(test.goto_type_definition(), @r" + info[goto-type-definition]: Type definition + --> mypackage/subpkg/__init__.py:1:1 + | + 1 | / + 2 | | subpkg: int = 10 + | |_________________^ + | + info: Source + --> mypackage/__init__.py:2:7 + | + 2 | from .subpkg import subpkg + | ^^^^^^ + 3 | + 4 | x = subpkg + | + "); + } + + #[test] + fn goto_type_submodule_import_from_confusing_real_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // `int` is correct + assert_snapshot!(test.goto_type_definition(), @r#" + info[goto-type-definition]: Type definition + --> stdlib/builtins.pyi:348:7 + | + 347 | @disjoint_base + 348 | class int: + | ^^^ + 349 | """int([x]) -> integer + 350 | int(x, base=10) -> integer + | + info: Source + --> mypackage/__init__.py:2:21 + | + 2 | from .subpkg import subpkg + | ^^^^^^ + 3 | + 4 | x = subpkg + | + "#); + } + + #[test] + fn goto_type_submodule_import_from_confusing_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // `int` is correct + assert_snapshot!(test.goto_type_definition(), @r#" + info[goto-type-definition]: Type definition + --> stdlib/builtins.pyi:348:7 + | + 347 | @disjoint_base + 348 | class int: + | ^^^ + 349 | """int([x]) -> integer + 350 | int(x, base=10) -> integer + | + info: Source + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg import subpkg + 3 | + 4 | x = subpkg + | ^^^^^^ + | + "#); + } + impl CursorTest { fn goto_type_definition(&self) -> String { let Some(targets) = diff --git a/crates/ty_ide/src/hover.rs b/crates/ty_ide/src/hover.rs index e9d913570c..affa6054e2 100644 --- a/crates/ty_ide/src/hover.rs +++ b/crates/ty_ide/src/hover.rs @@ -3321,6 +3321,297 @@ def function(): "); } + #[test] + fn hover_submodule_import_from_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = subpkg + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // The module is correct + assert_snapshot!(test.hover(), @r" + + --------------------------------------------- + ```python + + ``` + --------------------------------------------- + info[hover]: Hovered content is + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg.submod import val + 3 | + 4 | x = subpkg + | ^^^-^^ + | | | + | | Cursor offset + | source + | + "); + } + + #[test] + fn hover_submodule_import_from_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = subpkg + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // The module is correct + assert_snapshot!(test.hover(), @r" + + --------------------------------------------- + ```python + + ``` + --------------------------------------------- + info[hover]: Hovered content is + --> mypackage/__init__.py:2:7 + | + 2 | from .subpkg.submod import val + | ^^^-^^ + | | | + | | Cursor offset + | source + 3 | + 4 | x = subpkg + | + "); + } + + #[test] + fn hover_submodule_import_from_wrong_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = submod + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // Unknown is correct + assert_snapshot!(test.hover(), @r" + Unknown + --------------------------------------------- + ```python + Unknown + ``` + --------------------------------------------- + info[hover]: Hovered content is + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg.submod import val + 3 | + 4 | x = submod + | ^^^-^^ + | | | + | | Cursor offset + | source + | + "); + } + + #[test] + fn hover_submodule_import_from_wrong_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = submod + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // The submodule is correct + assert_snapshot!(test.hover(), @r" + + --------------------------------------------- + ```python + + ``` + --------------------------------------------- + info[hover]: Hovered content is + --> mypackage/__init__.py:2:14 + | + 2 | from .subpkg.submod import val + | ^^^-^^ + | | | + | | Cursor offset + | source + 3 | + 4 | x = submod + | + "); + } + + #[test] + fn hover_submodule_import_from_confusing_shadowed_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // The module is correct + assert_snapshot!(test.hover(), @r" + + --------------------------------------------- + ```python + + ``` + --------------------------------------------- + info[hover]: Hovered content is + --> mypackage/__init__.py:2:7 + | + 2 | from .subpkg import subpkg + | ^^^-^^ + | | | + | | Cursor offset + | source + 3 | + 4 | x = subpkg + | + "); + } + + #[test] + fn hover_submodule_import_from_confusing_real_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // int is correct + assert_snapshot!(test.hover(), @r" + int + --------------------------------------------- + ```python + int + ``` + --------------------------------------------- + info[hover]: Hovered content is + --> mypackage/__init__.py:2:21 + | + 2 | from .subpkg import subpkg + | ^^^-^^ + | | | + | | Cursor offset + | source + 3 | + 4 | x = subpkg + | + "); + } + + #[test] + fn hover_submodule_import_from_confusing_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // int is correct + assert_snapshot!(test.hover(), @r" + int + --------------------------------------------- + ```python + int + ``` + --------------------------------------------- + info[hover]: Hovered content is + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg import subpkg + 3 | + 4 | x = subpkg + | ^^^-^^ + | | | + | | Cursor offset + | source + | + "); + } + impl CursorTest { fn hover(&self) -> String { use std::fmt::Write; diff --git a/crates/ty_ide/src/rename.rs b/crates/ty_ide/src/rename.rs index 62f1c9f1e4..10ef9c197f 100644 --- a/crates/ty_ide/src/rename.rs +++ b/crates/ty_ide/src/rename.rs @@ -1223,4 +1223,207 @@ result = func(10, y=20) assert_snapshot!(test.rename("z"), @"Cannot rename"); } + + #[test] + fn rename_submodule_import_from_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = subpkg + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // TODO(submodule-imports): we should refuse to rename this (it's the name of a module) + assert_snapshot!(test.rename("mypkg"), @r" + info[rename]: Rename symbol (found 1 locations) + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg.submod import val + 3 | + 4 | x = subpkg + | ^^^^^^ + | + "); + } + + #[test] + fn rename_submodule_import_from_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = subpkg + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // Refusing to rename is correct + assert_snapshot!(test.rename("mypkg"), @"Cannot rename"); + } + + #[test] + fn rename_submodule_import_from_wrong_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = submod + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // Refusing to rename is good/fine here, it's an undefined reference + assert_snapshot!(test.rename("mypkg"), @"Cannot rename"); + } + + #[test] + fn rename_submodule_import_from_wrong_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg.submod import val + + x = submod + "#, + ) + .source("mypackage/subpkg/__init__.py", r#""#) + .source( + "mypackage/subpkg/submod.py", + r#" + val: int = 0 + "#, + ) + .build(); + + // Refusing to rename is good here, it's a module name + assert_snapshot!(test.rename("mypkg"), @"Cannot rename"); + } + + #[test] + fn rename_submodule_import_from_confusing_shadowed_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // Refusing to rename is good here, it's the name of a module + assert_snapshot!(test.rename("mypkg"), @"Cannot rename"); + } + + #[test] + fn rename_submodule_import_from_confusing_real_def() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // Renaming the integer is correct + assert_snapshot!(test.rename("mypkg"), @r" + info[rename]: Rename symbol (found 3 locations) + --> mypackage/__init__.py:2:21 + | + 2 | from .subpkg import subpkg + | ^^^^^^ + 3 | + 4 | x = subpkg + | ------ + | + ::: mypackage/subpkg/__init__.py:2:1 + | + 2 | subpkg: int = 10 + | ------ + | + "); + } + + #[test] + fn rename_submodule_import_from_confusing_use() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from .subpkg import subpkg + + x = subpkg + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + subpkg: int = 10 + "#, + ) + .build(); + + // TODO(submodule-imports): this is incorrect, we should rename the `subpkg` int + // and the RHS of the import statement (but *not* rename the LHS). + // + // However us being cautious here *would* be good as the rename will actually + // result in a `subpkg` variable still existing in this code, as the import's LHS + // `DefinitionKind::ImportFromSubmodule` would stop being overwritten by the RHS! + assert_snapshot!(test.rename("mypkg"), @r" + info[rename]: Rename symbol (found 1 locations) + --> mypackage/__init__.py:4:5 + | + 2 | from .subpkg import subpkg + 3 | + 4 | x = subpkg + | ^^^^^^ + | + "); + } } From 62f20b1e86494331551fa7ae8d6eb584658e11a7 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Wed, 29 Oct 2025 15:20:48 -0400 Subject: [PATCH 02/65] [ty] Re-arrange imports in symbol extraction I like using a qualified `ast::` prefix for things from `ruff_python_ast`, so switch over to that convention. --- crates/ty_ide/src/symbols.rs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/crates/ty_ide/src/symbols.rs b/crates/ty_ide/src/symbols.rs index a2278f40e6..ebb6637ae3 100644 --- a/crates/ty_ide/src/symbols.rs +++ b/crates/ty_ide/src/symbols.rs @@ -9,8 +9,9 @@ use regex::Regex; use ruff_db::files::File; use ruff_db::parsed::parsed_module; use ruff_index::{IndexVec, newtype_index}; +use ruff_python_ast as ast; +use ruff_python_ast::name::Name; use ruff_python_ast::visitor::source_order::{self, SourceOrderVisitor}; -use ruff_python_ast::{Expr, Stmt}; use ruff_text_size::{Ranged, TextRange}; use ty_project::Db; @@ -416,7 +417,7 @@ struct SymbolVisitor { } impl SymbolVisitor { - fn visit_body(&mut self, body: &[Stmt]) { + fn visit_body(&mut self, body: &[ast::Stmt]) { for stmt in body { self.visit_stmt(stmt); } @@ -457,9 +458,9 @@ impl SymbolVisitor { } impl SourceOrderVisitor<'_> for SymbolVisitor { - fn visit_stmt(&mut self, stmt: &Stmt) { + fn visit_stmt(&mut self, stmt: &ast::Stmt) { match stmt { - Stmt::FunctionDef(func_def) => { + ast::Stmt::FunctionDef(func_def) => { let kind = if self .iter_symbol_stack() .any(|s| s.kind == SymbolKind::Class) @@ -501,7 +502,7 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { self.pop_symbol(); } - Stmt::ClassDef(class_def) => { + ast::Stmt::ClassDef(class_def) => { let symbol = SymbolTree { parent: None, name: class_def.name.to_string(), @@ -521,13 +522,15 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { self.pop_symbol(); } - Stmt::Assign(assign) => { + ast::Stmt::Assign(assign) => { // Include assignments only when we're in global or class scope if self.in_function { return; } for target in &assign.targets { - let Expr::Name(name) = target else { continue }; + let ast::Expr::Name(name) = target else { + continue; + }; let kind = if Self::is_constant_name(name.id.as_str()) { SymbolKind::Constant } else if self @@ -550,12 +553,12 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { } } - Stmt::AnnAssign(ann_assign) => { + ast::Stmt::AnnAssign(ann_assign) => { // Include assignments only when we're in global or class scope if self.in_function { return; } - let Expr::Name(name) = &*ann_assign.target else { + let ast::Expr::Name(name) = &*ann_assign.target else { return; }; let kind = if Self::is_constant_name(name.id.as_str()) { From 5da45f8ec78f119ae58cd04b8634b6831a423efa Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Tue, 25 Nov 2025 14:02:34 -0500 Subject: [PATCH 03/65] [ty] Simplify auto-import AST visitor slightly and add tests This simplifies the existing visitor by DRYing it up slightly. We also add tests for the existing functionality. In particular, we want to add support for re-export conventions, and that warrants more careful testing. --- crates/ty_ide/src/symbols.rs | 266 +++++++++++++++++++++++++++++------ 1 file changed, 221 insertions(+), 45 deletions(-) diff --git a/crates/ty_ide/src/symbols.rs b/crates/ty_ide/src/symbols.rs index ebb6637ae3..a49ac318fc 100644 --- a/crates/ty_ide/src/symbols.rs +++ b/crates/ty_ide/src/symbols.rs @@ -436,6 +436,28 @@ impl SymbolVisitor { symbol_id } + fn add_assignment(&mut self, stmt: &ast::Stmt, name: &ast::ExprName) -> SymbolId { + let kind = if Self::is_constant_name(name.id.as_str()) { + SymbolKind::Constant + } else if self + .iter_symbol_stack() + .any(|s| s.kind == SymbolKind::Class) + { + SymbolKind::Field + } else { + SymbolKind::Variable + }; + + let symbol = SymbolTree { + parent: None, + name: name.id.to_string(), + kind, + name_range: name.range(), + full_range: stmt.range(), + }; + self.add_symbol(symbol) + } + fn push_symbol(&mut self, symbol: SymbolTree) { let symbol_id = self.add_symbol(symbol); self.symbol_stack.push(symbol_id); @@ -501,7 +523,6 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { self.pop_symbol(); } - ast::Stmt::ClassDef(class_def) => { let symbol = SymbolTree { parent: None, @@ -521,7 +542,6 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { source_order::walk_stmt(self, stmt); self.pop_symbol(); } - ast::Stmt::Assign(assign) => { // Include assignments only when we're in global or class scope if self.in_function { @@ -531,28 +551,9 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { let ast::Expr::Name(name) = target else { continue; }; - let kind = if Self::is_constant_name(name.id.as_str()) { - SymbolKind::Constant - } else if self - .iter_symbol_stack() - .any(|s| s.kind == SymbolKind::Class) - { - SymbolKind::Field - } else { - SymbolKind::Variable - }; - - let symbol = SymbolTree { - parent: None, - name: name.id.to_string(), - kind, - name_range: name.range(), - full_range: stmt.range(), - }; - self.add_symbol(symbol); + self.add_assignment(stmt, name); } } - ast::Stmt::AnnAssign(ann_assign) => { // Include assignments only when we're in global or class scope if self.in_function { @@ -561,27 +562,8 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { let ast::Expr::Name(name) = &*ann_assign.target else { return; }; - let kind = if Self::is_constant_name(name.id.as_str()) { - SymbolKind::Constant - } else if self - .iter_symbol_stack() - .any(|s| s.kind == SymbolKind::Class) - { - SymbolKind::Field - } else { - SymbolKind::Variable - }; - - let symbol = SymbolTree { - parent: None, - name: name.id.to_string(), - kind, - name_range: name.range(), - full_range: stmt.range(), - }; - self.add_symbol(symbol); + self.add_assignment(stmt, name); } - _ => { source_order::walk_stmt(self, stmt); } @@ -591,9 +573,16 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { #[cfg(test)] mod tests { - fn matches(query: &str, symbol: &str) -> bool { - super::QueryPattern::fuzzy(query).is_match_symbol_name(symbol) - } + use camino::Utf8Component; + use insta::internals::SettingsBindDropGuard; + + use ruff_db::Db; + use ruff_db::files::{FileRootKind, system_path_to_file}; + use ruff_db::system::{DbWithWritableSystem, SystemPath, SystemPathBuf}; + use ruff_python_trivia::textwrap::dedent; + use ty_project::{ProjectMetadata, TestDb}; + + use super::symbols_for_file_global_only; #[test] fn various_yes() { @@ -625,4 +614,191 @@ mod tests { assert!(!matches("abcd", "abc")); assert!(!matches("δΘπ", "θΔΠ")); } + + #[test] + fn exports_simple() { + insta::assert_snapshot!( + public_test("\ +FOO = 1 +foo = 1 +frob: int = 1 +class Foo: + BAR = 1 +def quux(): + baz = 1 +").exports(), + @r" + FOO :: Constant + foo :: Variable + frob :: Variable + Foo :: Class + quux :: Function + ", + ); + } + + #[test] + fn exports_conditional_true() { + insta::assert_snapshot!( + public_test("\ +foo = 1 +if True: + bar = 1 +").exports(), + @r" + foo :: Variable + bar :: Variable + ", + ); + } + + #[test] + fn exports_conditional_false() { + // FIXME: This shouldn't include `bar`. + insta::assert_snapshot!( + public_test("\ +foo = 1 +if False: + bar = 1 +").exports(), + @r" + foo :: Variable + bar :: Variable + ", + ); + } + + #[test] + fn exports_conditional_sys_version() { + // FIXME: This shouldn't include `bar`. + insta::assert_snapshot!( + public_test("\ +import sys + +foo = 1 +if sys.version < (3, 5): + bar = 1 +").exports(), + @r" + foo :: Variable + bar :: Variable + ", + ); + } + + #[test] + fn exports_type_checking() { + insta::assert_snapshot!( + public_test("\ +from typing import TYPE_CHECKING + +foo = 1 +if TYPE_CHECKING: + bar = 1 +").exports(), + @r" + foo :: Variable + bar :: Variable + ", + ); + } + + fn matches(query: &str, symbol: &str) -> bool { + super::QueryPattern::fuzzy(query).is_match_symbol_name(symbol) + } + + fn public_test(code: &str) -> PublicTest { + PublicTestBuilder::default().source("test.py", code).build() + } + + struct PublicTest { + db: TestDb, + _insta_settings_guard: SettingsBindDropGuard, + } + + impl PublicTest { + /// Returns the exports from `test.py`. + /// + /// This is, conventionally, the default module file path used. For + /// example, it's used by the `public_test` convenience constructor. + fn exports(&self) -> String { + self.exports_for("test.py") + } + + /// Returns the exports from the module at the given path. + /// + /// The path given must have been written to this test's salsa DB. + fn exports_for(&self, path: impl AsRef) -> String { + let file = system_path_to_file(&self.db, path.as_ref()).unwrap(); + let symbols = symbols_for_file_global_only(&self.db, file); + symbols + .iter() + .map(|(_, symbol)| { + format!("{name} :: {kind:?}", name = symbol.name, kind = symbol.kind) + }) + .collect::>() + .join("\n") + } + } + + #[derive(Default)] + struct PublicTestBuilder { + /// A list of source files, corresponding to the + /// file's path and its contents. + sources: Vec, + } + + impl PublicTestBuilder { + pub(super) fn build(&self) -> PublicTest { + let mut db = TestDb::new(ProjectMetadata::new( + "test".into(), + SystemPathBuf::from("/"), + )); + + db.init_program().unwrap(); + + for Source { path, contents } in &self.sources { + db.write_file(path, contents) + .expect("write to memory file system to be successful"); + + // Add a root for the top-most component. + let top = path.components().find_map(|c| match c { + Utf8Component::Normal(c) => Some(c), + _ => None, + }); + if let Some(top) = top { + let top = SystemPath::new(top); + if db.system().is_directory(top) { + db.files() + .try_add_root(&db, top, FileRootKind::LibrarySearchPath); + } + } + } + + // N.B. We don't set anything custom yet, but we leave + // this here for when we invevitable add a filter. + let insta_settings = insta::Settings::clone_current(); + let insta_settings_guard = insta_settings.bind_to_scope(); + PublicTest { + db, + _insta_settings_guard: insta_settings_guard, + } + } + + pub(super) fn source( + &mut self, + path: impl Into, + contents: impl AsRef, + ) -> &mut PublicTestBuilder { + let path = path.into(); + let contents = dedent(contents.as_ref()).into_owned(); + self.sources.push(Source { path, contents }); + self + } + } + + struct Source { + path: SystemPathBuf, + contents: String, + } } From 086f1e0b8992b9b0231e7503484eba5bbd379dbb Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Thu, 4 Dec 2025 12:09:15 -0500 Subject: [PATCH 04/65] [ty] Skip over expressions in auto-import AST scanning --- crates/ty_ide/src/symbols.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/ty_ide/src/symbols.rs b/crates/ty_ide/src/symbols.rs index a49ac318fc..295ccad5c3 100644 --- a/crates/ty_ide/src/symbols.rs +++ b/crates/ty_ide/src/symbols.rs @@ -569,6 +569,10 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { } } } + + // TODO: We might consider handling walrus expressions + // here, since they can be used to introduce new names. + fn visit_expr(&mut self, _expr: &ast::Expr) {} } #[cfg(test)] From 8c72b296c9895b9e40dacf69c584a62b84f09803 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Tue, 25 Nov 2025 14:03:19 -0500 Subject: [PATCH 05/65] [ty] Add support for re-exports and `__all__` to auto-import This commit (mostly) re-implements the support for `__all__` in ty-proper, but inside the auto-import AST scanner. When `__all__` isn't present in a module, we fall back to conventions to determine whether a symbol is exported or not: https://docs.python.org/3/library/index.html However, in keeping with current practice for non-auto-import completions, we continue to provide sunder and dunder names as re-exports. When `__all__` is present, we respect it strictly. That is, a symbol is exported *if and only if* it's in `__all__`. This is somewhat stricter than pylance seemingly is. I felt like it was a good idea to start here, and we can relax it based on user demand (perhaps through a setting). --- crates/ty_ide/src/symbols.rs | 1308 ++++++++++++++++- .../snapshots/e2e__notebook__auto_import.snap | 4 +- .../e2e__notebook__auto_import_docstring.snap | 4 +- ...2e__notebook__auto_import_from_future.snap | 4 +- .../e2e__notebook__auto_import_same_cell.snap | 4 +- 5 files changed, 1293 insertions(+), 31 deletions(-) diff --git a/crates/ty_ide/src/symbols.rs b/crates/ty_ide/src/symbols.rs index 295ccad5c3..a80a9ed56d 100644 --- a/crates/ty_ide/src/symbols.rs +++ b/crates/ty_ide/src/symbols.rs @@ -13,7 +13,9 @@ use ruff_python_ast as ast; use ruff_python_ast::name::Name; use ruff_python_ast::visitor::source_order::{self, SourceOrderVisitor}; use ruff_text_size::{Ranged, TextRange}; +use rustc_hash::FxHashSet; use ty_project::Db; +use ty_python_semantic::{ModuleName, resolve_module}; use crate::completion::CompletionKind; @@ -111,7 +113,13 @@ impl PartialEq for QueryPattern { /// A flat list of indexed symbols for a single file. #[derive(Clone, Debug, Default, PartialEq, Eq, get_size2::GetSize)] pub struct FlatSymbols { + /// The symbols exported by a module. symbols: IndexVec, + /// The names found in an `__all__` for a module. + /// + /// This is `None` if the module has no `__all__` at module + /// scope. + all_names: Option>, } impl FlatSymbols { @@ -351,16 +359,9 @@ pub(crate) fn symbols_for_file(db: &dyn Db, file: File) -> FlatSymbols { let parsed = parsed_module(db, file); let module = parsed.load(db); - let mut visitor = SymbolVisitor { - symbols: IndexVec::new(), - symbol_stack: vec![], - in_function: false, - global_only: false, - }; + let mut visitor = SymbolVisitor::tree(db, file); visitor.visit_body(&module.syntax().body); - FlatSymbols { - symbols: visitor.symbols, - } + visitor.into_flat_symbols() } /// Returns a flat list of *only global* symbols in the file given. @@ -373,12 +374,7 @@ pub(crate) fn symbols_for_file_global_only(db: &dyn Db, file: File) -> FlatSymbo let parsed = parsed_module(db, file); let module = parsed.load(db); - let mut visitor = SymbolVisitor { - symbols: IndexVec::new(), - symbol_stack: vec![], - in_function: false, - global_only: true, - }; + let mut visitor = SymbolVisitor::globals(db, file); visitor.visit_body(&module.syntax().body); if file @@ -389,10 +385,7 @@ pub(crate) fn symbols_for_file_global_only(db: &dyn Db, file: File) -> FlatSymbo // Eagerly clear ASTs of third party files. parsed.clear(); } - - FlatSymbols { - symbols: visitor.symbols, - } + visitor.into_flat_symbols() } #[derive(Debug, Clone, PartialEq, Eq, get_size2::GetSize)] @@ -402,27 +395,122 @@ struct SymbolTree { kind: SymbolKind, name_range: TextRange, full_range: TextRange, + import_kind: Option, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, get_size2::GetSize)] +enum ImportKind { + Normal, + RedundantAlias, + Wildcard, } /// A visitor over all symbols in a single file. /// /// This guarantees that child symbols have a symbol ID greater /// than all of its parents. -struct SymbolVisitor { +#[allow(clippy::struct_excessive_bools)] +struct SymbolVisitor<'db> { + db: &'db dyn Db, + file: File, symbols: IndexVec, symbol_stack: Vec, - /// Track if we're currently inside a function (to exclude local variables) + /// Track if we're currently inside a function at any point. + /// + /// This is true even when we're inside a class definition + /// that is inside a class. in_function: bool, + /// Track if we're currently inside a class at any point. + /// + /// This is true even when we're inside a function definition + /// that is inside a class. + in_class: bool, global_only: bool, + /// The origin of an `__all__` variable, if found. + all_origin: Option, + /// A set of names extracted from `__all__`. + all_names: FxHashSet, + /// A flag indicating whether the module uses unrecognized + /// `__all__` idioms or there are any invalid elements in + /// `__all__`. + all_invalid: bool, } -impl SymbolVisitor { +impl<'db> SymbolVisitor<'db> { + fn tree(db: &'db dyn Db, file: File) -> Self { + Self { + db, + file, + symbols: IndexVec::new(), + symbol_stack: vec![], + in_function: false, + in_class: false, + global_only: false, + all_origin: None, + all_names: FxHashSet::default(), + all_invalid: false, + } + } + + fn globals(db: &'db dyn Db, file: File) -> Self { + Self { + global_only: true, + ..Self::tree(db, file) + } + } + + fn into_flat_symbols(mut self) -> FlatSymbols { + // We want to filter out some of the symbols we collected. + // Specifically, to respect conventions around library + // interface. + // + // But, we always assigned IDs to each symbol based on + // their position in a sequence. So when we filter some + // out, we need to remap the identifiers. + // + // N.B. The remapping could be skipped when `global_only` is + // true, since in that case, none of the symbols have a parent + // ID by construction. + let mut remap = IndexVec::with_capacity(self.symbols.len()); + let mut new = IndexVec::with_capacity(self.symbols.len()); + for mut symbol in std::mem::take(&mut self.symbols) { + if !self.is_part_of_library_interface(&symbol) { + remap.push(None); + continue; + } + + if let Some(ref mut parent) = symbol.parent { + // OK because the visitor guarantees that + // all parents have IDs less than their + // children. So its ID has already been + // remapped. + if let Some(new_parent) = remap[*parent] { + *parent = new_parent; + } else { + // The parent symbol was dropped, so + // all of its children should be as + // well. + remap.push(None); + continue; + } + } + let new_id = new.next_index(); + remap.push(Some(new_id)); + new.push(symbol); + } + FlatSymbols { + symbols: new, + all_names: self.all_origin.map(|_| self.all_names), + } + } + fn visit_body(&mut self, body: &[ast::Stmt]) { for stmt in body { self.visit_stmt(stmt); } } + /// Add a new symbol and return its ID. fn add_symbol(&mut self, mut symbol: SymbolTree) -> SymbolId { if let Some(&parent_id) = self.symbol_stack.last() { symbol.parent = Some(parent_id); @@ -436,6 +524,7 @@ impl SymbolVisitor { symbol_id } + /// Adds a symbol introduced via an assignment. fn add_assignment(&mut self, stmt: &ast::Stmt, name: &ast::ExprName) -> SymbolId { let kind = if Self::is_constant_name(name.id.as_str()) { SymbolKind::Constant @@ -454,10 +543,222 @@ impl SymbolVisitor { kind, name_range: name.range(), full_range: stmt.range(), + import_kind: None, }; self.add_symbol(symbol) } + /// Adds a symbol introduced via an import `stmt`. + fn add_import_alias(&mut self, stmt: &ast::Stmt, alias: &ast::Alias) -> SymbolId { + let name = alias.asname.as_ref().unwrap_or(&alias.name); + let kind = if stmt.is_import_stmt() { + SymbolKind::Module + } else if Self::is_constant_name(name.as_str()) { + SymbolKind::Constant + } else { + SymbolKind::Variable + }; + let re_export = Some( + if alias.asname.as_ref().map(ast::Identifier::as_str) == Some(alias.name.as_str()) { + ImportKind::RedundantAlias + } else { + ImportKind::Normal + }, + ); + self.add_symbol(SymbolTree { + parent: None, + name: name.id.to_string(), + kind, + name_range: name.range(), + full_range: stmt.range(), + import_kind: re_export, + }) + } + + /// Extracts `__all__` names from the given assignment. + /// + /// If the assignment isn't for `__all__`, then this is a no-op. + fn add_all_assignment(&mut self, targets: &[ast::Expr], value: Option<&ast::Expr>) { + if self.in_function || self.in_class { + return; + } + let Some(target) = targets.first() else { + return; + }; + if !is_dunder_all(target) { + return; + } + + let Some(value) = value else { return }; + match *value { + // `__all__ = [...]` + // `__all__ = (...)` + ast::Expr::List(ast::ExprList { ref elts, .. }) + | ast::Expr::Tuple(ast::ExprTuple { ref elts, .. }) => { + self.update_all_origin(DunderAllOrigin::CurrentModule); + if !self.add_all_names(elts) { + self.all_invalid = true; + } + } + _ => { + self.all_invalid = true; + } + } + } + + /// Extends the current set of names with the names from the + /// given expression which currently must be a list/tuple/set of + /// string-literal names. This currently does not support using a + /// submodule's `__all__` variable. + /// + /// Returns `true` if the expression is a valid list/tuple/set or + /// module `__all__`, `false` otherwise. + /// + /// N.B. Supporting all instances of `__all__ += submodule.__all__` + /// and `__all__.extend(submodule.__all__)` is likely difficult + /// in this context. Namely, `submodule` needs to be resolved + /// to a particular module. ty proper can do this (by virtue + /// of inferring the type of `submodule`). With that said, we + /// could likely support a subset of cases here without too much + /// ceremony. ---AG + fn extend_all(&mut self, expr: &ast::Expr) -> bool { + match expr { + // `__all__ += [...]` + // `__all__ += (...)` + // `__all__ += {...}` + ast::Expr::List(ast::ExprList { elts, .. }) + | ast::Expr::Tuple(ast::ExprTuple { elts, .. }) + | ast::Expr::Set(ast::ExprSet { elts, .. }) => self.add_all_names(elts), + _ => false, + } + } + + /// Processes a call idiom for `__all__` and updates the set of + /// names accordingly. + /// + /// Returns `true` if the call idiom is recognized and valid, + /// `false` otherwise. + fn update_all_by_call_idiom( + &mut self, + function_name: &ast::Identifier, + arguments: &ast::Arguments, + ) -> bool { + if arguments.len() != 1 { + return false; + } + let Some(argument) = arguments.find_positional(0) else { + return false; + }; + match function_name.as_str() { + // `__all__.extend([...])` + // `__all__.extend(module.__all__)` + "extend" => { + if !self.extend_all(argument) { + return false; + } + } + // `__all__.append(...)` + "append" => { + let Some(name) = create_all_name(argument) else { + return false; + }; + self.all_names.insert(name); + } + // `__all__.remove(...)` + "remove" => { + let Some(name) = create_all_name(argument) else { + return false; + }; + self.all_names.remove(&name); + } + _ => return false, + } + true + } + + /// Adds all of the names exported from the module + /// imported by `import_from`. i.e., This implements + /// `from module import *` semantics. + fn add_exported_from_wildcard(&mut self, import_from: &ast::StmtImportFrom) { + let Some(symbols) = self.get_names_from_wildcard(import_from) else { + self.all_invalid = true; + return; + }; + self.symbols + .extend(symbols.symbols.iter().filter_map(|symbol| { + // If there's no `__all__`, then names with an underscore + // are never pulled in via a wildcard import. Otherwise, + // we defer to `__all__` filtering. + if symbols.all_names.is_none() && symbol.name.starts_with('_') { + return None; + } + let mut symbol = symbol.clone(); + symbol.import_kind = Some(ImportKind::Wildcard); + Some(symbol) + })); + // If the imported module defines an `__all__` AND `__all__` is + // in `__all__`, then the importer gets it too. + if let Some(ref all) = symbols.all_names + && all.contains("__all__") + { + self.update_all_origin(DunderAllOrigin::StarImport); + self.all_names.extend(all.iter().cloned()); + } + } + + /// Adds `__all__` from the module imported by `import_from`. i.e., + /// This implements `from module import __all__` semantics. + fn add_all_from_import(&mut self, import_from: &ast::StmtImportFrom) { + let Some(symbols) = self.get_names_from_wildcard(import_from) else { + self.all_invalid = true; + return; + }; + // If the imported module defines an `__all__`, + // then the importer gets it too. + if let Some(ref all) = symbols.all_names { + self.update_all_origin(DunderAllOrigin::ExternalModule); + self.all_names.extend(all.iter().cloned()); + } + } + + /// Returns the exported symbols (along with `__all__`) from the + /// module imported in `import_from`. + fn get_names_from_wildcard( + &self, + import_from: &ast::StmtImportFrom, + ) -> Option<&'db FlatSymbols> { + let module_name = + ModuleName::from_import_statement(self.db, self.file, import_from).ok()?; + let module = resolve_module(self.db, self.file, &module_name)?; + Some(symbols_for_file_global_only(self.db, module.file(self.db)?)) + } + + /// Add valid names from `__all__` to the set of existing `__all__` + /// names. + /// + /// Returns `false` if any of the names are invalid. + fn add_all_names(&mut self, exprs: &[ast::Expr]) -> bool { + for expr in exprs { + let Some(name) = create_all_name(expr) else { + return false; + }; + self.all_names.insert(name); + } + true + } + + /// Updates the origin of `__all__` in the current module. + /// + /// This will clear existing names if the origin is changed to + /// mimic the behavior of overriding `__all__` in the current + /// module. + fn update_all_origin(&mut self, origin: DunderAllOrigin) { + if self.all_origin.is_some() { + self.all_names.clear(); + } + self.all_origin = Some(origin); + } + fn push_symbol(&mut self, symbol: SymbolTree) { let symbol_id = self.add_symbol(symbol); self.symbol_stack.push(symbol_id); @@ -477,9 +778,62 @@ impl SymbolVisitor { fn is_constant_name(name: &str) -> bool { name.chars().all(|c| c.is_ascii_uppercase() || c == '_') } + + /// This routine determines whether the given symbol should be + /// considered part of the public API of this module. The given + /// symbol should defined or imported into this module. + /// + /// See: + fn is_part_of_library_interface(&self, symbol: &SymbolTree) -> bool { + // If this is a child of something else, then we always + // defer its visibility to the parent. + if symbol.parent.is_some() { + return true; + } + + // When there's no `__all__`, we use conventions to determine + // if a name should be part of the exported API of a module + // or not. When there is `__all__`, we currently follow it + // strictly. + if self.all_origin.is_some() { + // If `__all__` is somehow invalid, ignore it and fall + // through as-if `__all__` didn't exist. + if self.all_invalid { + tracing::debug!("Invalid `__all__` in `{}`", self.file.path(self.db)); + } else { + return self.all_names.contains(&*symbol.name); + } + } + + // "Imported symbols are considered private by default. A fixed + // set of import forms re-export imported symbols." Specifically: + // + // * `import X as X` + // * `from Y import X as X` + // * `from Y import *` + if let Some(kind) = symbol.import_kind { + return match kind { + ImportKind::RedundantAlias | ImportKind::Wildcard => true, + ImportKind::Normal => false, + }; + } + // "Symbols whose names begin with an underscore (but are not + // dunder names) are considered private." + // + // ... however, we currently include these as part of the public + // API. The only extant (2025-12-03) consumer is completions, and + // completions will rank these names lower than others. + if symbol.name.starts_with('_') + && !(symbol.name.starts_with("__") && symbol.name.ends_with("__")) + { + return true; + } + // ... otherwise, it's exported! + true + } } -impl SourceOrderVisitor<'_> for SymbolVisitor { +impl SourceOrderVisitor<'_> for SymbolVisitor<'_> { fn visit_stmt(&mut self, stmt: &ast::Stmt) { match stmt { ast::Stmt::FunctionDef(func_def) => { @@ -502,6 +856,7 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { kind, name_range: func_def.name.range(), full_range: stmt.range(), + import_kind: None, }; if self.global_only { @@ -530,6 +885,7 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { kind: SymbolKind::Class, name_range: class_def.name.range(), full_range: stmt.range(), + import_kind: None, }; if self.global_only { @@ -538,11 +894,20 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { return; } + // Mark that we're entering a class scope + let was_in_class = self.in_class; + self.in_class = true; + self.push_symbol(symbol); source_order::walk_stmt(self, stmt); self.pop_symbol(); + + // Restore the previous class scope state + self.in_class = was_in_class; } ast::Stmt::Assign(assign) => { + self.add_all_assignment(&assign.targets, Some(&assign.value)); + // Include assignments only when we're in global or class scope if self.in_function { return; @@ -555,6 +920,11 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { } } ast::Stmt::AnnAssign(ann_assign) => { + self.add_all_assignment( + std::slice::from_ref(&ann_assign.target), + ann_assign.value.as_deref(), + ); + // Include assignments only when we're in global or class scope if self.in_function { return; @@ -564,6 +934,89 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { }; self.add_assignment(stmt, name); } + ast::Stmt::AugAssign(ast::StmtAugAssign { + target, op, value, .. + }) => { + if self.all_origin.is_none() { + // We can't update `__all__` if it doesn't already + // exist. + return; + } + if !is_dunder_all(target) { + return; + } + // Anything other than `+=` is not valid. + if !matches!(op, ast::Operator::Add) { + self.all_invalid = true; + return; + } + if !self.extend_all(value) { + self.all_invalid = true; + } + } + ast::Stmt::Expr(expr) => { + if self.all_origin.is_none() { + // We can't update `__all__` if it doesn't already exist. + return; + } + let Some(ast::ExprCall { + func, arguments, .. + }) = expr.value.as_call_expr() + else { + return; + }; + let Some(ast::ExprAttribute { + value, + attr, + ctx: ast::ExprContext::Load, + .. + }) = func.as_attribute_expr() + else { + return; + }; + if !is_dunder_all(value) { + return; + } + if !self.update_all_by_call_idiom(attr, arguments) { + self.all_invalid = true; + } + + source_order::walk_stmt(self, stmt); + } + ast::Stmt::Import(import) => { + // We only consider imports in global scope. + if self.in_function { + return; + } + for alias in &import.names { + self.add_import_alias(stmt, alias); + } + } + ast::Stmt::ImportFrom(import_from) => { + // We only consider imports in global scope. + if self.in_function { + return; + } + for alias in &import_from.names { + if &alias.name == "*" { + self.add_exported_from_wildcard(import_from); + } else { + if &alias.name == "__all__" + && alias + .asname + .as_ref() + .is_none_or(|asname| asname == "__all__") + { + self.add_all_from_import(import_from); + } + self.add_import_alias(stmt, alias); + } + } + } + // FIXME: We don't currently try to evaluate `if` + // statements. We just assume that all `if` statements are + // always `True`. This applies to symbols in general but + // also `__all__`. _ => { source_order::walk_stmt(self, stmt); } @@ -575,6 +1028,29 @@ impl SourceOrderVisitor<'_> for SymbolVisitor { fn visit_expr(&mut self, _expr: &ast::Expr) {} } +/// Represents where an `__all__` has been defined. +#[derive(Debug, Clone)] +enum DunderAllOrigin { + /// The `__all__` variable is defined in the current module. + CurrentModule, + /// The `__all__` variable is imported from another module. + ExternalModule, + /// The `__all__` variable is imported from a module via a `*`-import. + StarImport, +} + +/// Checks if the given expression is a name expression for `__all__`. +fn is_dunder_all(expr: &ast::Expr) -> bool { + matches!(expr, ast::Expr::Name(ast::ExprName { id, .. }) if id == "__all__") +} + +/// Create and return a string representing a name from the given +/// expression, or `None` if it is an invalid expression for a +/// `__all__` element. +fn create_all_name(expr: &ast::Expr) -> Option { + Some(expr.as_string_literal_expr()?.value.to_str().into()) +} + #[cfg(test)] mod tests { use camino::Utf8Component; @@ -641,6 +1117,25 @@ def quux(): ); } + /// The typing spec says that names beginning with an underscore + /// ought to be considered unexported[1]. However, at present, we + /// currently include them in completions but rank them lower than + /// non-underscore names. So this tests that we return underscore + /// names. + /// + /// [1]: https://typing.python.org/en/latest/spec/distributing.html#library-interface-public-and-private-symbols + #[test] + fn exports_underscore() { + insta::assert_snapshot!( + public_test("\ +_foo = 1 +").exports(), + @r" + _foo :: Variable + ", + ); + } + #[test] fn exports_conditional_true() { insta::assert_snapshot!( @@ -707,6 +1202,773 @@ if TYPE_CHECKING: ); } + #[test] + fn exports_conditional_always_else() { + // FIXME: This shouldn't include `bar`. + insta::assert_snapshot!( + public_test("\ +foo = 1 +bar = 1 +if True: + __all__ = ['foo'] +else: + __all__ = ['foo', 'bar'] +").exports(), + @r" + foo :: Variable + bar :: Variable + ", + ); + } + + #[test] + fn exports_all_overwrites_previous() { + insta::assert_snapshot!( + public_test("\ +foo = 1 +bar = 1 +__all__ = ['foo'] +__all__ = ['foo', 'bar'] +").exports(), + @r" + foo :: Variable + bar :: Variable + ", + ); + } + + #[test] + fn exports_import_no_reexport() { + insta::assert_snapshot!( + public_test("\ +import collections +").exports(), + @r"", + ); + } + + #[test] + fn exports_import_as_no_reexport() { + insta::assert_snapshot!( + public_test("\ +import numpy as np +").exports(), + @r"", + ); + } + + #[test] + fn exports_from_import_no_reexport() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +").exports(), + @r"", + ); + } + + #[test] + fn exports_from_import_as_no_reexport() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict as dd +").exports(), + @r"", + ); + } + + #[test] + fn exports_import_reexport() { + insta::assert_snapshot!( + public_test("\ +import numpy as numpy +").exports(), + @"numpy :: Module", + ); + } + + #[test] + fn exports_from_import_reexport() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict as defaultdict +").exports(), + @"defaultdict :: Variable", + ); + } + + #[test] + fn exports_from_import_all_reexport_assignment() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__ = ['defaultdict'] +").exports(), + @"defaultdict :: Variable", + ); + + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__ = ('defaultdict',) +").exports(), + @"defaultdict :: Variable", + ); + } + + #[test] + fn exports_from_import_all_reexport_annotated_assignment() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__: list[str] = ['defaultdict'] +").exports(), + @"defaultdict :: Variable", + ); + + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__: tuple[str, ...] = ('defaultdict',) +").exports(), + @"defaultdict :: Variable", + ); + } + + #[test] + fn exports_from_import_all_reexport_augmented_assignment() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__ = [] +__all__ += ['defaultdict'] +").exports(), + @"defaultdict :: Variable", + ); + + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__ = [] +__all__ += ('defaultdict',) +").exports(), + @"defaultdict :: Variable", + ); + + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__ = [] +__all__ += {'defaultdict'} +").exports(), + @"defaultdict :: Variable", + ); + } + + #[test] + fn exports_from_import_all_reexport_invalid_augmented_assignment() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__ += ['defaultdict'] +").exports(), + @"", + ); + } + + #[test] + fn exports_from_import_all_reexport_extend() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__ = [] +__all__.extend(['defaultdict']) +").exports(), + @"defaultdict :: Variable", + ); + } + + #[test] + fn exports_from_import_all_reexport_invalid_extend() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__.extend(['defaultdict']) +").exports(), + @r"", + ); + } + + #[test] + fn exports_from_import_all_reexport_append() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__ = [] +__all__.append('defaultdict') +").exports(), + @"defaultdict :: Variable", + ); + } + + #[test] + fn exports_from_import_all_reexport_plus_equals() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__ = [] +__all__ += ['defaultdict'] +").exports(), + @"defaultdict :: Variable", + ); + } + + #[test] + fn exports_from_import_all_reexport_star_equals() { + // Confirm that this doesn't work. Only `__all__ += ...` should + // be recognized. This makes the symbol visitor consider + // `__all__` invalid and thus ignore it. And this in turn lets + // `__all__` be exported. This seems like a somewhat degenerate + // case, but is a consequence of us treating sunder and dunder + // symbols as exported when `__all__` isn't present. + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__ = [] +__all__ *= ['defaultdict'] +").exports(), + @"__all__ :: Variable", + ); + } + + #[test] + fn exports_from_import_all_reexport_remove() { + insta::assert_snapshot!( + public_test("\ +from collections import defaultdict +__all__ = [] +__all__.remove('defaultdict') +").exports(), + @"", + ); + } + + #[test] + fn exports_nested_all() { + insta::assert_snapshot!( + public_test(r#"\ +bar = 1 +baz = 1 +__all__ = [] + +def foo(): + __all__.append("bar") + +class X: + def method(self): + __all__.extend(["baz"]) +"#).exports(), + @"", + ); + } + + #[test] + fn wildcard_reexport_simple_no_all() { + let test = PublicTestBuilder::default() + .source("foo.py", "ZQZQZQ = 1") + .source("test.py", "from foo import *") + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @"ZQZQZQ :: Constant", + ); + } + + #[test] + fn wildcard_reexport_single_underscore_no_all() { + let test = PublicTestBuilder::default() + .source("foo.py", "_ZQZQZQ = 1") + .source("test.py", "from foo import *") + .build(); + // Without `__all__` present, a wildcard import won't include + // names starting with an underscore at runtime. So `_ZQZQZQ` + // should not be present here. + // See: + insta::assert_snapshot!( + test.exports_for("test.py"), + @"", + ); + } + + #[test] + fn wildcard_reexport_double_underscore_no_all() { + let test = PublicTestBuilder::default() + .source("foo.py", "__ZQZQZQ = 1") + .source("test.py", "from foo import *") + .build(); + // Without `__all__` present, a wildcard import won't include + // names starting with an underscore at runtime. So `__ZQZQZQ` + // should not be present here. + // See: + insta::assert_snapshot!( + test.exports_for("test.py"), + @"", + ); + } + + #[test] + fn wildcard_reexport_normal_import_no_all() { + let test = PublicTestBuilder::default() + .source("foo.py", "import collections") + .source("test.py", "from foo import *") + .build(); + // We specifically test for the absence of `collections` + // here. That is, `from foo import *` will import + // `collections` at runtime, but we don't consider it part + // of the exported interface of `foo`. + insta::assert_snapshot!( + test.exports_for("test.py"), + @"", + ); + } + + #[test] + fn wildcard_reexport_redundant_import_no_all() { + let test = PublicTestBuilder::default() + .source("foo.py", "import collections as collections") + .source("test.py", "from foo import *") + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @"collections :: Module", + ); + } + + #[test] + fn wildcard_reexport_normal_from_import_no_all() { + let test = PublicTestBuilder::default() + .source("foo.py", "from collections import defaultdict") + .source("test.py", "from foo import *") + .build(); + // We specifically test for the absence of `defaultdict` + // here. That is, `from foo import *` will import + // `defaultdict` at runtime, but we don't consider it part + // of the exported interface of `foo`. + insta::assert_snapshot!( + test.exports_for("test.py"), + @"", + ); + } + + #[test] + fn wildcard_reexport_redundant_from_import_no_all() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + "from collections import defaultdict as defaultdict", + ) + .source("test.py", "from foo import *") + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @"defaultdict :: Variable", + ); + } + + #[test] + fn wildcard_reexport_all_simple() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = ['ZQZQZQ'] + ", + ) + .source("test.py", "from foo import *") + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @"ZQZQZQ :: Constant", + ); + } + + #[test] + fn wildcard_reexport_all_simple_include_all() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = ['__all__', 'ZQZQZQ'] + ", + ) + .source("test.py", "from foo import *") + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @r" + ZQZQZQ :: Constant + __all__ :: Variable + ", + ); + } + + #[test] + fn wildcard_reexport_all_empty() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = [] + ", + ) + .source("test.py", "from foo import *") + .build(); + // Nothing is exported because `__all__` is defined + // and also empty. + insta::assert_snapshot!( + test.exports_for("test.py"), + @"", + ); + } + + #[test] + fn wildcard_reexport_all_empty_not_applies_to_importer() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = [] + ", + ) + .source( + "test.py", + "from foo import * + TRICKSY = 1", + ) + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @"TRICKSY :: Constant", + ); + } + + #[test] + fn wildcard_reexport_all_include_all_applies_to_importer() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = ['__all__'] + ", + ) + .source( + "test.py", + "from foo import * + TRICKSY = 1", + ) + .build(); + // TRICKSY should specifically be absent because + // `__all__` is defined in `test.py` (via a wildcard + // import) and does not itself include `TRICKSY`. + insta::assert_snapshot!( + test.exports_for("test.py"), + @"__all__ :: Variable", + ); + } + + #[test] + fn wildcard_reexport_all_empty_then_added_to() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = [] + ", + ) + .source( + "test.py", + "from foo import * + TRICKSY = 1 + __all__.append('TRICKSY')", + ) + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @"TRICKSY :: Constant", + ); + } + + #[test] + fn wildcard_reexport_all_include_all_then_added_to() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = ['__all__'] + ", + ) + .source( + "test.py", + "from foo import * + TRICKSY = 1 + __all__.append('TRICKSY')", + ) + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @r" + __all__ :: Variable + TRICKSY :: Constant + ", + ); + } + + /// Tests that a `from module import *` doesn't bring an + /// `__all__` into scope if `module` doesn't provide an + /// `__all__` that includes `__all__` AND this causes + /// `__all__.append` to fail in the importing module + /// (because it isn't defined). + #[test] + fn wildcard_reexport_all_empty_then_added_to_incorrect() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = [] + ", + ) + .source( + "test.py", + "from foo import * + from collections import defaultdict + __all__.append('defaultdict')", + ) + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @"", + ); + } + + #[test] + fn wildcard_reexport_all_include_all_then_added_to_correct() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = ['__all__'] + ", + ) + .source( + "test.py", + "from foo import * + from collections import defaultdict + __all__.append('defaultdict')", + ) + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @r" + __all__ :: Variable + defaultdict :: Variable + ", + ); + } + + #[test] + fn wildcard_reexport_all_non_empty_but_non_existent() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = ['TRICKSY'] + ", + ) + .source("test.py", "from foo import *") + .build(); + // `TRICKSY` isn't actually a valid symbol, + // and `ZQZQZQ` isn't in `__all__`, so we get + // no symbols here. + insta::assert_snapshot!( + test.exports_for("test.py"), + @"", + ); + } + + #[test] + fn wildcard_reexport_all_include_all_and_non_existent() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = ['__all__', 'TRICKSY'] + ", + ) + .source("test.py", "from foo import *") + .build(); + // Note that this example will actually result in a runtime + // error since `TRICKSY` doesn't exist in `foo.py` and + // `from foo import *` will try to import it anyway. + insta::assert_snapshot!( + test.exports_for("test.py"), + @"__all__ :: Variable", + ); + } + + #[test] + fn wildcard_reexport_all_not_applies_to_importer() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = ['TRICKSY'] + ", + ) + .source( + "test.py", + "from foo import * + TRICKSY = 1", + ) + .build(); + // Note that this example will actually result in a runtime + // error since `TRICKSY` doesn't exist in `foo.py` and + // `from foo import *` will try to import it anyway. + insta::assert_snapshot!( + test.exports_for("test.py"), + @"TRICKSY :: Constant", + ); + } + + #[test] + fn wildcard_reexport_all_include_all_with_others_applies_to_importer() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = ['__all__', 'TRICKSY'] + ", + ) + .source( + "test.py", + "from foo import * + TRICKSY = 1", + ) + .build(); + // Note that this example will actually result in a runtime + // error since `TRICKSY` doesn't exist in `foo.py` and + // `from foo import *` will try to import it anyway. + insta::assert_snapshot!( + test.exports_for("test.py"), + @r" + __all__ :: Variable + TRICKSY :: Constant + ", + ); + } + + #[test] + fn explicit_reexport_all_empty_applies_to_importer() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = [] + ", + ) + .source( + "test.py", + "from foo import __all__ as __all__ + TRICKSY = 1", + ) + .build(); + // `__all__` is imported from `foo.py` but it's + // empty, so `TRICKSY` is not part of the exported + // API. + insta::assert_snapshot!( + test.exports_for("test.py"), + @"", + ); + } + + #[test] + fn explicit_reexport_all_empty_then_added_to() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = [] + ", + ) + .source( + "test.py", + "from foo import __all__ + TRICKSY = 1 + __all__.append('TRICKSY')", + ) + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @"TRICKSY :: Constant", + ); + } + + #[test] + fn explicit_reexport_all_non_empty_but_non_existent() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = ['TRICKSY'] + ", + ) + .source("test.py", "from foo import __all__ as __all__") + .build(); + // `TRICKSY` is not a valid symbol, so it's not considered + // part of the exports of `test`. + insta::assert_snapshot!( + test.exports_for("test.py"), + @"", + ); + } + + #[test] + fn explicit_reexport_all_applies_to_importer() { + let test = PublicTestBuilder::default() + .source( + "foo.py", + " + ZQZQZQ = 1 + __all__ = ['TRICKSY'] + ", + ) + .source( + "test.py", + "from foo import __all__ + TRICKSY = 1", + ) + .build(); + insta::assert_snapshot!( + test.exports_for("test.py"), + @"TRICKSY :: Constant", + ); + } + fn matches(query: &str, symbol: &str) -> bool { super::QueryPattern::fuzzy(query).is_match_symbol_name(symbol) } diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap index cb2f8c55e3..2bdac4a17e 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 50", + "sortText": " 58", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 51", + "sortText": " 59", "insertText": "LiteralString", "additionalTextEdits": [ { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap index cb2f8c55e3..2bdac4a17e 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 50", + "sortText": " 58", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 51", + "sortText": " 59", "insertText": "LiteralString", "additionalTextEdits": [ { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap index cb2f8c55e3..2bdac4a17e 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 50", + "sortText": " 58", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 51", + "sortText": " 59", "insertText": "LiteralString", "additionalTextEdits": [ { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap index b7d8c9907a..a0ff0b77b6 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 50", + "sortText": " 58", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 51", + "sortText": " 59", "insertText": "LiteralString", "additionalTextEdits": [ { From 2a38395bc856dc741e4a991ea241d15c741ece4f Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Tue, 25 Nov 2025 14:02:59 -0500 Subject: [PATCH 06/65] [ty] Add some tests for re-exports and `__all__` to completions Note that the `Deprecated` symbols from `importlib.metadata` are no longer offered because 1) `importlib.metadata` defined `__all__` and 2) the `Deprecated` symbols aren't in it. These seem to not be a part of its public API according to the docs, so this seems right to me. --- crates/ty_ide/src/completion.rs | 128 ++++++++++++++++++++++++++++---- 1 file changed, 113 insertions(+), 15 deletions(-) diff --git a/crates/ty_ide/src/completion.rs b/crates/ty_ide/src/completion.rs index ae8e75cb9d..ba4c7e9e5b 100644 --- a/crates/ty_ide/src/completion.rs +++ b/crates/ty_ide/src/completion.rs @@ -5812,13 +5812,7 @@ from .imp let builder = completion_test_builder("deprecated") .auto_import() .module_names(); - assert_snapshot!(builder.build().snapshot(), @r" - Deprecated :: importlib.metadata - DeprecatedList :: importlib.metadata - DeprecatedNonAbstract :: importlib.metadata - DeprecatedTuple :: importlib.metadata - deprecated :: warnings - "); + assert_snapshot!(builder.build().snapshot(), @"deprecated :: warnings"); } #[test] @@ -5843,10 +5837,6 @@ from .imp .auto_import() .module_names(); assert_snapshot!(builder.build().snapshot(), @r" - Deprecated :: importlib.metadata - DeprecatedList :: importlib.metadata - DeprecatedNonAbstract :: importlib.metadata - DeprecatedTuple :: importlib.metadata deprecated :: typing_extensions deprecated :: warnings "); @@ -5872,15 +5862,123 @@ from .imp .auto_import() .module_names(); assert_snapshot!(builder.build().snapshot(), @r" - Deprecated :: importlib.metadata - DeprecatedList :: importlib.metadata - DeprecatedNonAbstract :: importlib.metadata - DeprecatedTuple :: importlib.metadata deprecated :: typing_extensions deprecated :: warnings "); } + #[test] + fn reexport_simple_import_noauto() { + let snapshot = CursorTest::builder() + .source( + "main.py", + r#" +import foo +foo.ZQ +"#, + ) + .source("foo.py", r#"from bar import ZQZQ"#) + .source("bar.py", r#"ZQZQ = 1"#) + .completion_test_builder() + .module_names() + .build() + .snapshot(); + assert_snapshot!(snapshot, @"ZQZQ :: Current module"); + } + + #[test] + fn reexport_simple_import_auto() { + let snapshot = CursorTest::builder() + .source( + "main.py", + r#" +ZQ +"#, + ) + .source("foo.py", r#"from bar import ZQZQ"#) + .source("bar.py", r#"ZQZQ = 1"#) + .completion_test_builder() + .auto_import() + .module_names() + .build() + .snapshot(); + // We're specifically looking for `ZQZQ` in `bar` + // here but *not* in `foo`. Namely, in `foo`, + // `ZQZQ` is a "regular" import that is not by + // convention considered a re-export. + assert_snapshot!(snapshot, @"ZQZQ :: bar"); + } + + #[test] + fn reexport_redundant_convention_import_noauto() { + let snapshot = CursorTest::builder() + .source( + "main.py", + r#" +import foo +foo.ZQ +"#, + ) + .source("foo.py", r#"from bar import ZQZQ as ZQZQ"#) + .source("bar.py", r#"ZQZQ = 1"#) + .completion_test_builder() + .module_names() + .build() + .snapshot(); + assert_snapshot!(snapshot, @"ZQZQ :: Current module"); + } + + #[test] + fn reexport_redundant_convention_import_auto() { + let snapshot = CursorTest::builder() + .source( + "main.py", + r#" +ZQ +"#, + ) + .source("foo.py", r#"from bar import ZQZQ as ZQZQ"#) + .source("bar.py", r#"ZQZQ = 1"#) + .completion_test_builder() + .auto_import() + .module_names() + .build() + .snapshot(); + assert_snapshot!(snapshot, @r" + ZQZQ :: bar + ZQZQ :: foo + "); + } + + #[test] + fn auto_import_respects_all() { + let snapshot = CursorTest::builder() + .source( + "main.py", + r#" +ZQ +"#, + ) + .source( + "bar.py", + r#" + ZQZQ1 = 1 + ZQZQ2 = 1 + __all__ = ['ZQZQ1'] + "#, + ) + .completion_test_builder() + .auto_import() + .module_names() + .build() + .snapshot(); + // We specifically do not want `ZQZQ2` here, since + // it is not part of `__all__`. + assert_snapshot!(snapshot, @r" + ZQZQ1 :: bar + "); + } + /// A way to create a simple single-file (named `main.py`) completion test /// builder. /// From 32f400a457677a2dc79bcb989065dba467fe1633 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Wed, 3 Dec 2025 14:59:21 -0500 Subject: [PATCH 07/65] [ty] Make auto-import ignore symbols in modules starting with a `_` This applies recursively. So if *any* component of a module name starts with a `_`, then symbols from that module are excluded from auto-import. The exception is when it's a module within first party code. Then we want to include it in auto-import. --- crates/ty_ide/src/all_symbols.rs | 14 +++ crates/ty_ide/src/completion.rs | 88 +++++++++++++++++++ .../src/module_resolver/path.rs | 2 +- .../snapshots/e2e__notebook__auto_import.snap | 4 +- .../e2e__notebook__auto_import_docstring.snap | 4 +- ...2e__notebook__auto_import_from_future.snap | 4 +- .../e2e__notebook__auto_import_same_cell.snap | 4 +- 7 files changed, 111 insertions(+), 9 deletions(-) diff --git a/crates/ty_ide/src/all_symbols.rs b/crates/ty_ide/src/all_symbols.rs index c7282a5fc7..79767d36d1 100644 --- a/crates/ty_ide/src/all_symbols.rs +++ b/crates/ty_ide/src/all_symbols.rs @@ -36,6 +36,20 @@ pub fn all_symbols<'db>( let Some(file) = module.file(&*db) else { continue; }; + // By convention, modules starting with an underscore + // are generally considered unexported. However, we + // should consider first party modules fair game. + // + // Note that we apply this recursively. e.g., + // `numpy._core.multiarray` is considered private + // because it's a child of `_core`. + if module.name(&*db).components().any(|c| c.starts_with('_')) + && module + .search_path(&*db) + .is_none_or(|sp| !sp.is_first_party()) + { + continue; + } // TODO: also make it available in `TYPE_CHECKING` blocks // (we'd need https://github.com/astral-sh/ty/issues/1553 to do this well) if !is_typing_extensions_available && module.name(&*db) == &typing_extensions { diff --git a/crates/ty_ide/src/completion.rs b/crates/ty_ide/src/completion.rs index ba4c7e9e5b..d751611339 100644 --- a/crates/ty_ide/src/completion.rs +++ b/crates/ty_ide/src/completion.rs @@ -5979,6 +5979,94 @@ ZQ "); } + // This test confirms current behavior (as of 2025-12-04), but + // it's not consistent with auto-import. That is, it doesn't + // strictly respect `__all__` on `bar`, but perhaps it should. + // + // See: https://github.com/astral-sh/ty/issues/1757 + #[test] + fn object_attr_ignores_all() { + let snapshot = CursorTest::builder() + .source( + "main.py", + r#" +import bar +bar.ZQ +"#, + ) + .source( + "bar.py", + r#" + ZQZQ1 = 1 + ZQZQ2 = 1 + __all__ = ['ZQZQ1'] + "#, + ) + .completion_test_builder() + .auto_import() + .module_names() + .build() + .snapshot(); + // We specifically do not want `ZQZQ2` here, since + // it is not part of `__all__`. + assert_snapshot!(snapshot, @r" + ZQZQ1 :: + ZQZQ2 :: + "); + } + + #[test] + fn auto_import_ignores_modules_with_leading_underscore() { + let snapshot = CursorTest::builder() + .source( + "main.py", + r#" +Quitter +"#, + ) + .completion_test_builder() + .auto_import() + .module_names() + .build() + .snapshot(); + // There is a `Quitter` in `_sitebuiltins` in the standard + // library. But this is skipped by auto-import because it's + // 1) not first party and 2) starts with an `_`. + assert_snapshot!(snapshot, @""); + } + + #[test] + fn auto_import_includes_modules_with_leading_underscore_in_first_party() { + let snapshot = CursorTest::builder() + .source( + "main.py", + r#" +ZQ +"#, + ) + .source( + "bar.py", + r#" + ZQZQ1 = 1 + "#, + ) + .source( + "_foo.py", + r#" + ZQZQ1 = 1 + "#, + ) + .completion_test_builder() + .auto_import() + .module_names() + .build() + .snapshot(); + assert_snapshot!(snapshot, @r" + ZQZQ1 :: _foo + ZQZQ1 :: bar + "); + } + /// A way to create a simple single-file (named `main.py`) completion test /// builder. /// diff --git a/crates/ty_python_semantic/src/module_resolver/path.rs b/crates/ty_python_semantic/src/module_resolver/path.rs index 5200396dc1..638bbf819a 100644 --- a/crates/ty_python_semantic/src/module_resolver/path.rs +++ b/crates/ty_python_semantic/src/module_resolver/path.rs @@ -594,7 +594,7 @@ impl SearchPath { ) } - pub(crate) fn is_first_party(&self) -> bool { + pub fn is_first_party(&self) -> bool { matches!(&*self.0, SearchPathInner::FirstParty(_)) } diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap index 2bdac4a17e..772f80a795 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 58", + "sortText": " 35", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 59", + "sortText": " 36", "insertText": "LiteralString", "additionalTextEdits": [ { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap index 2bdac4a17e..772f80a795 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 58", + "sortText": " 35", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 59", + "sortText": " 36", "insertText": "LiteralString", "additionalTextEdits": [ { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap index 2bdac4a17e..772f80a795 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 58", + "sortText": " 35", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 59", + "sortText": " 36", "insertText": "LiteralString", "additionalTextEdits": [ { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap index a0ff0b77b6..004f9f6823 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 58", + "sortText": " 35", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 59", + "sortText": " 36", "insertText": "LiteralString", "additionalTextEdits": [ { From e154efa229f2474e3ab333e328cf2aac623baec4 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Wed, 3 Dec 2025 15:26:30 -0500 Subject: [PATCH 08/65] [ty] Update evaluation results These are all improvements here with one slight regression on `reveal_type` ranking. The previous completions offered were: ``` $ cargo r -q -p ty_completion_eval show-one ty-extensions-lower-stdlib ENOTRECOVERABLE (module: errno) REG_WHOLE_HIVE_VOLATILE (module: winreg) SQLITE_NOTICE_RECOVER_WAL (module: _sqlite3) SupportsGetItemViewable (module: _typeshed) removeHandler (module: unittest.signals) reveal_mro (module: ty_extensions) reveal_protocol_interface (module: ty_extensions) reveal_type (module: typing) (*, 8/10) _remove_original_values (module: _osx_support) _remove_universal_flags (module: _osx_support) ----- found 10 completions ``` And now they are: ``` $ cargo r -q -p ty_completion_eval show-one ty-extensions-lower-stdlib ENOTRECOVERABLE (module: errno) REG_WHOLE_HIVE_VOLATILE (module: winreg) SQLITE_NOTICE_RECOVER_WAL (module: sqlite3) SQLITE_NOTICE_RECOVER_WAL (module: sqlite3.dbapi2) removeHandler (module: unittest) removeHandler (module: unittest.signals) reveal_mro (module: ty_extensions) reveal_protocol_interface (module: ty_extensions) reveal_type (module: typing) (*, 9/9) ----- found 9 completions ``` Some completions were removed (because they are now considered unexported) and some were added (likely do to better re-export support). This particular case probably warrants more special attention anyway. So I think this is fine. (It's only a one-ranking regression.) --- crates/ty_completion_eval/completion-evaluation-tasks.csv | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/ty_completion_eval/completion-evaluation-tasks.csv b/crates/ty_completion_eval/completion-evaluation-tasks.csv index f8347cb8e5..a196fb98e4 100644 --- a/crates/ty_completion_eval/completion-evaluation-tasks.csv +++ b/crates/ty_completion_eval/completion-evaluation-tasks.csv @@ -11,9 +11,9 @@ import-deprioritizes-type_check_only,main.py,2,1 import-deprioritizes-type_check_only,main.py,3,2 import-deprioritizes-type_check_only,main.py,4,3 import-keyword-completion,main.py,0,1 -internal-typeshed-hidden,main.py,0,4 +internal-typeshed-hidden,main.py,0,2 none-completion,main.py,0,2 -numpy-array,main.py,0, +numpy-array,main.py,0,159 numpy-array,main.py,1,1 object-attr-instance-methods,main.py,0,1 object-attr-instance-methods,main.py,1,1 @@ -23,6 +23,6 @@ scope-existing-over-new-import,main.py,0,1 scope-prioritize-closer,main.py,0,2 scope-simple-long-identifier,main.py,0,1 tstring-completions,main.py,0,1 -ty-extensions-lower-stdlib,main.py,0,8 +ty-extensions-lower-stdlib,main.py,0,9 type-var-typing-over-ast,main.py,0,3 -type-var-typing-over-ast,main.py,1,275 +type-var-typing-over-ast,main.py,1,239 From f054e7edf83632637651b4f77020f0cd7497d76c Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Thu, 4 Dec 2025 09:13:17 -0500 Subject: [PATCH 09/65] [ty] Tweaks tests to use clearer language A completion lacking a module reference doesn't necessarily mean that the symbol is defined within the current module. I believe the intent here is that it means that no import is required to use it. --- crates/ty_ide/src/completion.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/crates/ty_ide/src/completion.rs b/crates/ty_ide/src/completion.rs index d751611339..cd4e886e45 100644 --- a/crates/ty_ide/src/completion.rs +++ b/crates/ty_ide/src/completion.rs @@ -4350,7 +4350,7 @@ from os. .build() .snapshot(); assert_snapshot!(snapshot, @r" - Kadabra :: Literal[1] :: Current module + Kadabra :: Literal[1] :: AbraKadabra :: Unavailable :: package "); } @@ -5534,7 +5534,7 @@ def foo(param: s) // Even though long_namea is alphabetically before long_nameb, // long_nameb is currently imported and should be preferred. assert_snapshot!(snapshot, @r" - long_nameb :: Literal[1] :: Current module + long_nameb :: Literal[1] :: long_namea :: Unavailable :: foo "); } @@ -5804,7 +5804,7 @@ from .imp #[test] fn typing_extensions_excluded_from_import() { let builder = completion_test_builder("from typing").module_names(); - assert_snapshot!(builder.build().snapshot(), @"typing :: Current module"); + assert_snapshot!(builder.build().snapshot(), @"typing :: "); } #[test] @@ -5823,8 +5823,8 @@ from .imp .completion_test_builder() .module_names(); assert_snapshot!(builder.build().snapshot(), @r" - typing :: Current module - typing_extensions :: Current module + typing :: + typing_extensions :: "); } @@ -5849,8 +5849,8 @@ from .imp .completion_test_builder() .module_names(); assert_snapshot!(builder.build().snapshot(), @r" - typing :: Current module - typing_extensions :: Current module + typing :: + typing_extensions :: "); } @@ -5883,7 +5883,7 @@ foo.ZQ .module_names() .build() .snapshot(); - assert_snapshot!(snapshot, @"ZQZQ :: Current module"); + assert_snapshot!(snapshot, @"ZQZQ :: "); } #[test] @@ -5925,7 +5925,7 @@ foo.ZQ .module_names() .build() .snapshot(); - assert_snapshot!(snapshot, @"ZQZQ :: Current module"); + assert_snapshot!(snapshot, @"ZQZQ :: "); } #[test] @@ -6241,7 +6241,7 @@ ZQ let module_name = c .module_name .map(ModuleName::as_str) - .unwrap_or("Current module"); + .unwrap_or(""); snapshot = format!("{snapshot} :: {module_name}"); } snapshot From 6a025d1925c9e5eb4b8e74ef1925dca3d2d7130f Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Thu, 4 Dec 2025 12:08:10 -0500 Subject: [PATCH 10/65] [ty] Redact ranking of completions from e2e LSP tests I think changes to this value are generally noise. It's hard to tell what it means and it isn't especially actionable. We already have an eval running in CI for completion ranking, so I don't think it's terribly important to care about ranking here in e2e tests _generally_. --- crates/ty_server/tests/e2e/notebook.rs | 26 ++++++++++++++++--- .../snapshots/e2e__notebook__auto_import.snap | 4 +-- .../e2e__notebook__auto_import_docstring.snap | 4 +-- ...2e__notebook__auto_import_from_future.snap | 4 +-- .../e2e__notebook__auto_import_same_cell.snap | 4 +-- 5 files changed, 30 insertions(+), 12 deletions(-) diff --git a/crates/ty_server/tests/e2e/notebook.rs b/crates/ty_server/tests/e2e/notebook.rs index 4deb2bed17..b8cb10643b 100644 --- a/crates/ty_server/tests/e2e/notebook.rs +++ b/crates/ty_server/tests/e2e/notebook.rs @@ -5,6 +5,8 @@ use ty_server::ClientOptions; use crate::{TestServer, TestServerBuilder}; +static FILTERS: &[(&str, &str)] = &[(r#""sortText": "[0-9 ]+""#, r#""sortText": "[RANKING]""#)]; + #[test] fn publish_diagnostics_open() -> anyhow::Result<()> { let mut server = TestServerBuilder::new()? @@ -309,7 +311,11 @@ b: Litera let completions = literal_completions(&mut server, &second_cell, Position::new(1, 9)); - assert_json_snapshot!(completions); + insta::with_settings!({ + filters => FILTERS.iter().copied(), + }, { + assert_json_snapshot!(completions); + }); Ok(()) } @@ -340,7 +346,11 @@ b: Litera let completions = literal_completions(&mut server, &first_cell, Position::new(1, 9)); - assert_json_snapshot!(completions); + insta::with_settings!({ + filters => FILTERS.iter().copied(), + }, { + assert_json_snapshot!(completions); + }); Ok(()) } @@ -373,7 +383,11 @@ b: Litera let completions = literal_completions(&mut server, &second_cell, Position::new(1, 9)); - assert_json_snapshot!(completions); + insta::with_settings!({ + filters => FILTERS.iter().copied(), + }, { + assert_json_snapshot!(completions); + }); Ok(()) } @@ -409,7 +423,11 @@ b: Litera let completions = literal_completions(&mut server, &second_cell, Position::new(1, 9)); - assert_json_snapshot!(completions); + insta::with_settings!({ + filters => FILTERS.iter().copied(), + }, { + assert_json_snapshot!(completions); + }); Ok(()) } diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap index 772f80a795..a9740b7b97 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 35", + "sortText": "[RANKING]", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 36", + "sortText": "[RANKING]", "insertText": "LiteralString", "additionalTextEdits": [ { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap index 772f80a795..a9740b7b97 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_docstring.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 35", + "sortText": "[RANKING]", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 36", + "sortText": "[RANKING]", "insertText": "LiteralString", "additionalTextEdits": [ { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap index 772f80a795..a9740b7b97 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_from_future.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 35", + "sortText": "[RANKING]", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 36", + "sortText": "[RANKING]", "insertText": "LiteralString", "additionalTextEdits": [ { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap index 004f9f6823..713c26841e 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__auto_import_same_cell.snap @@ -6,7 +6,7 @@ expression: completions { "label": "Literal (import typing)", "kind": 6, - "sortText": " 35", + "sortText": "[RANKING]", "insertText": "Literal", "additionalTextEdits": [ { @@ -27,7 +27,7 @@ expression: completions { "label": "LiteralString (import typing)", "kind": 6, - "sortText": " 36", + "sortText": "[RANKING]", "insertText": "LiteralString", "additionalTextEdits": [ { From fdcb5a7e731c934d2820cef74b60c16a838a9c97 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Thu, 4 Dec 2025 12:23:59 -0500 Subject: [PATCH 11/65] [ty] Clarify the use of `SymbolKind` in auto-import --- crates/ty_ide/src/symbols.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/ty_ide/src/symbols.rs b/crates/ty_ide/src/symbols.rs index a80a9ed56d..ba33af9ef2 100644 --- a/crates/ty_ide/src/symbols.rs +++ b/crates/ty_ide/src/symbols.rs @@ -292,7 +292,13 @@ impl<'a> From<&'a SymbolTreeWithChildren> for SymbolInfo<'a> { } } -/// The kind of symbol +/// The kind of symbol. +/// +/// Note that this is computed on a best effort basis. The nature of +/// auto-import is that it tries to do a very low effort scan of a lot of code +/// very quickly. This means that it doesn't use things like type information +/// or completely resolve the definition of every symbol. So for example, we +/// might label a module as a variable, depending on how it was introduced. #[derive(Debug, Clone, Copy, PartialEq, Eq, get_size2::GetSize)] pub enum SymbolKind { Module, From 3c2cf49f603a10538cdbfdac1d0ff9b3efb46b00 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Thu, 4 Dec 2025 13:58:15 -0500 Subject: [PATCH 12/65] [ty] Refactor auto-import symbol info This just encapsulates the representation so that we can make changes to it more easily. --- crates/ty_ide/src/all_symbols.rs | 40 ++++++++++++++++++++++++++++---- crates/ty_ide/src/completion.rs | 11 ++++----- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/crates/ty_ide/src/all_symbols.rs b/crates/ty_ide/src/all_symbols.rs index 79767d36d1..210b116e57 100644 --- a/crates/ty_ide/src/all_symbols.rs +++ b/crates/ty_ide/src/all_symbols.rs @@ -2,7 +2,10 @@ use ruff_db::files::File; use ty_project::Db; use ty_python_semantic::{Module, ModuleName, all_modules, resolve_real_shadowable_module}; -use crate::symbols::{QueryPattern, SymbolInfo, symbols_for_file_global_only}; +use crate::{ + SymbolKind, + symbols::{QueryPattern, SymbolInfo, symbols_for_file_global_only}, +}; /// Get all symbols matching the query string. /// @@ -85,14 +88,43 @@ pub fn all_symbols<'db>( #[derive(Debug, Clone, PartialEq, Eq)] pub struct AllSymbolInfo<'db> { /// The symbol information. - pub symbol: SymbolInfo<'static>, + symbol: SymbolInfo<'static>, /// The module containing the symbol. - pub module: Module<'db>, + module: Module<'db>, /// The file containing the symbol. /// /// This `File` is guaranteed to be the same /// as the `File` underlying `module`. - pub file: File, + file: File, +} + +impl<'db> AllSymbolInfo<'db> { + /// Returns the name of this symbol. + pub fn name(&self) -> &str { + &self.symbol.name + } + + /// Returns the "kind" of this symbol. + /// + /// The kind of a symbol in the context of auto-import is + /// determined on a best effort basis. It may be imprecise + /// in some cases, e.g., reporting a module as a variable. + pub fn kind(&self) -> SymbolKind { + self.symbol.kind + } + + /// Returns the module this symbol is exported from. + pub fn module(&self) -> Module<'db> { + self.module + } + + /// Returns the `File` corresponding to the module. + /// + /// This is always equivalent to + /// `AllSymbolInfo::module().file().unwrap()`. + pub fn file(&self) -> File { + self.file + } } #[cfg(test)] diff --git a/crates/ty_ide/src/completion.rs b/crates/ty_ide/src/completion.rs index cd4e886e45..f96ac1500d 100644 --- a/crates/ty_ide/src/completion.rs +++ b/crates/ty_ide/src/completion.rs @@ -537,12 +537,11 @@ fn add_unimported_completions<'db>( let members = importer.members_in_scope_at(scoped.node, scoped.node.start()); for symbol in all_symbols(db, file, &completions.query) { - if symbol.module.file(db) == Some(file) || symbol.module.is_known(db, KnownModule::Builtins) - { + if symbol.file() == file || symbol.module().is_known(db, KnownModule::Builtins) { continue; } - let request = create_import_request(symbol.module.name(db), &symbol.symbol.name); + let request = create_import_request(symbol.module().name(db), symbol.name()); // FIXME: `all_symbols` doesn't account for wildcard imports. // Since we're looking at every module, this is probably // "fine," but it might mean that we import a symbol from the @@ -551,11 +550,11 @@ fn add_unimported_completions<'db>( // N.B. We use `add` here because `all_symbols` already // takes our query into account. completions.force_add(Completion { - name: ast::name::Name::new(&symbol.symbol.name), + name: ast::name::Name::new(symbol.name()), insert: Some(import_action.symbol_text().into()), ty: None, - kind: symbol.symbol.kind.to_completion_kind(), - module_name: Some(symbol.module.name(db)), + kind: symbol.kind().to_completion_kind(), + module_name: Some(symbol.module().name(db)), import: import_action.import().cloned(), builtin: false, // TODO: `is_type_check_only` requires inferring the type of the symbol From da94b992485ccb6f473df1df9e1f4af2ff1eb948 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Thu, 4 Dec 2025 14:33:21 -0500 Subject: [PATCH 13/65] [ty] Add support for module-only import requests The existing importer functionality always required an import request with a module and a member in that module. But we want to be able to insert import statements for a module itself and not any members in the module. This is basically changing `member: &str` to an `Option<&str>` and fixing the fallout in a way that makes sense for module-only imports. --- crates/ty_ide/src/importer.rs | 150 ++++++++++++++++++++++++++++++---- 1 file changed, 134 insertions(+), 16 deletions(-) diff --git a/crates/ty_ide/src/importer.rs b/crates/ty_ide/src/importer.rs index 5ff46a1ae1..1dff46bcaf 100644 --- a/crates/ty_ide/src/importer.rs +++ b/crates/ty_ide/src/importer.rs @@ -145,7 +145,7 @@ impl<'a> Importer<'a> { members: &MembersInScope, ) -> ImportAction { let request = request.avoid_conflicts(self.db, self.file, members); - let mut symbol_text: Box = request.member.into(); + let mut symbol_text: Box = request.member.unwrap_or(request.module).into(); let Some(response) = self.find(&request, members.at) else { let insertion = if let Some(future) = self.find_last_future_import(members.at) { Insertion::end_of_statement(future.stmt, self.source, self.stylist) @@ -157,14 +157,27 @@ impl<'a> Importer<'a> { Insertion::start_of_file(self.parsed.suite(), self.source, self.stylist, range) }; let import = insertion.into_edit(&request.to_string()); - if matches!(request.style, ImportStyle::Import) { - symbol_text = format!("{}.{}", request.module, request.member).into(); + if let Some(member) = request.member + && matches!(request.style, ImportStyle::Import) + { + symbol_text = format!("{}.{}", request.module, member).into(); } return ImportAction { import: Some(import), symbol_text, }; }; + + // When we just have a request to import a module (and not + // any members from that module), then the only way we can be + // here is if we found a pre-existing import that definitively + // satisfies the request. So we're done. + let Some(member) = request.member else { + return ImportAction { + import: None, + symbol_text, + }; + }; match response.kind { ImportResponseKind::Unqualified { ast, alias } => { let member = alias.asname.as_ref().unwrap_or(&alias.name).as_str(); @@ -189,13 +202,10 @@ impl<'a> Importer<'a> { let import = if let Some(insertion) = Insertion::existing_import(response.import.stmt, self.tokens) { - insertion.into_edit(request.member) + insertion.into_edit(member) } else { Insertion::end_of_statement(response.import.stmt, self.source, self.stylist) - .into_edit(&format!( - "from {} import {}", - request.module, request.member - )) + .into_edit(&format!("from {} import {member}", request.module)) }; ImportAction { import: Some(import), @@ -481,6 +491,17 @@ impl<'ast> AstImportKind<'ast> { Some(ImportResponseKind::Qualified { ast, alias }) } AstImportKind::ImportFrom(ast) => { + // If the request is for a module itself, then we + // assume that it can never be satisfies by a + // `from ... import ...` statement. For example, a + // `request for collections.abc` needs an + // `import collections.abc`. Now, there could be a + // `from collections import abc`, and we could + // plausibly consider that a match and return a + // symbol text of `abc`. But it's not clear if that's + // the right choice or not. + let member = request.member?; + if request.force_style && !matches!(request.style, ImportStyle::ImportFrom) { return None; } @@ -492,9 +513,7 @@ impl<'ast> AstImportKind<'ast> { let kind = ast .names .iter() - .find(|alias| { - alias.name.as_str() == "*" || alias.name.as_str() == request.member - }) + .find(|alias| alias.name.as_str() == "*" || alias.name.as_str() == member) .map(|alias| ImportResponseKind::Unqualified { ast, alias }) .unwrap_or_else(|| ImportResponseKind::Partial(ast)); Some(kind) @@ -510,7 +529,10 @@ pub(crate) struct ImportRequest<'a> { /// `foo`, in `from foo import bar`). module: &'a str, /// The member to import (e.g., `bar`, in `from foo import bar`). - member: &'a str, + /// + /// When `member` is absent, then this request reflects an import + /// of the module itself. i.e., `import module`. + member: Option<&'a str>, /// The preferred style to use when importing the symbol (e.g., /// `import foo` or `from foo import bar`). /// @@ -532,7 +554,7 @@ impl<'a> ImportRequest<'a> { pub(crate) fn import(module: &'a str, member: &'a str) -> Self { Self { module, - member, + member: Some(member), style: ImportStyle::Import, force_style: false, } @@ -545,12 +567,26 @@ impl<'a> ImportRequest<'a> { pub(crate) fn import_from(module: &'a str, member: &'a str) -> Self { Self { module, - member, + member: Some(member), style: ImportStyle::ImportFrom, force_style: false, } } + /// Create a new [`ImportRequest`] for bringing the given module + /// into scope. + /// + /// This is for just importing the module itself, always via an + /// `import` statement. + pub(crate) fn module(module: &'a str) -> Self { + Self { + module, + member: None, + style: ImportStyle::Import, + force_style: false, + } + } + /// Causes this request to become a command. This will force the /// requested import style, even if another style would be more /// appropriate generally. @@ -565,7 +601,13 @@ impl<'a> ImportRequest<'a> { /// of an import conflict are minimized (although not always reduced /// to zero). fn avoid_conflicts(self, db: &dyn Db, importing_file: File, members: &MembersInScope) -> Self { - match (members.map.get(self.module), members.map.get(self.member)) { + let Some(member) = self.member else { + return Self { + style: ImportStyle::Import, + ..self + }; + }; + match (members.map.get(self.module), members.map.get(member)) { // Neither symbol exists, so we can just proceed as // normal. (None, None) => self, @@ -630,7 +672,10 @@ impl std::fmt::Display for ImportRequest<'_> { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { match self.style { ImportStyle::Import => write!(f, "import {}", self.module), - ImportStyle::ImportFrom => write!(f, "from {} import {}", self.module, self.member), + ImportStyle::ImportFrom => match self.member { + None => write!(f, "import {}", self.module), + Some(member) => write!(f, "from {} import {member}", self.module), + }, } } } @@ -843,6 +888,10 @@ mod tests { self.add(ImportRequest::import_from(module, member)) } + fn module(&self, module: &str) -> String { + self.add(ImportRequest::module(module)) + } + fn add(&self, request: ImportRequest<'_>) -> String { let node = covering_node( self.cursor.parsed.syntax().into(), @@ -2156,4 +2205,73 @@ except ImportError: (bar.MAGIC) "); } + + #[test] + fn import_module_blank() { + let test = cursor_test( + "\ + + ", + ); + assert_snapshot!( + test.module("collections"), @r" + import collections + collections + "); + } + + #[test] + fn import_module_exists() { + let test = cursor_test( + "\ +import collections + + ", + ); + assert_snapshot!( + test.module("collections"), @r" + import collections + collections + "); + } + + #[test] + fn import_module_from_exists() { + let test = cursor_test( + "\ +from collections import defaultdict + + ", + ); + assert_snapshot!( + test.module("collections"), @r" + import collections + from collections import defaultdict + collections + "); + } + + // This test is working as intended. That is, + // `abc` is already in scope, so requesting an + // import for `collections.abc` could feasibly + // reuse the import and rewrite the symbol text + // to just `abc`. But for now it seems better + // to respect what has been written and add the + // `import collections.abc`. This behavior could + // plausibly be changed. + #[test] + fn import_module_from_via_member_exists() { + let test = cursor_test( + "\ +from collections import abc + + ", + ); + assert_snapshot!( + test.module("collections.abc"), @r" + import collections.abc + from collections import abc + collections.abc + "); + } } From 518d11b33f0f7acc48d9e79c15728dedd6e25239 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Thu, 4 Dec 2025 14:33:42 -0500 Subject: [PATCH 14/65] [ty] Add modules to auto-import This makes auto-import include modules in suggestions. In this initial implementation, we permit this to include submodules as well. This is in contrast to what we do in `import ...` completions. It's easy to change this behavior, but I think it'd be interesting to run with this for now to see how well it works. --- crates/ty_ide/src/all_symbols.rs | 74 +++++++++---- crates/ty_ide/src/completion.rs | 100 +++++++++++++++++- ...action_attribute_access_on_unimported.snap | 46 ++++++++ 3 files changed, 196 insertions(+), 24 deletions(-) diff --git a/crates/ty_ide/src/all_symbols.rs b/crates/ty_ide/src/all_symbols.rs index 210b116e57..aa7f9e02b7 100644 --- a/crates/ty_ide/src/all_symbols.rs +++ b/crates/ty_ide/src/all_symbols.rs @@ -59,12 +59,19 @@ pub fn all_symbols<'db>( continue; } s.spawn(move |_| { + if query.is_match_symbol_name(module.name(&*db)) { + results.lock().unwrap().push(AllSymbolInfo { + symbol: None, + module, + file, + }); + } for (_, symbol) in symbols_for_file_global_only(&*db, file).search(query) { // It seems like we could do better here than // locking `results` for every single symbol, // but this works pretty well as it is. results.lock().unwrap().push(AllSymbolInfo { - symbol: symbol.to_owned(), + symbol: Some(symbol.to_owned()), module, file, }); @@ -76,8 +83,16 @@ pub fn all_symbols<'db>( let mut results = results.into_inner().unwrap(); results.sort_by(|s1, s2| { - let key1 = (&s1.symbol.name, s1.file.path(db).as_str()); - let key2 = (&s2.symbol.name, s2.file.path(db).as_str()); + let key1 = ( + s1.name_in_file() + .unwrap_or_else(|| s1.module().name(db).as_str()), + s1.file.path(db).as_str(), + ); + let key2 = ( + s2.name_in_file() + .unwrap_or_else(|| s2.module().name(db).as_str()), + s2.file.path(db).as_str(), + ); key1.cmp(&key2) }); results @@ -88,7 +103,9 @@ pub fn all_symbols<'db>( #[derive(Debug, Clone, PartialEq, Eq)] pub struct AllSymbolInfo<'db> { /// The symbol information. - symbol: SymbolInfo<'static>, + /// + /// When absent, this implies the symbol is the module itself. + symbol: Option>, /// The module containing the symbol. module: Module<'db>, /// The file containing the symbol. @@ -99,9 +116,14 @@ pub struct AllSymbolInfo<'db> { } impl<'db> AllSymbolInfo<'db> { - /// Returns the name of this symbol. - pub fn name(&self) -> &str { - &self.symbol.name + /// Returns the name of this symbol as it exists in a file. + /// + /// When absent, there is no concrete symbol in a module + /// somewhere. Instead, this represents importing a module. + /// In this case, if the caller needs a symbol name, they + /// should use `AllSymbolInfo::module().name()`. + pub fn name_in_file(&self) -> Option<&str> { + self.symbol.as_ref().map(|symbol| &*symbol.name) } /// Returns the "kind" of this symbol. @@ -110,7 +132,10 @@ impl<'db> AllSymbolInfo<'db> { /// determined on a best effort basis. It may be imprecise /// in some cases, e.g., reporting a module as a variable. pub fn kind(&self) -> SymbolKind { - self.symbol.kind + self.symbol + .as_ref() + .map(|symbol| symbol.kind) + .unwrap_or(SymbolKind::Module) } /// Returns the module this symbol is exported from. @@ -208,25 +233,31 @@ ABCDEFGHIJKLMNOP = 'https://api.example.com' return "No symbols found".to_string(); } - self.render_diagnostics(symbols.into_iter().map(AllSymbolDiagnostic::new)) + self.render_diagnostics(symbols.into_iter().map(|symbol_info| AllSymbolDiagnostic { + db: &self.db, + symbol_info, + })) } } struct AllSymbolDiagnostic<'db> { + db: &'db dyn Db, symbol_info: AllSymbolInfo<'db>, } - impl<'db> AllSymbolDiagnostic<'db> { - fn new(symbol_info: AllSymbolInfo<'db>) -> Self { - Self { symbol_info } - } - } - impl IntoDiagnostic for AllSymbolDiagnostic<'_> { fn into_diagnostic(self) -> Diagnostic { - let symbol_kind_str = self.symbol_info.symbol.kind.to_string(); + let symbol_kind_str = self.symbol_info.kind().to_string(); - let info_text = format!("{} {}", symbol_kind_str, self.symbol_info.symbol.name); + let info_text = format!( + "{} {}", + symbol_kind_str, + self.symbol_info.name_in_file().unwrap_or_else(|| self + .symbol_info + .module() + .name(self.db) + .as_str()) + ); let sub = SubDiagnostic::new(SubDiagnosticSeverity::Info, info_text); @@ -235,9 +266,12 @@ ABCDEFGHIJKLMNOP = 'https://api.example.com' Severity::Info, "AllSymbolInfo".to_string(), ); - main.annotate(Annotation::primary( - Span::from(self.symbol_info.file).with_range(self.symbol_info.symbol.name_range), - )); + + let mut span = Span::from(self.symbol_info.file()); + if let Some(ref symbol) = self.symbol_info.symbol { + span = span.with_range(symbol.name_range); + } + main.annotate(Annotation::primary(span)); main.sub(sub); main diff --git a/crates/ty_ide/src/completion.rs b/crates/ty_ide/src/completion.rs index f96ac1500d..70505ac4c8 100644 --- a/crates/ty_ide/src/completion.rs +++ b/crates/ty_ide/src/completion.rs @@ -74,7 +74,7 @@ impl<'db> Completions<'db> { .into_iter() .filter_map(|item| { Some(ImportEdit { - label: format!("import {}.{}", item.module_name?, item.name), + label: format!("import {}", item.qualified?), edit: item.import?, }) }) @@ -160,6 +160,10 @@ impl<'db> Extend> for Completions<'db> { pub struct Completion<'db> { /// The label shown to the user for this suggestion. pub name: Name, + /// The fully qualified name, when available. + /// + /// This is only set when `module_name` is available. + pub qualified: Option, /// The text that should be inserted at the cursor /// when the completion is selected. /// @@ -225,6 +229,7 @@ impl<'db> Completion<'db> { let is_type_check_only = semantic.is_type_check_only(db); Completion { name: semantic.name, + qualified: None, insert: None, ty: semantic.ty, kind: None, @@ -306,6 +311,7 @@ impl<'db> Completion<'db> { fn keyword(name: &str) -> Self { Completion { name: name.into(), + qualified: None, insert: None, ty: None, kind: Some(CompletionKind::Keyword), @@ -321,6 +327,7 @@ impl<'db> Completion<'db> { fn value_keyword(name: &str, ty: Type<'db>) -> Completion<'db> { Completion { name: name.into(), + qualified: None, insert: None, ty: Some(ty), kind: Some(CompletionKind::Keyword), @@ -541,7 +548,18 @@ fn add_unimported_completions<'db>( continue; } - let request = create_import_request(symbol.module().name(db), symbol.name()); + let module_name = symbol.module().name(db); + let (name, qualified, request) = symbol + .name_in_file() + .map(|name| { + let qualified = format!("{module_name}.{name}"); + (name, qualified, create_import_request(module_name, name)) + }) + .unwrap_or_else(|| { + let name = module_name.as_str(); + let qualified = name.to_string(); + (name, qualified, ImportRequest::module(name)) + }); // FIXME: `all_symbols` doesn't account for wildcard imports. // Since we're looking at every module, this is probably // "fine," but it might mean that we import a symbol from the @@ -550,11 +568,12 @@ fn add_unimported_completions<'db>( // N.B. We use `add` here because `all_symbols` already // takes our query into account. completions.force_add(Completion { - name: ast::name::Name::new(symbol.name()), + name: ast::name::Name::new(name), + qualified: Some(ast::name::Name::new(qualified)), insert: Some(import_action.symbol_text().into()), ty: None, kind: symbol.kind().to_completion_kind(), - module_name: Some(symbol.module().name(db)), + module_name: Some(module_name), import: import_action.import().cloned(), builtin: false, // TODO: `is_type_check_only` requires inferring the type of the symbol @@ -6066,6 +6085,79 @@ ZQ "); } + #[test] + fn auto_import_includes_stdlib_modules_as_suggestions() { + let snapshot = CursorTest::builder() + .source( + "main.py", + r#" +multiprocess +"#, + ) + .completion_test_builder() + .auto_import() + .build() + .snapshot(); + assert_snapshot!(snapshot, @r" + multiprocessing + multiprocessing.connection + multiprocessing.context + multiprocessing.dummy + multiprocessing.dummy.connection + multiprocessing.forkserver + multiprocessing.heap + multiprocessing.managers + multiprocessing.pool + multiprocessing.popen_fork + multiprocessing.popen_forkserver + multiprocessing.popen_spawn_posix + multiprocessing.popen_spawn_win32 + multiprocessing.process + multiprocessing.queues + multiprocessing.reduction + multiprocessing.resource_sharer + multiprocessing.resource_tracker + multiprocessing.shared_memory + multiprocessing.sharedctypes + multiprocessing.spawn + multiprocessing.synchronize + multiprocessing.util + "); + } + + #[test] + fn auto_import_includes_first_party_modules_as_suggestions() { + let snapshot = CursorTest::builder() + .source( + "main.py", + r#" +zqzqzq +"#, + ) + .source("zqzqzqzqzq.py", "") + .completion_test_builder() + .auto_import() + .build() + .snapshot(); + assert_snapshot!(snapshot, @"zqzqzqzqzq"); + } + + #[test] + fn auto_import_includes_sub_modules_as_suggestions() { + let snapshot = CursorTest::builder() + .source( + "main.py", + r#" +collabc +"#, + ) + .completion_test_builder() + .auto_import() + .build() + .snapshot(); + assert_snapshot!(snapshot, @"collections.abc"); + } + /// A way to create a simple single-file (named `main.py`) completion test /// builder. /// diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_attribute_access_on_unimported.snap b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_attribute_access_on_unimported.snap index c82a14bc8e..3026696d8e 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_attribute_access_on_unimported.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_attribute_access_on_unimported.snap @@ -3,6 +3,52 @@ source: crates/ty_server/tests/e2e/code_actions.rs expression: code_actions --- [ + { + "title": "import typing", + "kind": "quickfix", + "diagnostics": [ + { + "range": { + "start": { + "line": 0, + "character": 3 + }, + "end": { + "line": 0, + "character": 9 + } + }, + "severity": 1, + "code": "unresolved-reference", + "codeDescription": { + "href": "https://ty.dev/rules#unresolved-reference" + }, + "source": "ty", + "message": "Name `typing` used when not defined", + "relatedInformation": [] + } + ], + "edit": { + "changes": { + "file:///src/foo.py": [ + { + "range": { + "start": { + "line": 0, + "character": 0 + }, + "end": { + "line": 0, + "character": 0 + } + }, + "newText": "import typing\n" + } + ] + } + }, + "isPreferred": true + }, { "title": "Ignore 'unresolved-reference' for this line", "kind": "quickfix", From 06415b1877cb9d9c5a9d6eadcb42b1b9304f12cf Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Thu, 4 Dec 2025 15:07:01 -0500 Subject: [PATCH 15/65] [ty] Update completion eval to include modules Our parsing and confirming of symbol names is highly suspect, but I think it's fine for now. --- .../completion-evaluation-tasks.csv | 5 ++++- crates/ty_completion_eval/src/main.rs | 12 ++++++++++++ .../auto-import-includes-modules/completion.toml | 2 ++ .../truth/auto-import-includes-modules/main.py | 3 +++ .../auto-import-includes-modules/pyproject.toml | 5 +++++ .../truth/auto-import-includes-modules/uv.lock | 8 ++++++++ 6 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 crates/ty_completion_eval/truth/auto-import-includes-modules/completion.toml create mode 100644 crates/ty_completion_eval/truth/auto-import-includes-modules/main.py create mode 100644 crates/ty_completion_eval/truth/auto-import-includes-modules/pyproject.toml create mode 100644 crates/ty_completion_eval/truth/auto-import-includes-modules/uv.lock diff --git a/crates/ty_completion_eval/completion-evaluation-tasks.csv b/crates/ty_completion_eval/completion-evaluation-tasks.csv index a196fb98e4..ed036b44f6 100644 --- a/crates/ty_completion_eval/completion-evaluation-tasks.csv +++ b/crates/ty_completion_eval/completion-evaluation-tasks.csv @@ -1,4 +1,7 @@ name,file,index,rank +auto-import-includes-modules,main.py,0,1 +auto-import-includes-modules,main.py,1,7 +auto-import-includes-modules,main.py,2,1 auto-import-skips-current-module,main.py,0,1 fstring-completions,main.py,0,1 higher-level-symbols-preferred,main.py,0, @@ -25,4 +28,4 @@ scope-simple-long-identifier,main.py,0,1 tstring-completions,main.py,0,1 ty-extensions-lower-stdlib,main.py,0,9 type-var-typing-over-ast,main.py,0,3 -type-var-typing-over-ast,main.py,1,239 +type-var-typing-over-ast,main.py,1,251 diff --git a/crates/ty_completion_eval/src/main.rs b/crates/ty_completion_eval/src/main.rs index 146041a278..5d3b44ad18 100644 --- a/crates/ty_completion_eval/src/main.rs +++ b/crates/ty_completion_eval/src/main.rs @@ -506,9 +506,21 @@ struct CompletionAnswer { impl CompletionAnswer { /// Returns true when this answer matches the completion given. fn matches(&self, completion: &Completion) -> bool { + if let Some(ref qualified) = completion.qualified { + if qualified.as_str() == self.qualified() { + return true; + } + } self.symbol == completion.name.as_str() && self.module.as_deref() == completion.module_name.map(ModuleName::as_str) } + + fn qualified(&self) -> String { + self.module + .as_ref() + .map(|module| format!("{module}.{}", self.symbol)) + .unwrap_or_else(|| self.symbol.clone()) + } } /// Copy the Python project from `src_dir` to `dst_dir`. diff --git a/crates/ty_completion_eval/truth/auto-import-includes-modules/completion.toml b/crates/ty_completion_eval/truth/auto-import-includes-modules/completion.toml new file mode 100644 index 0000000000..cbd5805f07 --- /dev/null +++ b/crates/ty_completion_eval/truth/auto-import-includes-modules/completion.toml @@ -0,0 +1,2 @@ +[settings] +auto-import = true diff --git a/crates/ty_completion_eval/truth/auto-import-includes-modules/main.py b/crates/ty_completion_eval/truth/auto-import-includes-modules/main.py new file mode 100644 index 0000000000..a019ea5d71 --- /dev/null +++ b/crates/ty_completion_eval/truth/auto-import-includes-modules/main.py @@ -0,0 +1,3 @@ +multiprocess +collect +collabc diff --git a/crates/ty_completion_eval/truth/auto-import-includes-modules/pyproject.toml b/crates/ty_completion_eval/truth/auto-import-includes-modules/pyproject.toml new file mode 100644 index 0000000000..cd277d8097 --- /dev/null +++ b/crates/ty_completion_eval/truth/auto-import-includes-modules/pyproject.toml @@ -0,0 +1,5 @@ +[project] +name = "test" +version = "0.1.0" +requires-python = ">=3.13" +dependencies = [] diff --git a/crates/ty_completion_eval/truth/auto-import-includes-modules/uv.lock b/crates/ty_completion_eval/truth/auto-import-includes-modules/uv.lock new file mode 100644 index 0000000000..a4937d10d3 --- /dev/null +++ b/crates/ty_completion_eval/truth/auto-import-includes-modules/uv.lock @@ -0,0 +1,8 @@ +version = 1 +revision = 3 +requires-python = ">=3.13" + +[[package]] +name = "test" +version = "0.1.0" +source = { virtual = "." } From a9de6b5c3e15582a235de3ab4306104aad943e90 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Thu, 4 Dec 2025 15:17:57 -0800 Subject: [PATCH 16/65] [ty] normalize typevar bounds/constraints in cycles (#21800) Fixes https://github.com/astral-sh/ty/issues/1587 ## Summary Perform cycle normalization on typevar bounds and constraints (similar to how it was already done for typevar defaults) in order to ensure convergence in cyclic cases. There might be another fix here that could avoid the cycle in many more cases, where we don't eagerly evaluate typevar bounds/constraints on explicit specialization, but just accept the given specialization and later evaluate to see whether we need to emit a diagnostic on it. But the current fix here is sufficient to solve the problem and matches the patterns we use to ensure cycle convergence elsewhere, so it seems good for now; left a TODO for the other idea. This fix is sufficient to make us not panic, but not sufficient to get the semantics fully correct; see the TODOs in the tests. I have ideas for fixing that as well, but it seems worth at least getting this in to fix the panic. ## Test Plan Test that previously panicked now does not. --------- Co-authored-by: Alex Waygood --- .../resources/mdtest/protocols.md | 22 ++++-- crates/ty_python_semantic/src/types.rs | 79 ++++++++++++++++++- .../src/types/infer/builder.rs | 8 ++ 3 files changed, 101 insertions(+), 8 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/protocols.md b/crates/ty_python_semantic/resources/mdtest/protocols.md index cfa4c68914..28069bd07c 100644 --- a/crates/ty_python_semantic/resources/mdtest/protocols.md +++ b/crates/ty_python_semantic/resources/mdtest/protocols.md @@ -3184,14 +3184,9 @@ from ty_extensions import reveal_protocol_interface reveal_protocol_interface(Foo) ``` -## Known panics +## Protocols generic over TypeVars bound to forward references -### Protocols generic over TypeVars bound to forward references - -This test currently panics because the `ClassLiteral::explicit_bases` query fails to converge. See -issue . - - +Protocols can have TypeVars with forward reference bounds that form cycles. ```py from typing import Any, Protocol, TypeVar @@ -3209,6 +3204,19 @@ class A2(Protocol[T2]): class B1(A1[T3], Protocol[T3]): ... class B2(A2[T4], Protocol[T4]): ... + +# TODO should just be `B2[Any]` +reveal_type(T3.__bound__) # revealed: B2[Any] | @Todo(specialized non-generic class) + +# TODO error: [invalid-type-arguments] +def f(x: B1[int]): + pass + +reveal_type(T4.__bound__) # revealed: B1[Any] + +# error: [invalid-type-arguments] +def g(x: B2[int]): + pass ``` ## TODO diff --git a/crates/ty_python_semantic/src/types.rs b/crates/ty_python_semantic/src/types.rs index 81d056f91a..820d31c1b0 100644 --- a/crates/ty_python_semantic/src/types.rs +++ b/crates/ty_python_semantic/src/types.rs @@ -9612,6 +9612,7 @@ impl<'db> TypeVarInstance<'db> { } #[salsa::tracked( + cycle_fn=lazy_bound_or_constraints_cycle_recover, cycle_initial=lazy_bound_or_constraints_cycle_initial, heap_size=ruff_memory_usage::heap_size )] @@ -9636,6 +9637,7 @@ impl<'db> TypeVarInstance<'db> { } #[salsa::tracked( + cycle_fn=lazy_bound_or_constraints_cycle_recover, cycle_initial=lazy_bound_or_constraints_cycle_initial, heap_size=ruff_memory_usage::heap_size )] @@ -9730,7 +9732,23 @@ fn lazy_bound_or_constraints_cycle_initial<'db>( None } -#[allow(clippy::ref_option)] +#[expect(clippy::ref_option)] +fn lazy_bound_or_constraints_cycle_recover<'db>( + db: &'db dyn Db, + cycle: &salsa::Cycle, + previous: &Option>, + current: Option>, + _typevar: TypeVarInstance<'db>, +) -> Option> { + // Normalize the bounds/constraints to ensure cycle convergence. + match (previous, current) { + (Some(prev), Some(current)) => Some(current.cycle_normalized(db, *prev, cycle)), + (None, Some(current)) => Some(current.recursive_type_normalized(db, cycle)), + (_, None) => None, + } +} + +#[expect(clippy::ref_option)] fn lazy_default_cycle_recover<'db>( db: &'db dyn Db, cycle: &salsa::Cycle, @@ -9738,6 +9756,7 @@ fn lazy_default_cycle_recover<'db>( default: Option>, _typevar: TypeVarInstance<'db>, ) -> Option> { + // Normalize the default to ensure cycle convergence. match (previous_default, default) { (Some(prev), Some(default)) => Some(default.cycle_normalized(db, *prev, cycle)), (None, Some(default)) => Some(default.recursive_type_normalized(db, cycle)), @@ -10106,6 +10125,64 @@ impl<'db> TypeVarBoundOrConstraints<'db> { } } + /// Normalize for cycle recovery by combining with the previous value and + /// removing divergent types introduced by the cycle. + /// + /// See [`Type::cycle_normalized`] for more details on how this works. + fn cycle_normalized(self, db: &'db dyn Db, previous: Self, cycle: &salsa::Cycle) -> Self { + match (self, previous) { + ( + TypeVarBoundOrConstraints::UpperBound(bound), + TypeVarBoundOrConstraints::UpperBound(prev_bound), + ) => { + TypeVarBoundOrConstraints::UpperBound(bound.cycle_normalized(db, prev_bound, cycle)) + } + ( + TypeVarBoundOrConstraints::Constraints(constraints), + TypeVarBoundOrConstraints::Constraints(prev_constraints), + ) => { + // Normalize each constraint with its corresponding previous constraint + let current_elements = constraints.elements(db); + let prev_elements = prev_constraints.elements(db); + TypeVarBoundOrConstraints::Constraints(UnionType::new( + db, + current_elements + .iter() + .zip(prev_elements.iter()) + .map(|(ty, prev_ty)| ty.cycle_normalized(db, *prev_ty, cycle)) + .collect::>(), + )) + } + // The choice of whether it's an upper bound or constraints is purely syntactic and + // thus can never change in a cycle: `parsed_module` does not participate in cycles, + // the AST will never change from one iteration to the next. + _ => unreachable!( + "TypeVar switched from bound to constraints (or vice versa) in fixpoint iteration" + ), + } + } + + /// Normalize recursive types for cycle recovery when there's no previous value. + /// + /// See [`Type::recursive_type_normalized`] for more details. + fn recursive_type_normalized(self, db: &'db dyn Db, cycle: &salsa::Cycle) -> Self { + match self { + TypeVarBoundOrConstraints::UpperBound(bound) => { + TypeVarBoundOrConstraints::UpperBound(bound.recursive_type_normalized(db, cycle)) + } + TypeVarBoundOrConstraints::Constraints(constraints) => { + TypeVarBoundOrConstraints::Constraints(UnionType::new( + db, + constraints + .elements(db) + .iter() + .map(|ty| ty.recursive_type_normalized(db, cycle)) + .collect::>(), + )) + } + } + } + fn materialize_impl( self, db: &'db dyn Db, diff --git a/crates/ty_python_semantic/src/types/infer/builder.rs b/crates/ty_python_semantic/src/types/infer/builder.rs index 9488d2270d..dd04b6d001 100644 --- a/crates/ty_python_semantic/src/types/infer/builder.rs +++ b/crates/ty_python_semantic/src/types/infer/builder.rs @@ -11481,6 +11481,10 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { if typevar.default_type(db).is_some() { typevar_with_defaults += 1; } + // TODO consider just accepting the given specialization without checking + // against bounds/constraints, but recording the expression for deferred + // checking at end of scope. This would avoid a lot of cycles caused by eagerly + // doing assignment checks here. match typevar.typevar(db).bound_or_constraints(db) { Some(TypeVarBoundOrConstraints::UpperBound(bound)) => { if provided_type @@ -11505,6 +11509,10 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { } } Some(TypeVarBoundOrConstraints::Constraints(constraints)) => { + // TODO: this is wrong, the given specialization needs to be assignable + // to _at least one_ of the individual constraints, not to the union of + // all of them. `int | str` is not a valid specialization of a typevar + // constrained to `(int, str)`. if provided_type .when_assignable_to( db, From f3e5713d90f0b1bfcba9bfe3a3ab0c3df33ece83 Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama <45118249+mtshiba@users.noreply.github.com> Date: Fri, 5 Dec 2025 11:01:48 +0900 Subject: [PATCH 17/65] [ty] increase the limit on the number of elements in a non-recursively defined literal union (#21683) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Closes https://github.com/astral-sh/ty/issues/957 As explained in https://github.com/astral-sh/ty/issues/957, literal union types for recursively defined values ​​can be widened early to speed up the convergence of fixed-point iterations. This PR achieves this by embedding a marker in `UnionType` that distinguishes whether a value is recursively defined. This also allows us to identify values ​​that are not recursively defined, so I've increased the limit on the number of elements in a literal union type for such values. Edit: while this PR doesn't provide the significant performance improvement initially hoped for, it does have the benefit of allowing the number of elements in a literal union to be raised above the salsa limit, and indeed mypy_primer results revealed that a literal union of 220 elements was actually being used. ## Test Plan `call/union.md` has been updated --- .../resources/mdtest/call/union.md | 13 ++- crates/ty_python_semantic/src/types.rs | 45 ++++++++-- .../ty_python_semantic/src/types/builder.rs | 89 +++++++++++++++++-- .../src/types/infer/builder.rs | 2 + .../src/types/subclass_of.rs | 8 +- crates/ty_python_semantic/src/types/tuple.rs | 3 +- 6 files changed, 138 insertions(+), 22 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/call/union.md b/crates/ty_python_semantic/resources/mdtest/call/union.md index 4f374ac754..8d722288e4 100644 --- a/crates/ty_python_semantic/resources/mdtest/call/union.md +++ b/crates/ty_python_semantic/resources/mdtest/call/union.md @@ -227,17 +227,22 @@ def _(literals_2: Literal[0, 1], b: bool, flag: bool): literals_16 = 4 * literals_4 + literals_4 # Literal[0, 1, .., 15] literals_64 = 4 * literals_16 + literals_4 # Literal[0, 1, .., 63] literals_128 = 2 * literals_64 + literals_2 # Literal[0, 1, .., 127] + literals_256 = 2 * literals_128 + literals_2 # Literal[0, 1, .., 255] - # Going beyond the MAX_UNION_LITERALS limit (currently 200): - literals_256 = 16 * literals_16 + literals_16 - reveal_type(literals_256) # revealed: int + # Going beyond the MAX_UNION_LITERALS limit (currently 512): + literals_512 = 2 * literals_256 + literals_2 # Literal[0, 1, .., 511] + reveal_type(literals_512 if flag else 512) # revealed: int # Going beyond the limit when another type is already part of the union bool_and_literals_128 = b if flag else literals_128 # bool | Literal[0, 1, ..., 127] literals_128_shifted = literals_128 + 128 # Literal[128, 129, ..., 255] + literals_256_shifted = literals_256 + 256 # Literal[256, 257, ..., 511] # Now union the two: - reveal_type(bool_and_literals_128 if flag else literals_128_shifted) # revealed: int + two = bool_and_literals_128 if flag else literals_128_shifted + # revealed: bool | Literal[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255] + reveal_type(two) + reveal_type(two if flag else literals_256_shifted) # revealed: int ``` ## Simplifying gradually-equivalent types diff --git a/crates/ty_python_semantic/src/types.rs b/crates/ty_python_semantic/src/types.rs index 820d31c1b0..e297ebf821 100644 --- a/crates/ty_python_semantic/src/types.rs +++ b/crates/ty_python_semantic/src/types.rs @@ -44,6 +44,7 @@ use crate::semantic_index::scope::ScopeId; use crate::semantic_index::{imported_modules, place_table, semantic_index}; use crate::suppression::check_suppressions; use crate::types::bound_super::BoundSuperType; +use crate::types::builder::RecursivelyDefined; use crate::types::call::{Binding, Bindings, CallArguments, CallableBinding}; pub(crate) use crate::types::class_base::ClassBase; use crate::types::constraints::{ @@ -9668,6 +9669,7 @@ impl<'db> TypeVarInstance<'db> { .skip(1) .map(|arg| definition_expression_type(db, definition, arg)) .collect::>(), + RecursivelyDefined::No, ) } _ => return None, @@ -10120,6 +10122,7 @@ impl<'db> TypeVarBoundOrConstraints<'db> { .iter() .map(|ty| ty.normalized_impl(db, visitor)) .collect::>(), + constraints.recursively_defined(db), )) } } @@ -10201,6 +10204,7 @@ impl<'db> TypeVarBoundOrConstraints<'db> { .iter() .map(|ty| ty.materialize(db, materialization_kind, visitor)) .collect::>(), + RecursivelyDefined::No, )) } } @@ -13142,6 +13146,9 @@ pub struct UnionType<'db> { /// The union type includes values in any of these types. #[returns(deref)] pub elements: Box<[Type<'db>]>, + /// Whether the value pointed to by this type is recursively defined. + /// If `Yes`, union literal widening is performed early. + recursively_defined: RecursivelyDefined, } pub(crate) fn walk_union<'db, V: visitor::TypeVisitor<'db> + ?Sized>( @@ -13226,7 +13233,14 @@ impl<'db> UnionType<'db> { db: &'db dyn Db, transform_fn: impl FnMut(&Type<'db>) -> Type<'db>, ) -> Type<'db> { - Self::from_elements(db, self.elements(db).iter().map(transform_fn)) + self.elements(db) + .iter() + .map(transform_fn) + .fold(UnionBuilder::new(db), |builder, element| { + builder.add(element) + }) + .recursively_defined(self.recursively_defined(db)) + .build() } /// A fallible version of [`UnionType::map`]. @@ -13241,7 +13255,12 @@ impl<'db> UnionType<'db> { db: &'db dyn Db, transform_fn: impl FnMut(&Type<'db>) -> Option>, ) -> Option> { - Self::try_from_elements(db, self.elements(db).iter().map(transform_fn)) + let mut builder = UnionBuilder::new(db); + for element in self.elements(db).iter().map(transform_fn) { + builder = builder.add(element?); + } + builder = builder.recursively_defined(self.recursively_defined(db)); + Some(builder.build()) } pub(crate) fn to_instance(self, db: &'db dyn Db) -> Option> { @@ -13253,7 +13272,14 @@ impl<'db> UnionType<'db> { db: &'db dyn Db, mut f: impl FnMut(&Type<'db>) -> bool, ) -> Type<'db> { - Self::from_elements(db, self.elements(db).iter().filter(|ty| f(ty))) + self.elements(db) + .iter() + .filter(|ty| f(ty)) + .fold(UnionBuilder::new(db), |builder, element| { + builder.add(*element) + }) + .recursively_defined(self.recursively_defined(db)) + .build() } pub(crate) fn map_with_boundness( @@ -13288,7 +13314,9 @@ impl<'db> UnionType<'db> { Place::Undefined } else { Place::Defined( - builder.build(), + builder + .recursively_defined(self.recursively_defined(db)) + .build(), origin, if possibly_unbound { Definedness::PossiblyUndefined @@ -13336,7 +13364,9 @@ impl<'db> UnionType<'db> { Place::Undefined } else { Place::Defined( - builder.build(), + builder + .recursively_defined(self.recursively_defined(db)) + .build(), origin, if possibly_unbound { Definedness::PossiblyUndefined @@ -13371,6 +13401,7 @@ impl<'db> UnionType<'db> { .unpack_aliases(true), UnionBuilder::add, ) + .recursively_defined(self.recursively_defined(db)) .build() } @@ -13383,7 +13414,8 @@ impl<'db> UnionType<'db> { let mut builder = UnionBuilder::new(db) .order_elements(false) .unpack_aliases(false) - .cycle_recovery(true); + .cycle_recovery(true) + .recursively_defined(self.recursively_defined(db)); let mut empty = true; for ty in self.elements(db) { if nested { @@ -13398,6 +13430,7 @@ impl<'db> UnionType<'db> { // `Divergent` in a union type does not mean true divergence, so we skip it if not nested. // e.g. T | Divergent == T | (T | (T | (T | ...))) == T if ty == &div { + builder = builder.recursively_defined(RecursivelyDefined::Yes); continue; } builder = builder.add( diff --git a/crates/ty_python_semantic/src/types/builder.rs b/crates/ty_python_semantic/src/types/builder.rs index 0618682837..64ca36010a 100644 --- a/crates/ty_python_semantic/src/types/builder.rs +++ b/crates/ty_python_semantic/src/types/builder.rs @@ -202,12 +202,30 @@ enum ReduceResult<'db> { Type(Type<'db>), } -// TODO increase this once we extend `UnionElement` throughout all union/intersection -// representations, so that we can make large unions of literals fast in all operations. -// -// For now (until we solve https://github.com/astral-sh/ty/issues/957), keep this number -// below 200, which is the salsa fixpoint iteration limit. -const MAX_UNION_LITERALS: usize = 190; +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, get_size2::GetSize)] +pub enum RecursivelyDefined { + Yes, + No, +} + +impl RecursivelyDefined { + const fn is_yes(self) -> bool { + matches!(self, RecursivelyDefined::Yes) + } + + const fn or(self, other: RecursivelyDefined) -> RecursivelyDefined { + match (self, other) { + (RecursivelyDefined::Yes, _) | (_, RecursivelyDefined::Yes) => RecursivelyDefined::Yes, + _ => RecursivelyDefined::No, + } + } +} + +/// If the value ​​is defined recursively, widening is performed from fewer literal elements, resulting in faster convergence of the fixed-point iteration. +const MAX_RECURSIVE_UNION_LITERALS: usize = 10; +/// If the value ​​is defined non-recursively, the fixed-point iteration will converge in one go, +/// so in principle we can have as many literal elements as we want, but to avoid unintended huge computational loads, we limit it to 256. +const MAX_NON_RECURSIVE_UNION_LITERALS: usize = 256; pub(crate) struct UnionBuilder<'db> { elements: Vec>, @@ -217,6 +235,7 @@ pub(crate) struct UnionBuilder<'db> { // This is enabled when joining types in a `cycle_recovery` function. // Since a cycle cannot be created within a `cycle_recovery` function, execution of `is_redundant_with` is skipped. cycle_recovery: bool, + recursively_defined: RecursivelyDefined, } impl<'db> UnionBuilder<'db> { @@ -227,6 +246,7 @@ impl<'db> UnionBuilder<'db> { unpack_aliases: true, order_elements: false, cycle_recovery: false, + recursively_defined: RecursivelyDefined::No, } } @@ -248,6 +268,11 @@ impl<'db> UnionBuilder<'db> { self } + pub(crate) fn recursively_defined(mut self, val: RecursivelyDefined) -> Self { + self.recursively_defined = val; + self + } + pub(crate) fn is_empty(&self) -> bool { self.elements.is_empty() } @@ -258,6 +283,27 @@ impl<'db> UnionBuilder<'db> { self.elements.push(UnionElement::Type(Type::object())); } + fn widen_literal_types(&mut self, seen_aliases: &mut Vec>) { + let mut replace_with = vec![]; + for elem in &self.elements { + match elem { + UnionElement::IntLiterals(_) => { + replace_with.push(KnownClass::Int.to_instance(self.db)); + } + UnionElement::StringLiterals(_) => { + replace_with.push(KnownClass::Str.to_instance(self.db)); + } + UnionElement::BytesLiterals(_) => { + replace_with.push(KnownClass::Bytes.to_instance(self.db)); + } + UnionElement::Type(_) => {} + } + } + for ty in replace_with { + self.add_in_place_impl(ty, seen_aliases); + } + } + /// Adds a type to this union. pub(crate) fn add(mut self, ty: Type<'db>) -> Self { self.add_in_place(ty); @@ -270,6 +316,15 @@ impl<'db> UnionBuilder<'db> { } pub(crate) fn add_in_place_impl(&mut self, ty: Type<'db>, seen_aliases: &mut Vec>) { + let cycle_recovery = self.cycle_recovery; + let should_widen = |literals, recursively_defined: RecursivelyDefined| { + if recursively_defined.is_yes() && cycle_recovery { + literals >= MAX_RECURSIVE_UNION_LITERALS + } else { + literals >= MAX_NON_RECURSIVE_UNION_LITERALS + } + }; + match ty { Type::Union(union) => { let new_elements = union.elements(self.db); @@ -277,6 +332,20 @@ impl<'db> UnionBuilder<'db> { for element in new_elements { self.add_in_place_impl(*element, seen_aliases); } + self.recursively_defined = self + .recursively_defined + .or(union.recursively_defined(self.db)); + if self.cycle_recovery && self.recursively_defined.is_yes() { + let literals = self.elements.iter().fold(0, |acc, elem| match elem { + UnionElement::IntLiterals(literals) => acc + literals.len(), + UnionElement::StringLiterals(literals) => acc + literals.len(), + UnionElement::BytesLiterals(literals) => acc + literals.len(), + UnionElement::Type(_) => acc, + }); + if should_widen(literals, self.recursively_defined) { + self.widen_literal_types(seen_aliases); + } + } } // Adding `Never` to a union is a no-op. Type::Never => {} @@ -300,7 +369,7 @@ impl<'db> UnionBuilder<'db> { for (index, element) in self.elements.iter_mut().enumerate() { match element { UnionElement::StringLiterals(literals) => { - if literals.len() >= MAX_UNION_LITERALS { + if should_widen(literals.len(), self.recursively_defined) { let replace_with = KnownClass::Str.to_instance(self.db); self.add_in_place_impl(replace_with, seen_aliases); return; @@ -345,7 +414,7 @@ impl<'db> UnionBuilder<'db> { for (index, element) in self.elements.iter_mut().enumerate() { match element { UnionElement::BytesLiterals(literals) => { - if literals.len() >= MAX_UNION_LITERALS { + if should_widen(literals.len(), self.recursively_defined) { let replace_with = KnownClass::Bytes.to_instance(self.db); self.add_in_place_impl(replace_with, seen_aliases); return; @@ -390,7 +459,7 @@ impl<'db> UnionBuilder<'db> { for (index, element) in self.elements.iter_mut().enumerate() { match element { UnionElement::IntLiterals(literals) => { - if literals.len() >= MAX_UNION_LITERALS { + if should_widen(literals.len(), self.recursively_defined) { let replace_with = KnownClass::Int.to_instance(self.db); self.add_in_place_impl(replace_with, seen_aliases); return; @@ -585,6 +654,7 @@ impl<'db> UnionBuilder<'db> { _ => Some(Type::Union(UnionType::new( self.db, types.into_boxed_slice(), + self.recursively_defined, ))), } } @@ -696,6 +766,7 @@ impl<'db> IntersectionBuilder<'db> { enum_member_literals(db, instance.class_literal(db), None) .expect("Calling `enum_member_literals` on an enum class") .collect::>(), + RecursivelyDefined::No, )), seen_aliases, ) diff --git a/crates/ty_python_semantic/src/types/infer/builder.rs b/crates/ty_python_semantic/src/types/infer/builder.rs index dd04b6d001..ccb25b66a2 100644 --- a/crates/ty_python_semantic/src/types/infer/builder.rs +++ b/crates/ty_python_semantic/src/types/infer/builder.rs @@ -50,6 +50,7 @@ use crate::semantic_index::{ ApplicableConstraints, EnclosingSnapshotResult, SemanticIndex, place_table, }; use crate::subscript::{PyIndex, PySlice}; +use crate::types::builder::RecursivelyDefined; use crate::types::call::bind::{CallableDescription, MatchingOverloadIndex}; use crate::types::call::{Binding, Bindings, CallArguments, CallError, CallErrorKind}; use crate::types::class::{CodeGeneratorKind, FieldKind, MetaclassErrorKind, MethodDecorator}; @@ -3283,6 +3284,7 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { elts.iter() .map(|expr| self.infer_type_expression(expr)) .collect::>(), + RecursivelyDefined::No, )); self.store_expression_type(expr, ty); } diff --git a/crates/ty_python_semantic/src/types/subclass_of.rs b/crates/ty_python_semantic/src/types/subclass_of.rs index d906a472c3..4d15700163 100644 --- a/crates/ty_python_semantic/src/types/subclass_of.rs +++ b/crates/ty_python_semantic/src/types/subclass_of.rs @@ -416,7 +416,7 @@ impl<'db> SubclassOfInner<'db> { ) } Some(TypeVarBoundOrConstraints::Constraints(constraints)) => { - let constraints = constraints + let constraints_types = constraints .elements(db) .iter() .map(|constraint| { @@ -425,7 +425,11 @@ impl<'db> SubclassOfInner<'db> { }) .collect::>(); - TypeVarBoundOrConstraints::Constraints(UnionType::new(db, constraints)) + TypeVarBoundOrConstraints::Constraints(UnionType::new( + db, + constraints_types, + constraints.recursively_defined(db), + )) } }) }); diff --git a/crates/ty_python_semantic/src/types/tuple.rs b/crates/ty_python_semantic/src/types/tuple.rs index d2b96f2849..6405ae3ae7 100644 --- a/crates/ty_python_semantic/src/types/tuple.rs +++ b/crates/ty_python_semantic/src/types/tuple.rs @@ -23,6 +23,7 @@ use itertools::{Either, EitherOrBoth, Itertools}; use crate::semantic_index::definition::Definition; use crate::subscript::{Nth, OutOfBoundsError, PyIndex, PySlice, StepSizeZeroError}; +use crate::types::builder::RecursivelyDefined; use crate::types::class::{ClassType, KnownClass}; use crate::types::constraints::{ConstraintSet, IteratorConstraintsExtension}; use crate::types::generics::InferableTypeVars; @@ -1458,7 +1459,7 @@ impl<'db> Tuple> { // those techniques ensure that union elements are deduplicated and unions are eagerly simplified // into other types where necessary. Here, however, we know that there are no duplicates // in this union, so it's probably more efficient to use `UnionType::new()` directly. - Type::Union(UnionType::new(db, elements)) + Type::Union(UnionType::new(db, elements, RecursivelyDefined::No)) }; TupleSpec::heterogeneous([ From 3511b7a06bafffdf07180f07282e799d8e7e6c02 Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama <45118249+mtshiba@users.noreply.github.com> Date: Fri, 5 Dec 2025 11:05:41 +0900 Subject: [PATCH 18/65] [ty] do nothing with `store_expression_type` if `inner_expression_inference_state` is `Get` (#21718) ## Summary Fixes https://github.com/astral-sh/ty/issues/1688 ## Test Plan N/A --- .../resources/corpus/inner_expression_inference_state.py | 6 ++++++ crates/ty_python_semantic/src/types/infer/builder.rs | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 crates/ty_python_semantic/resources/corpus/inner_expression_inference_state.py diff --git a/crates/ty_python_semantic/resources/corpus/inner_expression_inference_state.py b/crates/ty_python_semantic/resources/corpus/inner_expression_inference_state.py new file mode 100644 index 0000000000..dcf4bd462b --- /dev/null +++ b/crates/ty_python_semantic/resources/corpus/inner_expression_inference_state.py @@ -0,0 +1,6 @@ +# This is a regression test for `store_expression_type`. +# ref: https://github.com/astral-sh/ty/issues/1688 + +x: int + +type x[T] = x[T, U] diff --git a/crates/ty_python_semantic/src/types/infer/builder.rs b/crates/ty_python_semantic/src/types/infer/builder.rs index ccb25b66a2..d308553801 100644 --- a/crates/ty_python_semantic/src/types/infer/builder.rs +++ b/crates/ty_python_semantic/src/types/infer/builder.rs @@ -7108,10 +7108,13 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { #[track_caller] fn store_expression_type(&mut self, expression: &ast::Expr, ty: Type<'db>) { - if self.deferred_state.in_string_annotation() { + if self.deferred_state.in_string_annotation() + || self.inner_expression_inference_state.is_get() + { // Avoid storing the type of expressions that are part of a string annotation because // the expression ids don't exists in the semantic index. Instead, we'll store the type // on the string expression itself that represents the annotation. + // Also, if `inner_expression_inference_state` is `Get`, the expression type has already been stored. return; } From 10de34299105e3834ed965adda74ce3a26006d23 Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama <45118249+mtshiba@users.noreply.github.com> Date: Fri, 5 Dec 2025 11:20:24 +0900 Subject: [PATCH 19/65] [ty] fix build failure caused by conflicts between #21683 and #21800 (#21802) --- crates/ty_python_semantic/src/types.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/ty_python_semantic/src/types.rs b/crates/ty_python_semantic/src/types.rs index e297ebf821..8beb1cf68a 100644 --- a/crates/ty_python_semantic/src/types.rs +++ b/crates/ty_python_semantic/src/types.rs @@ -10154,6 +10154,7 @@ impl<'db> TypeVarBoundOrConstraints<'db> { .zip(prev_elements.iter()) .map(|(ty, prev_ty)| ty.cycle_normalized(db, *prev_ty, cycle)) .collect::>(), + constraints.recursively_defined(db), )) } // The choice of whether it's an upper bound or constraints is purely syntactic and @@ -10181,6 +10182,7 @@ impl<'db> TypeVarBoundOrConstraints<'db> { .iter() .map(|ty| ty.recursive_type_normalized(db, cycle)) .collect::>(), + constraints.recursively_defined(db), )) } } From 1951f1bbb821c991657d48381880742bd73758f2 Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama <45118249+mtshiba@users.noreply.github.com> Date: Fri, 5 Dec 2025 11:48:38 +0900 Subject: [PATCH 20/65] [ty] fix panic when instantiating a type variable with invalid constraints (#21663) --- .../corpus/invalid_typevar_constraints.py | 6 + crates/ty_python_semantic/src/types.rs | 206 +++++++++++++----- .../src/types/bound_super.rs | 4 +- .../ty_python_semantic/src/types/builder.rs | 2 +- .../src/types/infer/builder.rs | 16 +- crates/ty_python_semantic/src/types/narrow.rs | 2 +- .../src/types/subclass_of.rs | 26 +-- crates/ty_python_semantic/src/types/tuple.rs | 4 + 8 files changed, 185 insertions(+), 81 deletions(-) create mode 100644 crates/ty_python_semantic/resources/corpus/invalid_typevar_constraints.py diff --git a/crates/ty_python_semantic/resources/corpus/invalid_typevar_constraints.py b/crates/ty_python_semantic/resources/corpus/invalid_typevar_constraints.py new file mode 100644 index 0000000000..14a79363e6 --- /dev/null +++ b/crates/ty_python_semantic/resources/corpus/invalid_typevar_constraints.py @@ -0,0 +1,6 @@ +class C[T: (A, B)]: + def f(foo: T): + try: + pass + except foo: + pass diff --git a/crates/ty_python_semantic/src/types.rs b/crates/ty_python_semantic/src/types.rs index 8beb1cf68a..61cc160769 100644 --- a/crates/ty_python_semantic/src/types.rs +++ b/crates/ty_python_semantic/src/types.rs @@ -68,7 +68,7 @@ pub(crate) use crate::types::narrow::infer_narrowing_constraint; use crate::types::newtype::NewType; pub(crate) use crate::types::signatures::{Parameter, Parameters}; use crate::types::signatures::{ParameterForm, walk_signature}; -use crate::types::tuple::{TupleSpec, TupleSpecBuilder}; +use crate::types::tuple::{Tuple, TupleSpec, TupleSpecBuilder}; pub(crate) use crate::types::typed_dict::{TypedDictParams, TypedDictType, walk_typed_dict_type}; pub use crate::types::variance::TypeVarVariance; use crate::types::variance::VarianceInferable; @@ -5401,9 +5401,9 @@ impl<'db> Type<'db> { Some(TypeVarBoundOrConstraints::UpperBound(bound)) => { bound.try_bool_impl(db, allow_short_circuit, visitor)? } - Some(TypeVarBoundOrConstraints::Constraints(constraints)) => { - try_union(constraints)? - } + Some(TypeVarBoundOrConstraints::Constraints(constraints)) => constraints + .as_type(db) + .try_bool_impl(db, allow_short_circuit, visitor)?, } } @@ -6453,7 +6453,7 @@ impl<'db> Type<'db> { TypeVarBoundOrConstraints::UpperBound(bound) => { non_async_special_case(db, bound) } - TypeVarBoundOrConstraints::Constraints(union) => non_async_special_case(db, Type::Union(union)), + TypeVarBoundOrConstraints::Constraints(constraints) => non_async_special_case(db, constraints.as_type(db)), }, Type::Union(union) => { let elements = union.elements(db); @@ -9594,7 +9594,7 @@ impl<'db> TypeVarInstance<'db> { TypeVarBoundOrConstraints::UpperBound(upper_bound.to_instance(db)?) } TypeVarBoundOrConstraints::Constraints(constraints) => { - TypeVarBoundOrConstraints::Constraints(constraints.to_instance(db)?.as_union()?) + TypeVarBoundOrConstraints::Constraints(constraints.to_instance(db)?) } }; let identity = TypeVarIdentity::new( @@ -9645,22 +9645,30 @@ impl<'db> TypeVarInstance<'db> { fn lazy_constraints(self, db: &'db dyn Db) -> Option> { let definition = self.definition(db)?; let module = parsed_module(db, definition.file(db)).load(db); - let ty = match definition.kind(db) { + let constraints = match definition.kind(db) { // PEP 695 typevar DefinitionKind::TypeVar(typevar) => { let typevar_node = typevar.node(&module); - definition_expression_type(db, definition, typevar_node.bound.as_ref()?) - .as_union()? + let bound = + definition_expression_type(db, definition, typevar_node.bound.as_ref()?); + let constraints = if let Some(tuple) = bound + .as_nominal_instance() + .and_then(|instance| instance.tuple_spec(db)) + { + if let Tuple::Fixed(tuple) = tuple.into_owned() { + tuple.owned_elements() + } else { + vec![Type::unknown()].into_boxed_slice() + } + } else { + vec![Type::unknown()].into_boxed_slice() + }; + TypeVarConstraints::new(db, constraints) } // legacy typevar DefinitionKind::Assignment(assignment) => { let call_expr = assignment.value(&module).as_call_expr()?; - // We don't use `UnionType::from_elements` or `UnionBuilder` here, - // because we don't want to simplify the list of constraints as we would with - // an actual union type. - // TODO: We probably shouldn't use `UnionType` to store these at all? TypeVar - // constraints are not a union. - UnionType::new( + TypeVarConstraints::new( db, call_expr .arguments @@ -9669,12 +9677,11 @@ impl<'db> TypeVarInstance<'db> { .skip(1) .map(|arg| definition_expression_type(db, definition, arg)) .collect::>(), - RecursivelyDefined::No, ) } _ => return None, }; - Some(TypeVarBoundOrConstraints::Constraints(ty)) + Some(TypeVarBoundOrConstraints::Constraints(constraints)) } #[salsa::tracked(cycle_fn=lazy_default_cycle_recover, cycle_initial=lazy_default_cycle_initial, heap_size=ruff_memory_usage::heap_size)] @@ -10086,10 +10093,133 @@ impl<'db> From> for TypeVarBoundOrConstraintsEval } } +/// Type variable constraints (e.g. `T: (int, str)`). +/// This is structurally identical to [`UnionType`], except that it does not perform simplification and preserves the element types. +#[salsa::interned(debug, heap_size=ruff_memory_usage::heap_size)] +pub struct TypeVarConstraints<'db> { + #[returns(ref)] + elements: Box<[Type<'db>]>, +} + +impl get_size2::GetSize for TypeVarConstraints<'_> {} + +fn walk_type_var_constraints<'db, V: visitor::TypeVisitor<'db> + ?Sized>( + db: &'db dyn Db, + constraints: TypeVarConstraints<'db>, + visitor: &V, +) { + for ty in constraints.elements(db) { + visitor.visit_type(db, *ty); + } +} + +impl<'db> TypeVarConstraints<'db> { + fn as_type(self, db: &'db dyn Db) -> Type<'db> { + let mut builder = UnionBuilder::new(db); + for ty in self.elements(db) { + builder = builder.add(*ty); + } + builder.build() + } + + fn to_instance(self, db: &'db dyn Db) -> Option> { + let mut instance_elements = Vec::new(); + for ty in self.elements(db) { + instance_elements.push(ty.to_instance(db)?); + } + Some(TypeVarConstraints::new( + db, + instance_elements.into_boxed_slice(), + )) + } + + fn map(self, db: &'db dyn Db, transform_fn: impl FnMut(&Type<'db>) -> Type<'db>) -> Self { + let mapped = self + .elements(db) + .iter() + .map(transform_fn) + .collect::>(); + TypeVarConstraints::new(db, mapped) + } + + pub(crate) fn map_with_boundness_and_qualifiers( + self, + db: &'db dyn Db, + mut transform_fn: impl FnMut(&Type<'db>) -> PlaceAndQualifiers<'db>, + ) -> PlaceAndQualifiers<'db> { + let mut builder = UnionBuilder::new(db); + let mut qualifiers = TypeQualifiers::empty(); + + let mut all_unbound = true; + let mut possibly_unbound = false; + let mut origin = TypeOrigin::Declared; + for ty in self.elements(db) { + let PlaceAndQualifiers { + place: ty_member, + qualifiers: new_qualifiers, + } = transform_fn(ty); + qualifiers |= new_qualifiers; + match ty_member { + Place::Undefined => { + possibly_unbound = true; + } + Place::Defined(ty_member, member_origin, member_boundness) => { + origin = origin.merge(member_origin); + if member_boundness == Definedness::PossiblyUndefined { + possibly_unbound = true; + } + + all_unbound = false; + builder = builder.add(ty_member); + } + } + } + PlaceAndQualifiers { + place: if all_unbound { + Place::Undefined + } else { + Place::Defined( + builder.build(), + origin, + if possibly_unbound { + Definedness::PossiblyUndefined + } else { + Definedness::AlwaysDefined + }, + ) + }, + qualifiers, + } + } + + fn normalized_impl(self, db: &'db dyn Db, visitor: &NormalizedVisitor<'db>) -> Self { + let normalized = self + .elements(db) + .iter() + .map(|ty| ty.normalized_impl(db, visitor)) + .collect::>(); + TypeVarConstraints::new(db, normalized) + } + + fn materialize_impl( + self, + db: &'db dyn Db, + materialization_kind: MaterializationKind, + visitor: &ApplyTypeMappingVisitor<'db>, + ) -> Self { + let materialized = self + .elements(db) + .iter() + .map(|ty| ty.materialize(db, materialization_kind, visitor)) + .collect::>(); + TypeVarConstraints::new(db, materialized) + } +} + #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, salsa::Update, get_size2::GetSize)] pub enum TypeVarBoundOrConstraints<'db> { UpperBound(Type<'db>), - Constraints(UnionType<'db>), + Constraints(TypeVarConstraints<'db>), } fn walk_type_var_bounds<'db, V: visitor::TypeVisitor<'db> + ?Sized>( @@ -10100,7 +10230,7 @@ fn walk_type_var_bounds<'db, V: visitor::TypeVisitor<'db> + ?Sized>( match bounds { TypeVarBoundOrConstraints::UpperBound(bound) => visitor.visit_type(db, bound), TypeVarBoundOrConstraints::Constraints(constraints) => { - visitor.visit_union_type(db, constraints); + walk_type_var_constraints(db, constraints, visitor); } } } @@ -10112,18 +10242,7 @@ impl<'db> TypeVarBoundOrConstraints<'db> { TypeVarBoundOrConstraints::UpperBound(bound.normalized_impl(db, visitor)) } TypeVarBoundOrConstraints::Constraints(constraints) => { - // Constraints are a non-normalized union by design (it's not really a union at - // all, we are just using a union to store the types). Normalize the types but not - // the containing union. - TypeVarBoundOrConstraints::Constraints(UnionType::new( - db, - constraints - .elements(db) - .iter() - .map(|ty| ty.normalized_impl(db, visitor)) - .collect::>(), - constraints.recursively_defined(db), - )) + TypeVarBoundOrConstraints::Constraints(constraints.normalized_impl(db, visitor)) } } } @@ -10147,14 +10266,13 @@ impl<'db> TypeVarBoundOrConstraints<'db> { // Normalize each constraint with its corresponding previous constraint let current_elements = constraints.elements(db); let prev_elements = prev_constraints.elements(db); - TypeVarBoundOrConstraints::Constraints(UnionType::new( + TypeVarBoundOrConstraints::Constraints(TypeVarConstraints::new( db, current_elements .iter() .zip(prev_elements.iter()) .map(|(ty, prev_ty)| ty.cycle_normalized(db, *prev_ty, cycle)) .collect::>(), - constraints.recursively_defined(db), )) } // The choice of whether it's an upper bound or constraints is purely syntactic and @@ -10175,15 +10293,9 @@ impl<'db> TypeVarBoundOrConstraints<'db> { TypeVarBoundOrConstraints::UpperBound(bound.recursive_type_normalized(db, cycle)) } TypeVarBoundOrConstraints::Constraints(constraints) => { - TypeVarBoundOrConstraints::Constraints(UnionType::new( - db, - constraints - .elements(db) - .iter() - .map(|ty| ty.recursive_type_normalized(db, cycle)) - .collect::>(), - constraints.recursively_defined(db), - )) + TypeVarBoundOrConstraints::Constraints( + constraints.map(db, |ty| ty.recursive_type_normalized(db, cycle)), + ) } } } @@ -10199,14 +10311,10 @@ impl<'db> TypeVarBoundOrConstraints<'db> { bound.materialize(db, materialization_kind, visitor), ), TypeVarBoundOrConstraints::Constraints(constraints) => { - TypeVarBoundOrConstraints::Constraints(UnionType::new( + TypeVarBoundOrConstraints::Constraints(constraints.materialize_impl( db, - constraints - .elements(db) - .iter() - .map(|ty| ty.materialize(db, materialization_kind, visitor)) - .collect::>(), - RecursivelyDefined::No, + materialization_kind, + visitor, )) } } diff --git a/crates/ty_python_semantic/src/types/bound_super.rs b/crates/ty_python_semantic/src/types/bound_super.rs index c67aacb323..442ae0d0b9 100644 --- a/crates/ty_python_semantic/src/types/bound_super.rs +++ b/crates/ty_python_semantic/src/types/bound_super.rs @@ -157,7 +157,7 @@ impl<'db> BoundSuperError<'db> { .map(|c| c.display(db)) .join(", ") )); - Type::Union(constraints) + constraints.as_type(db) } None => { diagnostic.info(format_args!( @@ -374,7 +374,7 @@ impl<'db> BoundSuperType<'db> { delegate_with_error_mapped(bound, Some(type_var)) } Some(TypeVarBoundOrConstraints::Constraints(constraints)) => { - delegate_with_error_mapped(Type::Union(constraints), Some(type_var)) + delegate_with_error_mapped(constraints.as_type(db), Some(type_var)) } None => delegate_with_error_mapped(Type::object(), Some(type_var)), }; diff --git a/crates/ty_python_semantic/src/types/builder.rs b/crates/ty_python_semantic/src/types/builder.rs index 64ca36010a..36977078e9 100644 --- a/crates/ty_python_semantic/src/types/builder.rs +++ b/crates/ty_python_semantic/src/types/builder.rs @@ -1255,7 +1255,7 @@ impl<'db> InnerIntersectionBuilder<'db> { speculative = speculative.add_positive(bound); } Some(TypeVarBoundOrConstraints::Constraints(constraints)) => { - speculative = speculative.add_positive(Type::Union(constraints)); + speculative = speculative.add_positive(constraints.as_type(db)); } // TypeVars without a bound or constraint implicitly have `object` as their // upper bound, and it is always a no-op to add `object` to an intersection. diff --git a/crates/ty_python_semantic/src/types/infer/builder.rs b/crates/ty_python_semantic/src/types/infer/builder.rs index d308553801..b33883d234 100644 --- a/crates/ty_python_semantic/src/types/infer/builder.rs +++ b/crates/ty_python_semantic/src/types/infer/builder.rs @@ -50,7 +50,6 @@ use crate::semantic_index::{ ApplicableConstraints, EnclosingSnapshotResult, SemanticIndex, place_table, }; use crate::subscript::{PyIndex, PySlice}; -use crate::types::builder::RecursivelyDefined; use crate::types::call::bind::{CallableDescription, MatchingOverloadIndex}; use crate::types::call::{Binding, Bindings, CallArguments, CallError, CallErrorKind}; use crate::types::class::{CodeGeneratorKind, FieldKind, MetaclassErrorKind, MethodDecorator}; @@ -3274,19 +3273,14 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { std::mem::replace(&mut self.deferred_state, DeferredExpressionState::Deferred); match bound.as_deref() { Some(expr @ ast::Expr::Tuple(ast::ExprTuple { elts, .. })) => { - // We don't use UnionType::from_elements or UnionBuilder here, because we don't - // want to simplify the list of constraints like we do with the elements of an - // actual union type. - // TODO: Consider using a new `OneOfType` connective here instead, since that - // more accurately represents the actual semantics of typevar constraints. - let ty = Type::Union(UnionType::new( + // Here, we interpret `bound` as a heterogeneous tuple and convert it to `TypeVarConstraints` in `TypeVarInstance::lazy_constraints`. + let tuple_ty = Type::heterogeneous_tuple( self.db(), elts.iter() .map(|expr| self.infer_type_expression(expr)) .collect::>(), - RecursivelyDefined::No, - )); - self.store_expression_type(expr, ty); + ); + self.store_expression_type(expr, tuple_ty); } Some(expr) => { self.infer_type_expression(expr); @@ -11521,7 +11515,7 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { if provided_type .when_assignable_to( db, - Type::Union(constraints), + constraints.as_type(db), InferableTypeVars::None, ) .is_never_satisfied(db) diff --git a/crates/ty_python_semantic/src/types/narrow.rs b/crates/ty_python_semantic/src/types/narrow.rs index 984f214414..4aa8b85b6f 100644 --- a/crates/ty_python_semantic/src/types/narrow.rs +++ b/crates/ty_python_semantic/src/types/narrow.rs @@ -198,7 +198,7 @@ impl ClassInfoConstraintFunction { self.generate_constraint(db, bound) } TypeVarBoundOrConstraints::Constraints(constraints) => { - self.generate_constraint(db, Type::Union(constraints)) + self.generate_constraint(db, constraints.as_type(db)) } } } diff --git a/crates/ty_python_semantic/src/types/subclass_of.rs b/crates/ty_python_semantic/src/types/subclass_of.rs index 4d15700163..898a82e086 100644 --- a/crates/ty_python_semantic/src/types/subclass_of.rs +++ b/crates/ty_python_semantic/src/types/subclass_of.rs @@ -8,7 +8,7 @@ use crate::types::{ ApplyTypeMappingVisitor, BoundTypeVarInstance, ClassType, DynamicType, FindLegacyTypeVarsVisitor, HasRelationToVisitor, IsDisjointVisitor, KnownClass, MaterializationKind, MemberLookupPolicy, NormalizedVisitor, SpecialFormType, Type, TypeContext, - TypeMapping, TypeRelation, TypeVarBoundOrConstraints, UnionType, todo_type, + TypeMapping, TypeRelation, TypeVarBoundOrConstraints, todo_type, }; use crate::{Db, FxOrderSet}; @@ -190,7 +190,9 @@ impl<'db> SubclassOfType<'db> { match bound_typevar.typevar(db).bound_or_constraints(db) { None => unreachable!(), Some(TypeVarBoundOrConstraints::UpperBound(bound)) => bound, - Some(TypeVarBoundOrConstraints::Constraints(union)) => Type::Union(union), + Some(TypeVarBoundOrConstraints::Constraints(constraints)) => { + constraints.as_type(db) + } } } }; @@ -351,7 +353,7 @@ impl<'db> SubclassOfInner<'db> { .and_then(|subclass_of| subclass_of.into_class(db)) } Some(TypeVarBoundOrConstraints::Constraints(constraints)) => { - match constraints.elements(db) { + match &**constraints.elements(db) { [bound] => Self::try_from_instance(db, *bound) .and_then(|subclass_of| subclass_of.into_class(db)), _ => Some(ClassType::object(db)), @@ -416,20 +418,10 @@ impl<'db> SubclassOfInner<'db> { ) } Some(TypeVarBoundOrConstraints::Constraints(constraints)) => { - let constraints_types = constraints - .elements(db) - .iter() - .map(|constraint| { - SubclassOfType::try_from_instance(db, *constraint) - .unwrap_or(SubclassOfType::subclass_of_unknown()) - }) - .collect::>(); - - TypeVarBoundOrConstraints::Constraints(UnionType::new( - db, - constraints_types, - constraints.recursively_defined(db), - )) + TypeVarBoundOrConstraints::Constraints(constraints.map(db, |constraint| { + SubclassOfType::try_from_instance(db, *constraint) + .unwrap_or(SubclassOfType::subclass_of_unknown()) + })) } }) }); diff --git a/crates/ty_python_semantic/src/types/tuple.rs b/crates/ty_python_semantic/src/types/tuple.rs index 6405ae3ae7..787bbe0688 100644 --- a/crates/ty_python_semantic/src/types/tuple.rs +++ b/crates/ty_python_semantic/src/types/tuple.rs @@ -349,6 +349,10 @@ impl FixedLengthTuple { &self.0 } + pub(crate) fn owned_elements(self) -> Box<[T]> { + self.0 + } + pub(crate) fn elements(&self) -> impl DoubleEndedIterator + ExactSizeIterator + '_ { self.0.iter() } From 6f03afe318f3054aed2cb4667433c256de2e581d Mon Sep 17 00:00:00 2001 From: Dhruv Manilawala Date: Fri, 5 Dec 2025 12:51:40 +0530 Subject: [PATCH 21/65] Remove unused whitespaces in test cases (#21806) These aren't used in the tests themselves. There are more instances of them in other files but those require code changes so I've left them as it is. --- crates/ty_ide/src/doc_highlights.rs | 2 +- crates/ty_ide/src/docstring.rs | 20 ++++++++++---------- crates/ty_ide/src/goto_declaration.rs | 22 +++++++++++----------- crates/ty_ide/src/goto_type_definition.rs | 16 ++++++++-------- crates/ty_ide/src/hover.rs | 16 ++++++++-------- crates/ty_ide/src/inlay_hints.rs | 2 +- 6 files changed, 39 insertions(+), 39 deletions(-) diff --git a/crates/ty_ide/src/doc_highlights.rs b/crates/ty_ide/src/doc_highlights.rs index 92b7620943..c7ad2a6c17 100644 --- a/crates/ty_ide/src/doc_highlights.rs +++ b/crates/ty_ide/src/doc_highlights.rs @@ -230,7 +230,7 @@ calc = Calculator() " def test(): # Cursor on a position with no symbol - + ", ); diff --git a/crates/ty_ide/src/docstring.rs b/crates/ty_ide/src/docstring.rs index 40c94ec5cb..0755fead73 100644 --- a/crates/ty_ide/src/docstring.rs +++ b/crates/ty_ide/src/docstring.rs @@ -824,12 +824,12 @@ mod tests { Check out this great example code:: x_y = "hello" - + if len(x_y) > 4: print(x_y) else: print("too short :(") - + print("done") You love to see it. @@ -862,12 +862,12 @@ mod tests { Check out this great example code :: x_y = "hello" - + if len(x_y) > 4: print(x_y) else: print("too short :(") - + print("done") You love to see it. @@ -901,12 +901,12 @@ mod tests { :: x_y = "hello" - + if len(x_y) > 4: print(x_y) else: print("too short :(") - + print("done") You love to see it. @@ -939,12 +939,12 @@ mod tests { let docstring = r#" Check out this great example code:: x_y = "hello" - + if len(x_y) > 4: print(x_y) else: print("too short :(") - + print("done") You love to see it. "#; @@ -975,12 +975,12 @@ mod tests { Check out this great example code:: x_y = "hello" - + if len(x_y) > 4: print(x_y) else: print("too short :(") - + print("done")"#; let docstring = Docstring::new(docstring.to_owned()); diff --git a/crates/ty_ide/src/goto_declaration.rs b/crates/ty_ide/src/goto_declaration.rs index a2f147b2d3..3e455b7533 100644 --- a/crates/ty_ide/src/goto_declaration.rs +++ b/crates/ty_ide/src/goto_declaration.rs @@ -273,7 +273,7 @@ mod tests { r#" class A: x = 1 - + def method(self): def inner(): return x # Should NOT find class variable x @@ -1255,12 +1255,12 @@ x: int = 42 r#" def outer(): x = "outer_value" - + def inner(): nonlocal x x = "modified" return x # Should find the nonlocal x declaration in outer scope - + return inner "#, ); @@ -1295,12 +1295,12 @@ def outer(): r#" def outer(): xy = "outer_value" - + def inner(): nonlocal xy xy = "modified" return x # Should find the nonlocal x declaration in outer scope - + return inner "#, ); @@ -1636,7 +1636,7 @@ def function(): def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): @@ -1675,7 +1675,7 @@ def function(): def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): @@ -1713,7 +1713,7 @@ def function(): def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): @@ -1751,7 +1751,7 @@ def function(): def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): @@ -1919,7 +1919,7 @@ def function(): class C: def __init__(self): self._value = 0 - + @property def value(self): return self._value @@ -2029,7 +2029,7 @@ def function(): r#" class MyClass: ClassType = int - + def generic_method[T](self, value: ClassType) -> T: return value "#, diff --git a/crates/ty_ide/src/goto_type_definition.rs b/crates/ty_ide/src/goto_type_definition.rs index fc5aa9aded..53cc98413d 100644 --- a/crates/ty_ide/src/goto_type_definition.rs +++ b/crates/ty_ide/src/goto_type_definition.rs @@ -1111,7 +1111,7 @@ mod tests { def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): @@ -1131,7 +1131,7 @@ mod tests { def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): @@ -1151,7 +1151,7 @@ mod tests { def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): @@ -1189,7 +1189,7 @@ mod tests { def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): @@ -1398,12 +1398,12 @@ f(**kwargs) r#" def outer(): x = "outer_value" - + def inner(): nonlocal x x = "modified" return x # Should find the nonlocal x declaration in outer scope - + return inner "#, ); @@ -1438,12 +1438,12 @@ def outer(): r#" def outer(): xy = "outer_value" - + def inner(): nonlocal xy xy = "modified" return x # Should find the nonlocal x declaration in outer scope - + return inner "#, ); diff --git a/crates/ty_ide/src/hover.rs b/crates/ty_ide/src/hover.rs index affa6054e2..63b67bc864 100644 --- a/crates/ty_ide/src/hover.rs +++ b/crates/ty_ide/src/hover.rs @@ -1708,12 +1708,12 @@ def ab(a: int, *, c: int): r#" def outer(): x = "outer_value" - + def inner(): nonlocal x x = "modified" return x # Should find the nonlocal x declaration in outer scope - + return inner "#, ); @@ -1747,12 +1747,12 @@ def outer(): r#" def outer(): xy = "outer_value" - + def inner(): nonlocal xy xy = "modified" return x # Should find the nonlocal x declaration in outer scope - + return inner "#, ); @@ -1960,7 +1960,7 @@ def function(): def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): @@ -1980,7 +1980,7 @@ def function(): def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): @@ -2018,7 +2018,7 @@ def function(): def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): @@ -2057,7 +2057,7 @@ def function(): def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): diff --git a/crates/ty_ide/src/inlay_hints.rs b/crates/ty_ide/src/inlay_hints.rs index c6ddf8d846..1d26d3cdd2 100644 --- a/crates/ty_ide/src/inlay_hints.rs +++ b/crates/ty_ide/src/inlay_hints.rs @@ -2012,7 +2012,7 @@ mod tests { def __init__(self, pos, btn): self.position: int = pos self.button: str = btn - + def my_func(event: Click): match event: case Click(x, button=ab): From 5df8a959f54b2214af77280502b4129fb97640bb Mon Sep 17 00:00:00 2001 From: mahiro <70263039+mahiro72@users.noreply.github.com> Date: Fri, 5 Dec 2025 16:53:08 +0900 Subject: [PATCH 22/65] Update mkdocs-material to 9.7.0 (Insiders now free) (#21797) --- .github/renovate.json5 | 8 -------- .github/workflows/ci.yaml | 17 +---------------- .github/workflows/publish-docs.yml | 20 +------------------- CONTRIBUTING.md | 13 +------------ docs/requirements-insiders.txt | 8 -------- docs/requirements.txt | 2 +- mkdocs.public.yml | 6 ------ mkdocs.insiders.yml => mkdocs.yml | 0 8 files changed, 4 insertions(+), 70 deletions(-) delete mode 100644 docs/requirements-insiders.txt delete mode 100644 mkdocs.public.yml rename mkdocs.insiders.yml => mkdocs.yml (100%) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 449ea573f0..c6a8b29a76 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -75,14 +75,6 @@ matchManagers: ["cargo"], enabled: false, }, - { - // `mkdocs-material` requires a manual update to keep the version in sync - // with `mkdocs-material-insider`. - // See: https://squidfunk.github.io/mkdocs-material/insiders/upgrade/ - matchManagers: ["pip_requirements"], - matchPackageNames: ["mkdocs-material"], - enabled: false, - }, { groupName: "pre-commit dependencies", matchManagers: ["pre-commit"], diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 64e5e2163c..83b6b83bc3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -779,8 +779,6 @@ jobs: name: "mkdocs" runs-on: ubuntu-latest timeout-minutes: 10 - env: - MKDOCS_INSIDERS_SSH_KEY_EXISTS: ${{ secrets.MKDOCS_INSIDERS_SSH_KEY != '' }} steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: @@ -788,11 +786,6 @@ jobs: - uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2 with: save-if: ${{ github.ref == 'refs/heads/main' }} - - name: "Add SSH key" - if: ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS == 'true' }} - uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1 - with: - ssh-private-key: ${{ secrets.MKDOCS_INSIDERS_SSH_KEY }} - name: "Install Rust toolchain" run: rustup show - name: Install uv @@ -800,11 +793,7 @@ jobs: with: python-version: 3.13 activate-environment: true - - name: "Install Insiders dependencies" - if: ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS == 'true' }} - run: uv pip install -r docs/requirements-insiders.txt - name: "Install dependencies" - if: ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS != 'true' }} run: uv pip install -r docs/requirements.txt - name: "Update README File" run: python scripts/transform_readme.py --target mkdocs @@ -812,12 +801,8 @@ jobs: run: python scripts/generate_mkdocs.py - name: "Check docs formatting" run: python scripts/check_docs_formatted.py - - name: "Build Insiders docs" - if: ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS == 'true' }} - run: mkdocs build --strict -f mkdocs.insiders.yml - name: "Build docs" - if: ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS != 'true' }} - run: mkdocs build --strict -f mkdocs.public.yml + run: mkdocs build --strict -f mkdocs.yml check-formatter-instability-and-black-similarity: name: "formatter instabilities and black similarity" diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 000b866c48..bd72c6a766 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -20,8 +20,6 @@ on: jobs: mkdocs: runs-on: ubuntu-latest - env: - MKDOCS_INSIDERS_SSH_KEY_EXISTS: ${{ secrets.MKDOCS_INSIDERS_SSH_KEY != '' }} steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: @@ -59,23 +57,12 @@ jobs: echo "branch_name=update-docs-$branch_display_name-$timestamp" >> "$GITHUB_ENV" echo "timestamp=$timestamp" >> "$GITHUB_ENV" - - name: "Add SSH key" - if: ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS == 'true' }} - uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1 - with: - ssh-private-key: ${{ secrets.MKDOCS_INSIDERS_SSH_KEY }} - - name: "Install Rust toolchain" run: rustup show - uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2 - - name: "Install Insiders dependencies" - if: ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS == 'true' }} - run: pip install -r docs/requirements-insiders.txt - - name: "Install dependencies" - if: ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS != 'true' }} run: pip install -r docs/requirements.txt - name: "Copy README File" @@ -83,13 +70,8 @@ jobs: python scripts/transform_readme.py --target mkdocs python scripts/generate_mkdocs.py - - name: "Build Insiders docs" - if: ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS == 'true' }} - run: mkdocs build --strict -f mkdocs.insiders.yml - - name: "Build docs" - if: ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS != 'true' }} - run: mkdocs build --strict -f mkdocs.public.yml + run: mkdocs build --strict -f mkdocs.yml - name: "Clone docs repo" run: git clone https://${{ secrets.ASTRAL_DOCS_PAT }}@github.com/astral-sh/docs.git astral-docs diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bb6758451f..1851d45199 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -331,13 +331,6 @@ you addressed them. ## MkDocs -> [!NOTE] -> -> The documentation uses Material for MkDocs Insiders, which is closed-source software. -> This means only members of the Astral organization can preview the documentation exactly as it -> will appear in production. -> Outside contributors can still preview the documentation, but there will be some differences. Consult [the Material for MkDocs documentation](https://squidfunk.github.io/mkdocs-material/insiders/benefits/#features) for which features are exclusively available in the insiders version. - To preview any changes to the documentation locally: 1. Install the [Rust toolchain](https://www.rust-lang.org/tools/install). @@ -351,11 +344,7 @@ To preview any changes to the documentation locally: 1. Run the development server with: ```shell - # For contributors. - uvx --with-requirements docs/requirements.txt -- mkdocs serve -f mkdocs.public.yml - - # For members of the Astral org, which has access to MkDocs Insiders via sponsorship. - uvx --with-requirements docs/requirements-insiders.txt -- mkdocs serve -f mkdocs.insiders.yml + uvx --with-requirements docs/requirements.txt -- mkdocs serve -f mkdocs.yml ``` The documentation should then be available locally at diff --git a/docs/requirements-insiders.txt b/docs/requirements-insiders.txt deleted file mode 100644 index 9726b8ab5a..0000000000 --- a/docs/requirements-insiders.txt +++ /dev/null @@ -1,8 +0,0 @@ -PyYAML==6.0.3 -ruff==0.14.7 -mkdocs==1.6.1 -mkdocs-material @ git+ssh://git@github.com/astral-sh/mkdocs-material-insiders.git@39da7a5e761410349e9a1b8abf593b0cdd5453ff -mkdocs-redirects==1.2.2 -mdformat==0.7.22 -mdformat-mkdocs==4.4.2 -mkdocs-github-admonitions-plugin @ git+https://github.com/PGijsbers/admonitions.git#7343d2f4a92e4d1491094530ef3d0d02d93afbb7 diff --git a/docs/requirements.txt b/docs/requirements.txt index a9b415267f..c80ac6c61b 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,7 +1,7 @@ PyYAML==6.0.3 ruff==0.14.7 mkdocs==1.6.1 -mkdocs-material==9.5.38 +mkdocs-material==9.7.0 mkdocs-redirects==1.2.2 mdformat==0.7.22 mdformat-mkdocs==4.4.2 diff --git a/mkdocs.public.yml b/mkdocs.public.yml deleted file mode 100644 index b6d7ae6eca..0000000000 --- a/mkdocs.public.yml +++ /dev/null @@ -1,6 +0,0 @@ -INHERIT: mkdocs.generated.yml -# Omit the `typeset` plugin which is only available in the Insiders version. -plugins: - - search -watch: - - mkdocs.generated.yml diff --git a/mkdocs.insiders.yml b/mkdocs.yml similarity index 100% rename from mkdocs.insiders.yml rename to mkdocs.yml From 3deb7e1b90daac0d9f4dbff51b031fe22eecad20 Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Fri, 5 Dec 2025 11:56:28 +0100 Subject: [PATCH 23/65] [ty] Add some attribute/method renaming test cases (#21809) --- crates/ty_ide/src/rename.rs | 140 ++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/crates/ty_ide/src/rename.rs b/crates/ty_ide/src/rename.rs index 10ef9c197f..e2dcf5d93d 100644 --- a/crates/ty_ide/src/rename.rs +++ b/crates/ty_ide/src/rename.rs @@ -1426,4 +1426,144 @@ result = func(10, y=20) | "); } + + // TODO: This should rename all overloads + #[test] + fn rename_overloaded_function() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + from typing import overload, Any + + @overload + def test() -> None: ... + @overload + def test(a: str) -> str: ... + @overload + def test(a: int) -> int: ... + + def test(a: Any) -> Any: + return a + "#, + ) + .source( + "mypackage/subpkg/__init__.py", + r#" + from lib import test + + test("test") + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r" + info[rename]: Rename symbol (found 1 locations) + --> mypackage/__init__.py:5:5 + | + 4 | @overload + 5 | def test() -> None: ... + | ^^^^ + 6 | @overload + 7 | def test(a: str) -> str: ... + | + "); + } + + #[test] + fn rename_attribute() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + class Test: + attribute: str + + def __init__(self, value: str): + self.attribute = value + + class Child(Test): + def test(self): + return self.attribute + + + c = Child("test") + + print(c.attribute) + c.attribute = "new_value" + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r#" + info[rename]: Rename symbol (found 5 locations) + --> mypackage/__init__.py:3:5 + | + 2 | class Test: + 3 | attribute: str + | ^^^^^^^^^ + 4 | + 5 | def __init__(self, value: str): + 6 | self.attribute = value + | --------- + 7 | + 8 | class Child(Test): + 9 | def test(self): + 10 | return self.attribute + | --------- + | + ::: mypackage/__init__.py:15:9 + | + 13 | c = Child("test") + 14 | + 15 | print(c.attribute) + | --------- + 16 | c.attribute = "new_value" + | --------- + | + "#); + } + + // TODO: This should rename all attribute usages + // Note: Pylance only renames the assignment in `__init__`. + #[test] + fn rename_implicit_attribute() { + let test = CursorTest::builder() + .source( + "mypackage/__init__.py", + r#" + class Test: + def __init__(self, value: str): + self.attribute = value + + class Child(Test): + def __init__(self, value: str): + super().__init__(value) + self.attribute = value + "child" + + def test(self): + return self.attribute + + + c = Child("test") + + print(c.attribute) + c.attribute = "new_value" + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r" + info[rename]: Rename symbol (found 1 locations) + --> mypackage/__init__.py:4:14 + | + 2 | class Test: + 3 | def __init__(self, value: str): + 4 | self.attribute = value + | ^^^^^^^^^ + 5 | + 6 | class Child(Test): + | + "); + } } From 48f7f42784cc86763f630313746542e47f148f3a Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Fri, 5 Dec 2025 12:33:30 +0000 Subject: [PATCH 24/65] [ty] Minor improvements to `assert_type` diagnostics (#21811) --- .../mdtest/directives/assert_type.md | 3 ++- ...sert_type`_-_Basic_(c507788da2659ec9).snap | 24 ++++++++++++++++--- .../ty_python_semantic/src/types/function.rs | 23 +++++++++++------- 3 files changed, 37 insertions(+), 13 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/directives/assert_type.md b/crates/ty_python_semantic/resources/mdtest/directives/assert_type.md index 840e8ce4b1..7f99251017 100644 --- a/crates/ty_python_semantic/resources/mdtest/directives/assert_type.md +++ b/crates/ty_python_semantic/resources/mdtest/directives/assert_type.md @@ -7,10 +7,11 @@ ```py from typing_extensions import assert_type -def _(x: int): +def _(x: int, y: bool): assert_type(x, int) # fine assert_type(x, str) # error: [type-assertion-failure] assert_type(assert_type(x, int), int) + assert_type(y, int) # error: [type-assertion-failure] ``` ## Narrowing diff --git a/crates/ty_python_semantic/resources/mdtest/snapshots/assert_type.md_-_`assert_type`_-_Basic_(c507788da2659ec9).snap b/crates/ty_python_semantic/resources/mdtest/snapshots/assert_type.md_-_`assert_type`_-_Basic_(c507788da2659ec9).snap index 42b1ad283f..e9118a57cb 100644 --- a/crates/ty_python_semantic/resources/mdtest/snapshots/assert_type.md_-_`assert_type`_-_Basic_(c507788da2659ec9).snap +++ b/crates/ty_python_semantic/resources/mdtest/snapshots/assert_type.md_-_`assert_type`_-_Basic_(c507788da2659ec9).snap @@ -14,10 +14,11 @@ mdtest path: crates/ty_python_semantic/resources/mdtest/directives/assert_type.m ``` 1 | from typing_extensions import assert_type 2 | -3 | def _(x: int): +3 | def _(x: int, y: bool): 4 | assert_type(x, int) # fine 5 | assert_type(x, str) # error: [type-assertion-failure] 6 | assert_type(assert_type(x, int), int) +7 | assert_type(y, int) # error: [type-assertion-failure] ``` # Diagnostics @@ -26,15 +27,32 @@ mdtest path: crates/ty_python_semantic/resources/mdtest/directives/assert_type.m error[type-assertion-failure]: Argument does not have asserted type `str` --> src/mdtest_snippet.py:5:5 | -3 | def _(x: int): +3 | def _(x: int, y: bool): 4 | assert_type(x, int) # fine 5 | assert_type(x, str) # error: [type-assertion-failure] | ^^^^^^^^^^^^-^^^^^^ | | - | Inferred type of argument is `int` + | Inferred type is `int` 6 | assert_type(assert_type(x, int), int) +7 | assert_type(y, int) # error: [type-assertion-failure] | info: `str` and `int` are not equivalent types info: rule `type-assertion-failure` is enabled by default ``` + +``` +error[type-assertion-failure]: Argument does not have asserted type `int` + --> src/mdtest_snippet.py:7:5 + | +5 | assert_type(x, str) # error: [type-assertion-failure] +6 | assert_type(assert_type(x, int), int) +7 | assert_type(y, int) # error: [type-assertion-failure] + | ^^^^^^^^^^^^-^^^^^^ + | | + | Inferred type is `bool` + | +info: `bool` is a subtype of `int`, but they are not equivalent +info: rule `type-assertion-failure` is enabled by default + +``` diff --git a/crates/ty_python_semantic/src/types/function.rs b/crates/ty_python_semantic/src/types/function.rs index f8537c27a7..0fba3aecd8 100644 --- a/crates/ty_python_semantic/src/types/function.rs +++ b/crates/ty_python_semantic/src/types/function.rs @@ -1483,17 +1483,22 @@ impl KnownFunction { diagnostic.annotate( Annotation::secondary(context.span(&call_expression.arguments.args[0])) - .message(format_args!( - "Inferred type of argument is `{}`", - actual_ty.display(db), - )), + .message(format_args!("Inferred type is `{}`", actual_ty.display(db),)), ); - diagnostic.info(format_args!( - "`{asserted_type}` and `{inferred_type}` are not equivalent types", - asserted_type = asserted_ty.display(db), - inferred_type = actual_ty.display(db), - )); + if actual_ty.is_subtype_of(db, *asserted_ty) { + diagnostic.info(format_args!( + "`{inferred_type}` is a subtype of `{asserted_type}`, but they are not equivalent", + asserted_type = asserted_ty.display(db), + inferred_type = actual_ty.display(db), + )); + } else { + diagnostic.info(format_args!( + "`{asserted_type}` and `{inferred_type}` are not equivalent types", + asserted_type = asserted_ty.display(db), + inferred_type = actual_ty.display(db), + )); + } diagnostic.set_concise_message(format_args!( "Type `{}` does not match asserted type `{}`", From 71a7a03ad4f0b7d2de0413abd80c1965383c0225 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Fri, 5 Dec 2025 12:41:31 +0000 Subject: [PATCH 25/65] [ty] Add more tests for renamings (#21810) --- crates/ty_ide/src/rename.rs | 486 +++++++++++++++++++++++++++++++++++- 1 file changed, 477 insertions(+), 9 deletions(-) diff --git a/crates/ty_ide/src/rename.rs b/crates/ty_ide/src/rename.rs index e2dcf5d93d..8cb5910c60 100644 --- a/crates/ty_ide/src/rename.rs +++ b/crates/ty_ide/src/rename.rs @@ -1432,7 +1432,7 @@ result = func(10, y=20) fn rename_overloaded_function() { let test = CursorTest::builder() .source( - "mypackage/__init__.py", + "lib1.py", r#" from typing import overload, Any @@ -1448,9 +1448,9 @@ result = func(10, y=20) "#, ) .source( - "mypackage/subpkg/__init__.py", + "main.py", r#" - from lib import test + from lib2 import test test("test") "#, @@ -1459,7 +1459,7 @@ result = func(10, y=20) assert_snapshot!(test.rename("better_name"), @r" info[rename]: Rename symbol (found 1 locations) - --> mypackage/__init__.py:5:5 + --> lib1.py:5:5 | 4 | @overload 5 | def test() -> None: ... @@ -1470,11 +1470,479 @@ result = func(10, y=20) "); } + #[test] + fn rename_property() { + let test = CursorTest::builder() + .source( + "lib.py", + r#" + class Foo: + @property + def my_property(self) -> int: + return 42 + "#, + ) + .source( + "main.py", + r#" + from lib import Foo + + print(Foo().my_property) + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r" + info[rename]: Rename symbol (found 2 locations) + --> lib.py:4:9 + | + 2 | class Foo: + 3 | @property + 4 | def my_property(self) -> int: + | ^^^^^^^^^^^ + 5 | return 42 + | + ::: main.py:4:13 + | + 2 | from lib import Foo + 3 | + 4 | print(Foo().my_property) + | ----------- + | + "); + } + + // TODO: this should rename the name of the function decorated with + // `@my_property.setter` as well as the getter function name + #[test] + fn rename_property_with_setter() { + let test = CursorTest::builder() + .source( + "lib.py", + r#" + class Foo: + @property + def my_property(self) -> int: + return 42 + + @my_property.setter + def my_property(self, value: int) -> None: + pass + "#, + ) + .source( + "main.py", + r#" + from lib import Foo + + print(Foo().my_property) + Foo().my_property = 56 + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r" + info[rename]: Rename symbol (found 4 locations) + --> lib.py:4:9 + | + 2 | class Foo: + 3 | @property + 4 | def my_property(self) -> int: + | ^^^^^^^^^^^ + 5 | return 42 + 6 | + 7 | @my_property.setter + | ----------- + 8 | def my_property(self, value: int) -> None: + 9 | pass + | + ::: main.py:4:13 + | + 2 | from lib import Foo + 3 | + 4 | print(Foo().my_property) + | ----------- + 5 | Foo().my_property = 56 + | ----------- + | + "); + } + + // TODO: this should rename the name of the function decorated with + // `@my_property.deleter` as well as the getter function name + #[test] + fn rename_property_with_deleter() { + let test = CursorTest::builder() + .source( + "lib.py", + r#" + class Foo: + @property + def my_property(self) -> int: + return 42 + + @my_property.deleter + def my_property(self) -> None: + pass + "#, + ) + .source( + "main.py", + r#" + from lib import Foo + + print(Foo().my_property) + del Foo().my_property + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r" + info[rename]: Rename symbol (found 4 locations) + --> lib.py:4:9 + | + 2 | class Foo: + 3 | @property + 4 | def my_property(self) -> int: + | ^^^^^^^^^^^ + 5 | return 42 + 6 | + 7 | @my_property.deleter + | ----------- + 8 | def my_property(self) -> None: + 9 | pass + | + ::: main.py:4:13 + | + 2 | from lib import Foo + 3 | + 4 | print(Foo().my_property) + | ----------- + 5 | del Foo().my_property + | ----------- + | + "); + } + + // TODO: this should rename the name of the functions decorated with + // `@my_property.deleter` and `@my_property.deleter` as well as the + // getter function name + #[test] + fn rename_property_with_setter_and_deleter() { + let test = CursorTest::builder() + .source( + "lib.py", + r#" + class Foo: + @property + def my_property(self) -> int: + return 42 + + @my_property.setter + def my_property(self, value: int) -> None: + pass + + @my_property.deleter + def my_property(self) -> None: + pass + "#, + ) + .source( + "main.py", + r#" + from lib import Foo + + print(Foo().my_property) + Foo().my_property = 56 + del Foo().my_property + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r" + info[rename]: Rename symbol (found 6 locations) + --> lib.py:4:9 + | + 2 | class Foo: + 3 | @property + 4 | def my_property(self) -> int: + | ^^^^^^^^^^^ + 5 | return 42 + 6 | + 7 | @my_property.setter + | ----------- + 8 | def my_property(self, value: int) -> None: + 9 | pass + 10 | + 11 | @my_property.deleter + | ----------- + 12 | def my_property(self) -> None: + 13 | pass + | + ::: main.py:4:13 + | + 2 | from lib import Foo + 3 | + 4 | print(Foo().my_property) + | ----------- + 5 | Foo().my_property = 56 + | ----------- + 6 | del Foo().my_property + | ----------- + | + "); + } + + #[test] + fn rename_single_dispatch_function() { + let test = CursorTest::builder() + .source( + "foo.py", + r#" + from functools import singledispatch + + @singledispatch + def f(x: object): + raise NotImplementedError + + @f.register + def _(x: int) -> str: + return "int" + + @f.register + def _(x: str) -> int: + return int(x) + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r#" + info[rename]: Rename symbol (found 3 locations) + --> foo.py:5:5 + | + 4 | @singledispatch + 5 | def f(x: object): + | ^ + 6 | raise NotImplementedError + 7 | + 8 | @f.register + | - + 9 | def _(x: int) -> str: + 10 | return "int" + 11 | + 12 | @f.register + | - + 13 | def _(x: str) -> int: + 14 | return int(x) + | + "#); + } + + #[test] + fn rename_single_dispatch_function_stacked_register() { + let test = CursorTest::builder() + .source( + "foo.py", + r#" + from functools import singledispatch + + @singledispatch + def f(x): + raise NotImplementedError + + @f.register(int) + @f.register(float) + def _(x) -> float: + return "int" + + @f.register(str) + def _(x) -> int: + return int(x) + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r#" + info[rename]: Rename symbol (found 4 locations) + --> foo.py:5:5 + | + 4 | @singledispatch + 5 | def f(x): + | ^ + 6 | raise NotImplementedError + 7 | + 8 | @f.register(int) + | - + 9 | @f.register(float) + | - + 10 | def _(x) -> float: + 11 | return "int" + 12 | + 13 | @f.register(str) + | - + 14 | def _(x) -> int: + 15 | return int(x) + | + "#); + } + + #[test] + fn rename_single_dispatchmethod() { + let test = CursorTest::builder() + .source( + "foo.py", + r#" + from functools import singledispatchmethod + + class Foo: + @singledispatchmethod + def f(self, x: object): + raise NotImplementedError + + @f.register + def _(self, x: str) -> float: + return "int" + + @f.register + def _(self, x: str) -> int: + return int(x) + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r#" + info[rename]: Rename symbol (found 3 locations) + --> foo.py:6:9 + | + 4 | class Foo: + 5 | @singledispatchmethod + 6 | def f(self, x: object): + | ^ + 7 | raise NotImplementedError + 8 | + 9 | @f.register + | - + 10 | def _(self, x: str) -> float: + 11 | return "int" + 12 | + 13 | @f.register + | - + 14 | def _(self, x: str) -> int: + 15 | return int(x) + | + "#); + } + + #[test] + fn rename_single_dispatchmethod_staticmethod() { + let test = CursorTest::builder() + .source( + "foo.py", + r#" + from functools import singledispatchmethod + + class Foo: + @singledispatchmethod + @staticmethod + def f(self, x): + raise NotImplementedError + + @f.register(str) + @staticmethod + def _(x: int) -> str: + return "int" + + @f.register + @staticmethod + def _(x: str) -> int: + return int(x) + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r#" + info[rename]: Rename symbol (found 3 locations) + --> foo.py:7:9 + | + 5 | @singledispatchmethod + 6 | @staticmethod + 7 | def f(self, x): + | ^ + 8 | raise NotImplementedError + 9 | + 10 | @f.register(str) + | - + 11 | @staticmethod + 12 | def _(x: int) -> str: + 13 | return "int" + 14 | + 15 | @f.register + | - + 16 | @staticmethod + 17 | def _(x: str) -> int: + | + "#); + } + + #[test] + fn rename_single_dispatchmethod_classmethod() { + let test = CursorTest::builder() + .source( + "foo.py", + r#" + from functools import singledispatchmethod + + class Foo: + @singledispatchmethod + @classmethod + def f(cls, x): + raise NotImplementedError + + @f.register(str) + @classmethod + def _(cls, x) -> str: + return "int" + + @f.register(int) + @f.register(float) + @staticmethod + def _(cls, x) -> int: + return int(x) + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r#" + info[rename]: Rename symbol (found 4 locations) + --> foo.py:7:9 + | + 5 | @singledispatchmethod + 6 | @classmethod + 7 | def f(cls, x): + | ^ + 8 | raise NotImplementedError + 9 | + 10 | @f.register(str) + | - + 11 | @classmethod + 12 | def _(cls, x) -> str: + 13 | return "int" + 14 | + 15 | @f.register(int) + | - + 16 | @f.register(float) + | - + 17 | @staticmethod + 18 | def _(cls, x) -> int: + | + "#); + } + #[test] fn rename_attribute() { let test = CursorTest::builder() .source( - "mypackage/__init__.py", + "foo.py", r#" class Test: attribute: str @@ -1497,7 +1965,7 @@ result = func(10, y=20) assert_snapshot!(test.rename("better_name"), @r#" info[rename]: Rename symbol (found 5 locations) - --> mypackage/__init__.py:3:5 + --> foo.py:3:5 | 2 | class Test: 3 | attribute: str @@ -1512,7 +1980,7 @@ result = func(10, y=20) 10 | return self.attribute | --------- | - ::: mypackage/__init__.py:15:9 + ::: foo.py:15:9 | 13 | c = Child("test") 14 | @@ -1530,7 +1998,7 @@ result = func(10, y=20) fn rename_implicit_attribute() { let test = CursorTest::builder() .source( - "mypackage/__init__.py", + "main.py", r#" class Test: def __init__(self, value: str): @@ -1555,7 +2023,7 @@ result = func(10, y=20) assert_snapshot!(test.rename("better_name"), @r" info[rename]: Rename symbol (found 1 locations) - --> mypackage/__init__.py:4:14 + --> main.py:4:14 | 2 | class Test: 3 | def __init__(self, value: str): From e42cdf84957b178dc7e37aed0f2b1f4d5f0c272a Mon Sep 17 00:00:00 2001 From: Douglas Creager Date: Fri, 5 Dec 2025 08:57:21 -0500 Subject: [PATCH 26/65] [ty] Carry generic context through when converting class into `Callable` (#21798) When converting a class (whether specialized or not) into a `Callable` type, we should carry through any generic context that the constructor has. This includes both the generic context of the class itself (if it's generic) and of the constructor methods (if they are separately generic). To help test this, this also updates the `generic_context` extension function to work on `Callable` types and unions; and adds a new `into_callable` extension function that works just like `CallableTypeOf`, but on value forms instead of type forms. Pulled this out of #21551 for separate review. --- .../mdtest/generics/legacy/classes.md | 87 +++++++++++++++++ .../mdtest/generics/pep695/classes.md | 97 +++++++++++++++++++ .../resources/mdtest/liskov.md | 2 +- crates/ty_python_semantic/src/types.rs | 9 +- .../ty_python_semantic/src/types/call/bind.rs | 84 +++++++++------- crates/ty_python_semantic/src/types/class.rs | 94 ++++++++++++------ .../ty_python_semantic/src/types/function.rs | 4 + .../ty_python_semantic/src/types/generics.rs | 39 +++++++- .../src/types/signatures.rs | 7 +- .../ty_extensions/ty_extensions.pyi | 4 + 10 files changed, 350 insertions(+), 77 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/generics/legacy/classes.md b/crates/ty_python_semantic/resources/mdtest/generics/legacy/classes.md index 9e0696a5c2..bc6ccdb7c1 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/legacy/classes.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/legacy/classes.md @@ -301,6 +301,7 @@ consistent with each other. ```py from typing_extensions import Generic, TypeVar +from ty_extensions import generic_context, into_callable T = TypeVar("T") @@ -308,6 +309,11 @@ class C(Generic[T]): def __new__(cls, x: T) -> "C[T]": return object.__new__(cls) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C(1)) # revealed: C[int] # error: [invalid-assignment] "Object of type `C[int | str]` is not assignable to `C[int]`" @@ -318,12 +324,18 @@ wrong_innards: C[int] = C("five") ```py from typing_extensions import Generic, TypeVar +from ty_extensions import generic_context, into_callable T = TypeVar("T") class C(Generic[T]): def __init__(self, x: T) -> None: ... +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C(1)) # revealed: C[int] # error: [invalid-assignment] "Object of type `C[int | str]` is not assignable to `C[int]`" @@ -334,6 +346,7 @@ wrong_innards: C[int] = C("five") ```py from typing_extensions import Generic, TypeVar +from ty_extensions import generic_context, into_callable T = TypeVar("T") @@ -343,6 +356,11 @@ class C(Generic[T]): def __init__(self, x: T) -> None: ... +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C(1)) # revealed: C[int] # error: [invalid-assignment] "Object of type `C[int | str]` is not assignable to `C[int]`" @@ -353,6 +371,7 @@ wrong_innards: C[int] = C("five") ```py from typing_extensions import Generic, TypeVar +from ty_extensions import generic_context, into_callable T = TypeVar("T") @@ -362,6 +381,11 @@ class C(Generic[T]): def __init__(self, x: T) -> None: ... +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C(1)) # revealed: C[int] # error: [invalid-assignment] "Object of type `C[int | str]` is not assignable to `C[int]`" @@ -373,6 +397,11 @@ class D(Generic[T]): def __init__(self, *args, **kwargs) -> None: ... +# revealed: ty_extensions.GenericContext[T@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[T@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(D(1)) # revealed: D[int] # error: [invalid-assignment] "Object of type `D[int | str]` is not assignable to `D[int]`" @@ -386,6 +415,7 @@ to specialize the class. ```py from typing_extensions import Generic, TypeVar +from ty_extensions import generic_context, into_callable T = TypeVar("T") U = TypeVar("U") @@ -398,6 +428,11 @@ class C(Generic[T, U]): class D(C[V, int]): def __init__(self, x: V) -> None: ... +# revealed: ty_extensions.GenericContext[V@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[V@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(D(1)) # revealed: D[int] ``` @@ -405,6 +440,7 @@ reveal_type(D(1)) # revealed: D[int] ```py from typing_extensions import Generic, TypeVar +from ty_extensions import generic_context, into_callable T = TypeVar("T") U = TypeVar("U") @@ -415,6 +451,11 @@ class C(Generic[T, U]): class D(C[T, U]): pass +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(C(1, "str")) # revealed: C[int, str] reveal_type(D(1, "str")) # revealed: D[int, str] ``` @@ -425,6 +466,7 @@ This is a specific example of the above, since it was reported specifically by a ```py from typing_extensions import Generic, TypeVar +from ty_extensions import generic_context, into_callable T = TypeVar("T") U = TypeVar("U") @@ -432,6 +474,11 @@ U = TypeVar("U") class D(dict[T, U]): pass +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(D(key=1)) # revealed: D[str, int] ``` @@ -443,12 +490,18 @@ context. But from the user's point of view, this is another example of the above ```py from typing_extensions import Generic, TypeVar +from ty_extensions import generic_context, into_callable T = TypeVar("T") U = TypeVar("U") class C(tuple[T, U]): ... +# revealed: ty_extensions.GenericContext[T@C, U@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C, U@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C((1, 2))) # revealed: C[int, int] ``` @@ -480,6 +533,7 @@ def func8(t1: tuple[complex, list[int]], t2: tuple[int, *tuple[str, ...]], t3: t ```py from typing_extensions import Generic, TypeVar +from ty_extensions import generic_context, into_callable S = TypeVar("S") T = TypeVar("T") @@ -487,6 +541,11 @@ T = TypeVar("T") class C(Generic[T]): def __init__(self, x: T, y: S) -> None: ... +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C, S@__init__] +reveal_type(generic_context(into_callable(C))) + reveal_type(C(1, 1)) # revealed: C[int] reveal_type(C(1, "string")) # revealed: C[int] reveal_type(C(1, True)) # revealed: C[int] @@ -499,6 +558,7 @@ wrong_innards: C[int] = C("five", 1) ```py from typing_extensions import overload, Generic, TypeVar +from ty_extensions import generic_context, into_callable T = TypeVar("T") U = TypeVar("U") @@ -514,6 +574,11 @@ class C(Generic[T]): def __init__(self, x: int) -> None: ... def __init__(self, x: str | bytes | int) -> None: ... +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C("string")) # revealed: C[str] reveal_type(C(b"bytes")) # revealed: C[bytes] reveal_type(C(12)) # revealed: C[Unknown] @@ -541,6 +606,11 @@ class D(Generic[T, U]): def __init__(self, t: T, u: U) -> None: ... def __init__(self, *args) -> None: ... +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(D("string")) # revealed: D[str, str] reveal_type(D(1)) # revealed: D[str, int] reveal_type(D(1, "string")) # revealed: D[int, str] @@ -551,6 +621,7 @@ reveal_type(D(1, "string")) # revealed: D[int, str] ```py from dataclasses import dataclass from typing_extensions import Generic, TypeVar +from ty_extensions import generic_context, into_callable T = TypeVar("T") @@ -558,6 +629,11 @@ T = TypeVar("T") class A(Generic[T]): x: T +# revealed: ty_extensions.GenericContext[T@A] +reveal_type(generic_context(A)) +# revealed: ty_extensions.GenericContext[T@A] +reveal_type(generic_context(into_callable(A))) + reveal_type(A(x=1)) # revealed: A[int] ``` @@ -565,17 +641,28 @@ reveal_type(A(x=1)) # revealed: A[int] ```py from typing_extensions import Generic, TypeVar +from ty_extensions import generic_context, into_callable T = TypeVar("T") U = TypeVar("U", default=T) class C(Generic[T, U]): ... +# revealed: ty_extensions.GenericContext[T@C, U@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C, U@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C()) # revealed: C[Unknown, Unknown] class D(Generic[T, U]): def __init__(self) -> None: ... +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(D()) # revealed: D[Unknown, Unknown] ``` diff --git a/crates/ty_python_semantic/resources/mdtest/generics/pep695/classes.md b/crates/ty_python_semantic/resources/mdtest/generics/pep695/classes.md index a110783ed2..dbb249b45e 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/pep695/classes.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/pep695/classes.md @@ -264,12 +264,19 @@ signatures don't count towards variance). ### `__new__` only ```py +from ty_extensions import generic_context, into_callable + class C[T]: x: T def __new__(cls, x: T) -> "C[T]": return object.__new__(cls) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C(1)) # revealed: C[int] # error: [invalid-assignment] "Object of type `C[int | str]` is not assignable to `C[int]`" @@ -279,11 +286,18 @@ wrong_innards: C[int] = C("five") ### `__init__` only ```py +from ty_extensions import generic_context, into_callable + class C[T]: x: T def __init__(self, x: T) -> None: ... +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C(1)) # revealed: C[int] # error: [invalid-assignment] "Object of type `C[int | str]` is not assignable to `C[int]`" @@ -293,6 +307,8 @@ wrong_innards: C[int] = C("five") ### Identical `__new__` and `__init__` signatures ```py +from ty_extensions import generic_context, into_callable + class C[T]: x: T @@ -301,6 +317,11 @@ class C[T]: def __init__(self, x: T) -> None: ... +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C(1)) # revealed: C[int] # error: [invalid-assignment] "Object of type `C[int | str]` is not assignable to `C[int]`" @@ -310,6 +331,8 @@ wrong_innards: C[int] = C("five") ### Compatible `__new__` and `__init__` signatures ```py +from ty_extensions import generic_context, into_callable + class C[T]: x: T @@ -318,6 +341,11 @@ class C[T]: def __init__(self, x: T) -> None: ... +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C(1)) # revealed: C[int] # error: [invalid-assignment] "Object of type `C[int | str]` is not assignable to `C[int]`" @@ -331,6 +359,11 @@ class D[T]: def __init__(self, *args, **kwargs) -> None: ... +# revealed: ty_extensions.GenericContext[T@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[T@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(D(1)) # revealed: D[int] # error: [invalid-assignment] "Object of type `D[int | str]` is not assignable to `D[int]`" @@ -343,6 +376,8 @@ If either method comes from a generic base class, we don't currently use its inf to specialize the class. ```py +from ty_extensions import generic_context, into_callable + class C[T, U]: def __new__(cls, *args, **kwargs) -> "C[T, U]": return object.__new__(cls) @@ -350,18 +385,30 @@ class C[T, U]: class D[V](C[V, int]): def __init__(self, x: V) -> None: ... +# revealed: ty_extensions.GenericContext[V@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[V@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(D(1)) # revealed: D[Literal[1]] ``` ### Generic class inherits `__init__` from generic base class ```py +from ty_extensions import generic_context, into_callable + class C[T, U]: def __init__(self, t: T, u: U) -> None: ... class D[T, U](C[T, U]): pass +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(C(1, "str")) # revealed: C[Literal[1], Literal["str"]] reveal_type(D(1, "str")) # revealed: D[Literal[1], Literal["str"]] ``` @@ -371,9 +418,16 @@ reveal_type(D(1, "str")) # revealed: D[Literal[1], Literal["str"]] This is a specific example of the above, since it was reported specifically by a user. ```py +from ty_extensions import generic_context, into_callable + class D[T, U](dict[T, U]): pass +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(D(key=1)) # revealed: D[str, int] ``` @@ -384,8 +438,15 @@ for `tuple`, so we use a different mechanism to make sure it has the right inher context. But from the user's point of view, this is another example of the above.) ```py +from ty_extensions import generic_context, into_callable + class C[T, U](tuple[T, U]): ... +# revealed: ty_extensions.GenericContext[T@C, U@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C, U@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C((1, 2))) # revealed: C[Literal[1], Literal[2]] ``` @@ -409,11 +470,18 @@ def func8(t1: tuple[complex, list[int]], t2: tuple[int, *tuple[str, ...]], t3: t ### `__init__` is itself generic ```py +from ty_extensions import generic_context, into_callable + class C[T]: x: T def __init__[S](self, x: T, y: S) -> None: ... +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C, S@__init__] +reveal_type(generic_context(into_callable(C))) + reveal_type(C(1, 1)) # revealed: C[int] reveal_type(C(1, "string")) # revealed: C[int] reveal_type(C(1, True)) # revealed: C[int] @@ -427,6 +495,7 @@ wrong_innards: C[int] = C("five", 1) ```py from __future__ import annotations from typing import overload +from ty_extensions import generic_context, into_callable class C[T]: # we need to use the type variable or else the class is bivariant in T, and @@ -443,6 +512,11 @@ class C[T]: def __init__(self, x: int) -> None: ... def __init__(self, x: str | bytes | int) -> None: ... +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C("string")) # revealed: C[str] reveal_type(C(b"bytes")) # revealed: C[bytes] reveal_type(C(12)) # revealed: C[Unknown] @@ -470,6 +544,11 @@ class D[T, U]: def __init__(self, t: T, u: U) -> None: ... def __init__(self, *args) -> None: ... +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(D("string")) # revealed: D[str, Literal["string"]] reveal_type(D(1)) # revealed: D[str, Literal[1]] reveal_type(D(1, "string")) # revealed: D[Literal[1], Literal["string"]] @@ -479,24 +558,42 @@ reveal_type(D(1, "string")) # revealed: D[Literal[1], Literal["string"]] ```py from dataclasses import dataclass +from ty_extensions import generic_context, into_callable @dataclass class A[T]: x: T +# revealed: ty_extensions.GenericContext[T@A] +reveal_type(generic_context(A)) +# revealed: ty_extensions.GenericContext[T@A] +reveal_type(generic_context(into_callable(A))) + reveal_type(A(x=1)) # revealed: A[int] ``` ### Class typevar has another typevar as a default ```py +from ty_extensions import generic_context, into_callable + class C[T, U = T]: ... +# revealed: ty_extensions.GenericContext[T@C, U@C] +reveal_type(generic_context(C)) +# revealed: ty_extensions.GenericContext[T@C, U@C] +reveal_type(generic_context(into_callable(C))) + reveal_type(C()) # revealed: C[Unknown, Unknown] class D[T, U = T]: def __init__(self) -> None: ... +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(D)) +# revealed: ty_extensions.GenericContext[T@D, U@D] +reveal_type(generic_context(into_callable(D))) + reveal_type(D()) # revealed: D[Unknown, Unknown] ``` diff --git a/crates/ty_python_semantic/resources/mdtest/liskov.md b/crates/ty_python_semantic/resources/mdtest/liskov.md index ad16b99f08..2dca2dd558 100644 --- a/crates/ty_python_semantic/resources/mdtest/liskov.md +++ b/crates/ty_python_semantic/resources/mdtest/liskov.md @@ -218,8 +218,8 @@ class E(A[int]): def method(self, x: object) -> None: ... # fine class F[T](A[T]): - # TODO: we should emit `invalid-method-override` on this: # `str` is not necessarily a supertype of `T`! + # error: [invalid-method-override] def method(self, x: str) -> None: ... class G(A[int]): diff --git a/crates/ty_python_semantic/src/types.rs b/crates/ty_python_semantic/src/types.rs index 61cc160769..6022aad53e 100644 --- a/crates/ty_python_semantic/src/types.rs +++ b/crates/ty_python_semantic/src/types.rs @@ -8535,12 +8535,9 @@ impl<'db> TypeMapping<'_, 'db> { | TypeMapping::Materialize(_) | TypeMapping::ReplaceParameterDefaults | TypeMapping::EagerExpansion => context, - TypeMapping::BindSelf { .. } => GenericContext::from_typevar_instances( - db, - context - .variables(db) - .filter(|var| !var.typevar(db).is_self(db)), - ), + TypeMapping::BindSelf { + binding_context, .. + } => context.remove_self(db, *binding_context), TypeMapping::ReplaceSelf { new_upper_bound } => GenericContext::from_typevar_instances( db, context.variables(db).map(|typevar| { diff --git a/crates/ty_python_semantic/src/types/call/bind.rs b/crates/ty_python_semantic/src/types/call/bind.rs index 2093f2f377..da63e45208 100644 --- a/crates/ty_python_semantic/src/types/call/bind.rs +++ b/crates/ty_python_semantic/src/types/call/bind.rs @@ -32,7 +32,9 @@ use crate::types::function::{ use crate::types::generics::{ InferableTypeVars, Specialization, SpecializationBuilder, SpecializationError, }; -use crate::types::signatures::{Parameter, ParameterForm, ParameterKind, Parameters}; +use crate::types::signatures::{ + CallableSignature, Parameter, ParameterForm, ParameterKind, Parameters, +}; use crate::types::tuple::{TupleLength, TupleType}; use crate::types::{ BoundMethodType, BoundTypeVarIdentity, ClassLiteral, DATACLASS_FLAGS, DataclassFlags, @@ -788,51 +790,67 @@ impl<'db> Bindings<'db> { )) }; - let function_generic_context = |function: FunctionType<'db>| { - let union = UnionType::from_elements( - db, - function - .signature(db) - .overloads - .iter() - .filter_map(|signature| signature.generic_context) - .map(wrap_generic_context), - ); - if union.is_never() { - Type::none(db) - } else { - union - } - }; + let signature_generic_context = + |signature: &CallableSignature<'db>| { + UnionType::try_from_elements( + db, + signature.overloads.iter().map(|signature| { + signature.generic_context.map(wrap_generic_context) + }), + ) + }; - // TODO: Handle generic functions, and unions/intersections of - // generic types - overload.set_return_type(match ty { - Type::ClassLiteral(class) => class - .generic_context(db) - .map(wrap_generic_context) - .unwrap_or_else(|| Type::none(db)), + let generic_context_for_simple_type = |ty: Type<'db>| match ty { + Type::ClassLiteral(class) => { + class.generic_context(db).map(wrap_generic_context) + } Type::FunctionLiteral(function) => { - function_generic_context(*function) + signature_generic_context(function.signature(db)) } - Type::BoundMethod(bound_method) => { - function_generic_context(bound_method.function(db)) + Type::BoundMethod(bound_method) => signature_generic_context( + bound_method.function(db).signature(db), + ), + + Type::Callable(callable) => { + signature_generic_context(callable.signatures(db)) } Type::KnownInstance(KnownInstanceType::TypeAliasType( TypeAliasType::PEP695(alias), - )) => alias - .generic_context(db) - .map(wrap_generic_context) - .unwrap_or_else(|| Type::none(db)), + )) => alias.generic_context(db).map(wrap_generic_context), - _ => Type::none(db), - }); + _ => None, + }; + + let generic_context = match ty { + Type::Union(union_type) => UnionType::try_from_elements( + db, + union_type + .elements(db) + .iter() + .map(|ty| generic_context_for_simple_type(*ty)), + ), + _ => generic_context_for_simple_type(*ty), + }; + + overload.set_return_type( + generic_context.unwrap_or_else(|| Type::none(db)), + ); } } + Some(KnownFunction::IntoCallable) => { + let [Some(ty)] = overload.parameter_types() else { + continue; + }; + let Some(callables) = ty.try_upcast_to_callable(db) else { + continue; + }; + overload.set_return_type(callables.into_type(db)); + } + Some(KnownFunction::DunderAllNames) => { if let [Some(ty)] = overload.parameter_types() { overload.set_return_type(match ty { diff --git a/crates/ty_python_semantic/src/types/class.rs b/crates/ty_python_semantic/src/types/class.rs index 06f91502fc..00b5bed3ec 100644 --- a/crates/ty_python_semantic/src/types/class.rs +++ b/crates/ty_python_semantic/src/types/class.rs @@ -1133,6 +1133,13 @@ impl<'db> ClassType<'db> { /// constructor signature of this class. #[salsa::tracked(cycle_initial=into_callable_cycle_initial, heap_size=ruff_memory_usage::heap_size)] pub(super) fn into_callable(self, db: &'db dyn Db) -> CallableTypes<'db> { + // TODO: This mimics a lot of the logic in Type::try_call_from_constructor. Can we + // consolidate the two? Can we invoke a class by upcasting the class into a Callable, and + // then relying on the call binding machinery to Just Work™? + + let (class_literal, _) = self.class_literal(db); + let class_generic_context = class_literal.generic_context(db); + let self_ty = Type::from(self); let metaclass_dunder_call_function_symbol = self_ty .member_lookup_with_policy( @@ -1206,39 +1213,58 @@ impl<'db> ClassType<'db> { // If the class defines an `__init__` method, then we synthesize a callable type with the // same parameters as the `__init__` method after it is bound, and with the return type of // the concrete type of `Self`. - let synthesized_dunder_init_callable = - if let Place::Defined(ty, _, _) = dunder_init_function_symbol { - let signature = match ty { - Type::FunctionLiteral(dunder_init_function) => { - Some(dunder_init_function.signature(db)) - } - Type::Callable(callable) => Some(callable.signatures(db)), - _ => None, + let synthesized_dunder_init_callable = if let Place::Defined(ty, _, _) = + dunder_init_function_symbol + { + let signature = match ty { + Type::FunctionLiteral(dunder_init_function) => { + Some(dunder_init_function.signature(db)) + } + Type::Callable(callable) => Some(callable.signatures(db)), + _ => None, + }; + + if let Some(signature) = signature { + let synthesized_signature = |signature: &Signature<'db>| { + let self_annotation = signature + .parameters() + .get_positional(0) + .and_then(Parameter::annotated_type) + .filter(|ty| { + ty.as_typevar() + .is_none_or(|bound_typevar| !bound_typevar.typevar(db).is_self(db)) + }); + let return_type = self_annotation.unwrap_or(correct_return_type); + let instance_ty = self_annotation.unwrap_or_else(|| Type::instance(db, self)); + let generic_context = GenericContext::merge_optional( + db, + class_generic_context, + signature.generic_context, + ); + Signature::new_generic( + generic_context, + signature.parameters().clone(), + Some(return_type), + ) + .with_definition(signature.definition()) + .bind_self(db, Some(instance_ty)) }; - if let Some(signature) = signature { - let synthesized_signature = |signature: &Signature<'db>| { - let instance_ty = Type::instance(db, self); - Signature::new(signature.parameters().clone(), Some(correct_return_type)) - .with_definition(signature.definition()) - .bind_self(db, Some(instance_ty)) - }; + let synthesized_dunder_init_signature = CallableSignature::from_overloads( + signature.overloads.iter().map(synthesized_signature), + ); - let synthesized_dunder_init_signature = CallableSignature::from_overloads( - signature.overloads.iter().map(synthesized_signature), - ); - - Some(CallableType::new( - db, - synthesized_dunder_init_signature, - true, - )) - } else { - None - } + Some(CallableType::new( + db, + synthesized_dunder_init_signature, + true, + )) } else { None - }; + } + } else { + None + }; match (dunder_new_function, synthesized_dunder_init_callable) { (Some(dunder_new_function), Some(synthesized_dunder_init_callable)) => { @@ -1261,9 +1287,13 @@ impl<'db> ClassType<'db> { ) .place; - if let Place::Defined(Type::FunctionLiteral(new_function), _, _) = + if let Place::Defined(Type::FunctionLiteral(mut new_function), _, _) = new_function_symbol { + if let Some(class_generic_context) = class_generic_context { + new_function = + new_function.with_inherited_generic_context(db, class_generic_context); + } CallableTypes::one( new_function .into_bound_method_type(db, correct_return_type) @@ -1273,7 +1303,11 @@ impl<'db> ClassType<'db> { // Fallback if no `object.__new__` is found. CallableTypes::one(CallableType::single( db, - Signature::new(Parameters::empty(), Some(correct_return_type)), + Signature::new_generic( + class_generic_context, + Parameters::empty(), + Some(correct_return_type), + ), )) } } diff --git a/crates/ty_python_semantic/src/types/function.rs b/crates/ty_python_semantic/src/types/function.rs index 0fba3aecd8..7380ec86f3 100644 --- a/crates/ty_python_semantic/src/types/function.rs +++ b/crates/ty_python_semantic/src/types/function.rs @@ -1339,6 +1339,8 @@ pub enum KnownFunction { IsSingleValued, /// `ty_extensions.generic_context` GenericContext, + /// `ty_extensions.into_callable` + IntoCallable, /// `ty_extensions.dunder_all_names` DunderAllNames, /// `ty_extensions.enum_members` @@ -1411,6 +1413,7 @@ impl KnownFunction { | Self::IsSingleton | Self::IsSubtypeOf | Self::GenericContext + | Self::IntoCallable | Self::DunderAllNames | Self::EnumMembers | Self::StaticAssert @@ -1946,6 +1949,7 @@ pub(crate) mod tests { KnownFunction::IsSingleton | KnownFunction::IsSubtypeOf | KnownFunction::GenericContext + | KnownFunction::IntoCallable | KnownFunction::DunderAllNames | KnownFunction::EnumMembers | KnownFunction::StaticAssert diff --git a/crates/ty_python_semantic/src/types/generics.rs b/crates/ty_python_semantic/src/types/generics.rs index de357dfbce..432785b778 100644 --- a/crates/ty_python_semantic/src/types/generics.rs +++ b/crates/ty_python_semantic/src/types/generics.rs @@ -17,11 +17,12 @@ use crate::types::signatures::Parameters; use crate::types::tuple::{TupleSpec, TupleType, walk_tuple_type}; use crate::types::visitor::{TypeCollector, TypeVisitor, walk_type_with_recursion_guard}; use crate::types::{ - ApplyTypeMappingVisitor, BoundTypeVarIdentity, BoundTypeVarInstance, ClassLiteral, - FindLegacyTypeVarsVisitor, HasRelationToVisitor, IsDisjointVisitor, IsEquivalentVisitor, - KnownClass, KnownInstanceType, MaterializationKind, NormalizedVisitor, Type, TypeContext, - TypeMapping, TypeRelation, TypeVarBoundOrConstraints, TypeVarIdentity, TypeVarInstance, - TypeVarKind, TypeVarVariance, UnionType, declaration_type, walk_bound_type_var_type, + ApplyTypeMappingVisitor, BindingContext, BoundTypeVarIdentity, BoundTypeVarInstance, + ClassLiteral, FindLegacyTypeVarsVisitor, HasRelationToVisitor, IsDisjointVisitor, + IsEquivalentVisitor, KnownClass, KnownInstanceType, MaterializationKind, NormalizedVisitor, + Type, TypeContext, TypeMapping, TypeRelation, TypeVarBoundOrConstraints, TypeVarIdentity, + TypeVarInstance, TypeVarKind, TypeVarVariance, UnionType, declaration_type, + walk_bound_type_var_type, }; use crate::{Db, FxOrderMap, FxOrderSet}; @@ -261,6 +262,34 @@ impl<'db> GenericContext<'db> { ) } + pub(crate) fn merge_optional( + db: &'db dyn Db, + left: Option, + right: Option, + ) -> Option { + match (left, right) { + (None, None) => None, + (Some(one), None) | (None, Some(one)) => Some(one), + (Some(left), Some(right)) => Some(left.merge(db, right)), + } + } + + pub(crate) fn remove_self( + self, + db: &'db dyn Db, + binding_context: Option>, + ) -> Self { + Self::from_typevar_instances( + db, + self.variables(db).filter(|bound_typevar| { + !(bound_typevar.typevar(db).is_self(db) + && binding_context.is_none_or(|binding_context| { + bound_typevar.binding_context(db) == binding_context + })) + }), + ) + } + pub(crate) fn inferable_typevars(self, db: &'db dyn Db) -> InferableTypeVars<'db, 'db> { #[derive(Default)] struct CollectTypeVars<'db> { diff --git a/crates/ty_python_semantic/src/types/signatures.rs b/crates/ty_python_semantic/src/types/signatures.rs index d091b8a53f..c76a086cfa 100644 --- a/crates/ty_python_semantic/src/types/signatures.rs +++ b/crates/ty_python_semantic/src/types/signatures.rs @@ -667,10 +667,11 @@ impl<'db> Signature<'db> { let mut parameters = Parameters::new(db, parameters); let mut return_ty = self.return_ty; + let binding_context = self.definition.map(BindingContext::Definition); if let Some(self_type) = self_type { let self_mapping = TypeMapping::BindSelf { self_type, - binding_context: self.definition.map(BindingContext::Definition), + binding_context, }; parameters = parameters.apply_type_mapping_impl( db, @@ -682,7 +683,9 @@ impl<'db> Signature<'db> { .map(|ty| ty.apply_type_mapping(db, &self_mapping, TypeContext::default())); } Self { - generic_context: self.generic_context, + generic_context: self + .generic_context + .map(|generic_context| generic_context.remove_self(db, binding_context)), definition: self.definition, parameters, return_ty, diff --git a/crates/ty_vendored/ty_extensions/ty_extensions.pyi b/crates/ty_vendored/ty_extensions/ty_extensions.pyi index 8f45b29238..347b6b4b34 100644 --- a/crates/ty_vendored/ty_extensions/ty_extensions.pyi +++ b/crates/ty_vendored/ty_extensions/ty_extensions.pyi @@ -147,6 +147,10 @@ def is_single_valued(ty: Any) -> bool: # type is not generic. def generic_context(ty: Any) -> GenericContext | None: ... +# Converts a value into a `Callable`, if possible. This is the value equivalent +# of `CallableTypeOf`, which operates on types. +def into_callable(ty: Any) -> Any: ... + # Returns the `__all__` names of a module as a tuple of sorted strings, or `None` if # either the module does not have `__all__` or it has invalid elements. def dunder_all_names(module: Any) -> Any: ... From f29436ca9e43a2638f97b2b397bcd04cadfacf51 Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Fri, 5 Dec 2025 17:23:18 +0100 Subject: [PATCH 27/65] [ty] Update benchmark dependencies (#21815) --- .../ty_benchmark/snapshots/black_Pyrefly.txt | 3 +- scripts/ty_benchmark/snapshots/black_ty.txt | 13 +- .../snapshots/discord.py_Pyrefly.txt | 137 +- .../snapshots/discord.py_mypy.txt | 4 +- .../ty_benchmark/snapshots/discord.py_ty.txt | 153 +- .../snapshots/homeassistant_Pyrefly.txt | 8277 +++++++++-------- .../snapshots/homeassistant_Pyright.txt | 3948 ++++---- .../snapshots/homeassistant_mypy.txt | 48 +- .../snapshots/homeassistant_ty.txt | 1009 +- .../ty_benchmark/snapshots/isort_Pyrefly.txt | 7 +- .../ty_benchmark/snapshots/jinja_Pyrefly.txt | 6 +- .../snapshots/pandas-stubs_ty.txt | 29 +- .../ty_benchmark/snapshots/pandas_Pyrefly.txt | 101 +- scripts/ty_benchmark/snapshots/pandas_ty.txt | 174 +- scripts/ty_benchmark/snapshots/prefect_ty.txt | 4 +- .../snapshots/pytorch_Pyrefly.txt | 188 +- scripts/ty_benchmark/snapshots/pytorch_ty.txt | 123 +- .../ty_benchmark/src/benchmark/projects.py | 4 +- scripts/ty_benchmark/src/benchmark/venv.py | 2 +- scripts/ty_benchmark/uv.lock | 20 +- 20 files changed, 7684 insertions(+), 6566 deletions(-) diff --git a/scripts/ty_benchmark/snapshots/black_Pyrefly.txt b/scripts/ty_benchmark/snapshots/black_Pyrefly.txt index b3de7dfbcf..2d96ba56fd 100644 --- a/scripts/ty_benchmark/snapshots/black_Pyrefly.txt +++ b/scripts/ty_benchmark/snapshots/black_Pyrefly.txt @@ -29,6 +29,7 @@ ERROR src/black/trans.py:544:10-23: `type[Err[CannotTransform] | Ok[TypeVar[T]]] ERROR src/black/trans.py:752:55-68: `type[Err[CannotTransform] | Ok[TypeVar[T]]]` is not subscriptable [unsupported-operation] ERROR src/black/trans.py:985:19-32: `type[Err[CannotTransform] | Ok[TypeVar[T]]]` is not subscriptable [unsupported-operation] ERROR src/black/trans.py:1111:57-70: `type[Err[CannotTransform] | Ok[TypeVar[T]]]` is not subscriptable [unsupported-operation] +ERROR src/black/trans.py:1349:17-1350:27: `int` is not assignable to `int` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR src/black/trans.py:1480:19-32: `type[Err[CannotTransform] | Ok[TypeVar[T]]]` is not subscriptable [unsupported-operation] ERROR src/black/trans.py:1630:25-31: `csplit` may be uninitialized [unbound-name] ERROR src/black/trans.py:2162:19-32: `type[Err[CannotTransform] | Ok[TypeVar[T]]]` is not subscriptable [unsupported-operation] @@ -42,4 +43,4 @@ ERROR src/blib2to3/pytree.py:670:24-34: `newcontent` may be uninitialized [unbou ERROR src/blib2to3/pytree.py:756:24-39: `wrapped_content` may be uninitialized [unbound-name] ERROR src/blib2to3/pytree.py:847:34-45: `save_stderr` may be uninitialized [unbound-name] INFO Checking project configured at `/pyrefly.toml` - INFO 43 errors (2 suppressed) + INFO 44 errors (2 suppressed) diff --git a/scripts/ty_benchmark/snapshots/black_ty.txt b/scripts/ty_benchmark/snapshots/black_ty.txt index 64ad958a7f..f5923a5615 100644 --- a/scripts/ty_benchmark/snapshots/black_ty.txt +++ b/scripts/ty_benchmark/snapshots/black_ty.txt @@ -1,6 +1,6 @@ src/black/__init__.py:989:13: warning[possibly-missing-attribute] Attribute `detach` may be missing on object of type `TextIOWrapper[_WrappedBuffer] | AnsiToWin32` src/black/__init__.py:1378:23: warning[possibly-missing-attribute] Attribute `value` may be missing on object of type `Node | Leaf` -src/black/cache.py:144:59: error[invalid-assignment] Object of type `dict[str | Unknown, tuple[@Todo] | Unknown]` is not assignable to `dict[str, tuple[int | float, int, str]]` +src/black/cache.py:144:59: error[invalid-assignment] Object of type `dict[str | Unknown, tuple[@Todo(StarredExpression)] | Unknown]` is not assignable to `dict[str, tuple[int | float, int, str]]` src/black/handle_ipynb_magics.py:106:10: error[unresolved-import] Cannot resolve imported module `tokenize_rt` src/black/handle_ipynb_magics.py:130:10: error[unresolved-import] Cannot resolve imported module `tokenize_rt` src/black/handle_ipynb_magics.py:171:10: error[unresolved-import] Cannot resolve imported module `IPython.core.inputtransformer2` @@ -18,9 +18,16 @@ src/black/linegen.py:1757:25: warning[possibly-missing-attribute] Attribute `val src/black/linegen.py:1795:13: error[invalid-assignment] Object of type `Literal[""]` is not assignable to attribute `value` on type `Node | Leaf` src/black/linegen.py:1796:13: error[invalid-assignment] Object of type `Literal[""]` is not assignable to attribute `value` on type `Node | Leaf` src/black/nodes.py:746:32: warning[possibly-missing-attribute] Attribute `value` may be missing on object of type `Leaf | Node` -src/black/rusty.py:28:27: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `Exception` of type variable `E@Err` +src/black/trans.py:297:20: error[invalid-raise] Cannot use object of type `object` as an exception cause +src/black/trans.py:306:24: error[invalid-raise] Cannot use object of type `object` as an exception cause +src/black/trans.py:466:20: error[invalid-return-type] Return type does not match returned value: expected `Ok[list[int]] | Err[CannotTransform]`, found `Ok[list[Unknown] & ~AlwaysFalsy]` +src/black/trans.py:481:47: error[invalid-argument-type] Argument to bound method `_merge_string_group` is incorrect: Expected `Line`, found `object` +src/black/trans.py:493:13: error[unresolved-attribute] Unresolved attribute `__cause__` on type `object`. +src/black/trans.py:494:13: error[invalid-assignment] Object of type `object` is not assignable to attribute `__cause__` of type `BaseException | None` +src/black/trans.py:980:20: error[invalid-return-type] Return type does not match returned value: expected `Ok[list[int]] | Err[CannotTransform]`, found `Ok[list[Unknown] & ~AlwaysFalsy]` +src/black/trans.py:1107:20: error[invalid-return-type] Return type does not match returned value: expected `Ok[list[int]] | Err[CannotTransform]`, found `(Ok[None] & Top[Err[Unknown]]) | Err[CannotTransform]` src/blib2to3/pgen2/conv.py:35:6: error[unresolved-import] Cannot resolve imported module `pgen2` src/blib2to3/pgen2/conv.py:77:34: warning[possibly-missing-attribute] Attribute `groups` may be missing on object of type `Match[str] | None` src/blib2to3/pgen2/parse.py:367:13: warning[possibly-missing-attribute] Attribute `append` may be missing on object of type `list[Node | Leaf] | None` src/blib2to3/pytree.py:149:13: error[unresolved-attribute] Unresolved attribute `parent` on type `object`. -Found 25 diagnostics +Found 32 diagnostics diff --git a/scripts/ty_benchmark/snapshots/discord.py_Pyrefly.txt b/scripts/ty_benchmark/snapshots/discord.py_Pyrefly.txt index 6eeba829e1..dc164a445e 100644 --- a/scripts/ty_benchmark/snapshots/discord.py_Pyrefly.txt +++ b/scripts/ty_benchmark/snapshots/discord.py_Pyrefly.txt @@ -1,7 +1,7 @@ ERROR discord/abc.py:123:9-15: Class member `PinnedMessage.pinned` overrides parent class `Message` in an inconsistent manner [bad-override] -ERROR discord/abc.py:474:28-29: Argument `dict[str, Any]` is not assignable to parameter `object` with type `TypedDict[ChannelPositionUpdate]` in function `list.append` [bad-argument-type] -ERROR discord/abc.py:578:44-81: Argument `list[TypedDict[PermissionOverwrite]] | list[@_] | object` is not assignable to parameter `iterable` with type `Iterable[str]` in function `enumerate.__new__` [bad-argument-type] -ERROR discord/abc.py:579:37-47: Argument `str` is not assignable to parameter `data` with type `TypedDict[PermissionOverwrite]` in function `_Overwrites.__init__` [bad-argument-type] +ERROR discord/abc.py:474:28-29: Argument `dict[str, Any]` is not assignable to parameter `object` with type `ChannelPositionUpdate` in function `list.append` [bad-argument-type] +ERROR discord/abc.py:578:44-81: Argument `list[PermissionOverwrite] | list[@_] | object` is not assignable to parameter `iterable` with type `Iterable[str]` in function `enumerate.__new__` [bad-argument-type] +ERROR discord/abc.py:579:37-47: Argument `str` is not assignable to parameter `data` with type `PermissionOverwrite` in function `_Overwrites.__init__` [bad-argument-type] ERROR discord/abc.py:1031:72-81: Argument `int` is not assignable to parameter `type` with type `Literal[0, 1]` in function `discord.http.HTTPClient.edit_channel_permissions` [bad-argument-type] ERROR discord/abc.py:1052:64-79: Argument `int` is not assignable to parameter `channel_type` with type `Literal[0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 15, 16]` in function `discord.http.HTTPClient.create_channel` [bad-argument-type] ERROR discord/abc.py:1224:25-37: Object of class `NoneType` has no attribute `id` [missing-attribute] @@ -13,7 +13,7 @@ ERROR discord/activity.py:455:9-16: Class member `Game.to_dict` overrides parent ERROR discord/activity.py:566:9-16: Class member `Streaming.to_dict` overrides parent class `BaseActivity` in an inconsistent manner [bad-override] ERROR discord/activity.py:822:9-16: Class member `CustomActivity.to_dict` overrides parent class `BaseActivity` in an inconsistent manner [bad-override] ERROR discord/activity.py:836:26-46: Cannot set item in `dict[str, int | str | None]` [unsupported-operation] -ERROR discord/app_commands/checks.py:390:64-71: Argument `((Interaction[Any]) -> Cooldown | None) | ((Interaction[Any]) -> Coroutine[Any, Any, Cooldown | None])` is not assignable to parameter with type `(Interaction[Any]) -> Awaitable[Cooldown] | Cooldown` in function `discord.utils.maybe_coroutine` [bad-argument-type] +ERROR discord/app_commands/checks.py:390:64-71: Argument `((Interaction[Any]) -> Cooldown | None) | ((Interaction[Any]) -> Coroutine[Any, Any, Cooldown | None])` is not assignable to parameter with type `(Interaction[Any]) -> MaybeAwaitable` in function `discord.utils.maybe_coroutine` [bad-argument-type] ERROR discord/app_commands/commands.py:235:9-38: Object of class `FunctionType` has no attribute `pass_command_binding` [missing-attribute] ERROR discord/app_commands/commands.py:393:29-76: Object of class `FunctionType` has no attribute `__discord_app_commands_param_description__` [missing-attribute] ERROR discord/app_commands/commands.py:402:19-61: Object of class `FunctionType` has no attribute `__discord_app_commands_param_rename__` [missing-attribute] @@ -26,9 +26,10 @@ ERROR discord/app_commands/commands.py:2477:17-53: Object of class `FunctionType ERROR discord/app_commands/commands.py:2479:13-49: Object of class `FunctionType` has no attribute `__discord_app_commands_checks__` [missing-attribute] ERROR discord/app_commands/errors.py:483:27-33: `errors` may be uninitialized [unbound-name] ERROR discord/app_commands/errors.py:484:72-78: `errors` may be uninitialized [unbound-name] -ERROR discord/app_commands/installs.py:113:16-22: Returned type `list[int]` is not assignable to declared return type `list[Literal[0, 1]]` [bad-return] -ERROR discord/app_commands/installs.py:213:16-22: Returned type `list[int]` is not assignable to declared return type `list[Literal[0, 1, 2]]` [bad-return] +ERROR discord/app_commands/installs.py:113:16-22: Returned type `list[int]` is not assignable to declared return type `list[InteractionInstallationType]` [bad-return] +ERROR discord/app_commands/installs.py:213:16-22: Returned type `list[int]` is not assignable to declared return type `list[InteractionContextType]` [bad-return] ERROR discord/app_commands/models.py:217:89-112: Type `object` is not iterable [not-iterable] +ERROR discord/app_commands/models.py:250:16-261:10: Returned type `dict[str, dict[str, str] | int | list[_BooleanApplicationCommandOption | _ChannelApplicationCommandOptionChoice | _IntegerApplicationCommandOption | _NonChannelSnowflakeApplicationCommandOptionChoice | _NumberApplicationCommandOption | _StringApplicationCommandOption | _SubCommandCommandOption | _SubCommandGroupCommandOption] | list[int] | str | None]` is not assignable to declared return type `_ChatInputApplicationCommand | _GuildChatInputApplicationCommand | _GuildMessageApplicationCommand | _GuildUserApplicationCommand | _MessageApplicationCommand | _UserApplicationCommand` [bad-return] ERROR discord/app_commands/models.py:370:57-89: Cannot set item in `dict[str, str]` [unsupported-operation] ERROR discord/app_commands/models.py:372:57-61: Cannot set item in `dict[str, str]` [unsupported-operation] ERROR discord/app_commands/models.py:375:40-53: Cannot set item in `dict[str, str]` [unsupported-operation] @@ -43,7 +44,9 @@ ERROR discord/app_commands/models.py:1061:42-64: `int | object | None` is not as ERROR discord/app_commands/models.py:1062:35-66: `bool | object` is not assignable to attribute `autocomplete` with type `bool` [bad-assignment] ERROR discord/app_commands/models.py:1063:84-113: Type `object` is not iterable [not-iterable] ERROR discord/app_commands/models.py:1064:92-115: Type `object` is not iterable [not-iterable] +ERROR discord/app_commands/models.py:1069:16-1084:10: Returned type `dict[str, bool | dict[str, str] | float | int | list[dict[str, Any]] | list[int] | list[@_] | str | None]` is not assignable to declared return type `_BooleanApplicationCommandOption | _ChannelApplicationCommandOptionChoice | _IntegerApplicationCommandOption | _NonChannelSnowflakeApplicationCommandOptionChoice | _NumberApplicationCommandOption | _StringApplicationCommandOption | _SubCommandCommandOption | _SubCommandGroupCommandOption` [bad-return] ERROR discord/app_commands/models.py:1162:89-112: Type `object` is not iterable [not-iterable] +ERROR discord/app_commands/models.py:1168:16-1175:10: Returned type `dict[str, dict[str, str] | int | list[_BooleanApplicationCommandOption | _ChannelApplicationCommandOptionChoice | _IntegerApplicationCommandOption | _NonChannelSnowflakeApplicationCommandOptionChoice | _NumberApplicationCommandOption | _StringApplicationCommandOption | _SubCommandCommandOption | _SubCommandGroupCommandOption] | str]` is not assignable to declared return type `_BooleanApplicationCommandOption | _ChannelApplicationCommandOptionChoice | _IntegerApplicationCommandOption | _NonChannelSnowflakeApplicationCommandOptionChoice | _NumberApplicationCommandOption | _StringApplicationCommandOption | _SubCommandCommandOption | _SubCommandGroupCommandOption` [bad-return] ERROR discord/app_commands/models.py:1235:21-36: `int` is not assignable to TypedDict key `type` with type `Literal[1, 2, 3]` [bad-typed-dict-key] ERROR discord/app_commands/transformers.py:110:67-73: Argument `locale_str | str` is not assignable to parameter `string` with type `locale_str` in function `discord.app_commands.translator.Translator._checked_translate` [bad-argument-type] ERROR discord/app_commands/transformers.py:115:67-78: Argument `locale_str | str` is not assignable to parameter `string` with type `locale_str` in function `discord.app_commands.translator.Translator._checked_translate` [bad-argument-type] @@ -62,13 +65,13 @@ ERROR discord/app_commands/tree.py:366:29-36: Cannot set item in `dict[tuple[str ERROR discord/app_commands/tree.py:748:27-34: Type of yielded value `ContextMenu` is not assignable to declared return type `Command[Any, Ellipsis, Any] | Group` [invalid-yield] ERROR discord/app_commands/tree.py:814:19-38: No matching overload found for function `discord.utils.CachedSlotProperty.__get__` called with arguments: (Interaction[ClientT], type[Interaction]) [no-matching-overload] ERROR discord/app_commands/tree.py:1127:19-38: No matching overload found for function `discord.utils.CachedSlotProperty.__get__` called with arguments: (Interaction[ClientT], type[Interaction]) [no-matching-overload] -ERROR discord/app_commands/tree.py:1180:66-89: `list[TypedDict[_BooleanValueApplicationCommandInteractionDataOption] | TypedDict[_CommandGroupApplicationCommandInteractionDataOption] | TypedDict[_IntegerValueApplicationCommandInteractionDataOption] | TypedDict[_NumberValueApplicationCommandInteractionDataOption] | TypedDict[_SnowflakeValueApplicationCommandInteractionDataOption] | TypedDict[_StringValueApplicationCommandInteractionDataOption]] | object` is not assignable to `list[TypedDict[_BooleanValueApplicationCommandInteractionDataOption] | TypedDict[_CommandGroupApplicationCommandInteractionDataOption] | TypedDict[_IntegerValueApplicationCommandInteractionDataOption] | TypedDict[_NumberValueApplicationCommandInteractionDataOption] | TypedDict[_SnowflakeValueApplicationCommandInteractionDataOption] | TypedDict[_StringValueApplicationCommandInteractionDataOption]]` [bad-assignment] -ERROR discord/app_commands/tree.py:1190:31-56: `list[TypedDict[_BooleanValueApplicationCommandInteractionDataOption] | TypedDict[_CommandGroupApplicationCommandInteractionDataOption] | TypedDict[_IntegerValueApplicationCommandInteractionDataOption] | TypedDict[_NumberValueApplicationCommandInteractionDataOption] | TypedDict[_SnowflakeValueApplicationCommandInteractionDataOption] | TypedDict[_StringValueApplicationCommandInteractionDataOption]] | object` is not assignable to variable `options` with type `list[TypedDict[_BooleanValueApplicationCommandInteractionDataOption] | TypedDict[_CommandGroupApplicationCommandInteractionDataOption] | TypedDict[_IntegerValueApplicationCommandInteractionDataOption] | TypedDict[_NumberValueApplicationCommandInteractionDataOption] | TypedDict[_SnowflakeValueApplicationCommandInteractionDataOption] | TypedDict[_StringValueApplicationCommandInteractionDataOption]]` [bad-assignment] +ERROR discord/app_commands/tree.py:1180:66-89: `list[ApplicationCommandInteractionDataOption] | object` is not assignable to `list[ApplicationCommandInteractionDataOption]` [bad-assignment] +ERROR discord/app_commands/tree.py:1190:31-56: `list[ApplicationCommandInteractionDataOption] | object` is not assignable to variable `options` with type `list[ApplicationCommandInteractionDataOption]` [bad-assignment] ERROR discord/app_commands/tree.py:1216:9-32: Object of class `Interaction` has no attribute `_cs_command` [missing-attribute] -ERROR discord/app_commands/tree.py:1221:63-87: Argument `dict[@_, @_] | TypedDict[ResolvedData]` is not assignable to parameter `resolved` with type `TypedDict[ResolvedData]` in function `discord.app_commands.namespace.Namespace._get_resolved_items` [bad-argument-type] +ERROR discord/app_commands/tree.py:1221:63-87: Argument `dict[@_, @_] | ResolvedData` is not assignable to parameter `resolved` with type `ResolvedData` in function `discord.app_commands.namespace.Namespace._get_resolved_items` [bad-argument-type] ERROR discord/app_commands/tree.py:1224:48-69: `int | object | str | None` is not assignable to `int | str | None` [bad-assignment] ERROR discord/app_commands/tree.py:1273:9-32: Object of class `Interaction` has no attribute `_cs_command` [missing-attribute] -ERROR discord/app_commands/tree.py:1277:44-68: Argument `dict[@_, @_] | TypedDict[ResolvedData]` is not assignable to parameter `resolved` with type `TypedDict[ResolvedData]` in function `discord.app_commands.namespace.Namespace.__init__` [bad-argument-type] +ERROR discord/app_commands/tree.py:1277:44-68: Argument `dict[@_, @_] | ResolvedData` is not assignable to parameter `resolved` with type `ResolvedData` in function `discord.app_commands.namespace.Namespace.__init__` [bad-argument-type] ERROR discord/app_commands/tree.py:1280:9-34: Object of class `Interaction` has no attribute `_cs_namespace` [missing-attribute] ERROR discord/appinfo.py:222:45-83: `int | object` is not assignable to attribute `approximate_guild_count` with type `int` [bad-assignment] ERROR discord/appinfo.py:412:17-41: Cannot set item in `None` [unsupported-operation] @@ -96,11 +99,12 @@ ERROR discord/automod.py:171:23-96: No matching overload found for function `Aut ERROR discord/automod.py:304:32-58: Argument `list[str] | object | None` is not assignable to parameter `keyword_filter` with type `list[str] | None` in function `AutoModTrigger.__init__` [bad-argument-type] ERROR discord/automod.py:305:32-58: Argument `list[str] | object | None` is not assignable to parameter `regex_patterns` with type `list[str] | None` in function `AutoModTrigger.__init__` [bad-argument-type] ERROR discord/automod.py:306:28-50: Argument `list[str] | object | None` is not assignable to parameter `allow_list` with type `list[str] | None` in function `AutoModTrigger.__init__` [bad-argument-type] -ERROR discord/automod.py:310:64-87: Argument `list[Literal[1, 2, 3]] | list[int] | object` is not assignable to parameter `value` with type `Sequence[int]` in function `discord.flags.ArrayFlags._from_value` [bad-argument-type] +ERROR discord/automod.py:310:64-87: Argument `list[AutoModerationTriggerPresets] | list[int] | object` is not assignable to parameter `value` with type `Sequence[int]` in function `discord.flags.ArrayFlags._from_value` [bad-argument-type] ERROR discord/automod.py:310:101-123: Argument `list[str] | object | None` is not assignable to parameter `allow_list` with type `list[str] | None` in function `AutoModTrigger.__init__` [bad-argument-type] ERROR discord/automod.py:315:31-62: Argument `int | object | None` is not assignable to parameter `mention_limit` with type `int | None` in function `AutoModTrigger.__init__` [bad-argument-type] ERROR discord/automod.py:316:41-84: Argument `bool | object | None` is not assignable to parameter `mention_raid_protection` with type `bool | None` in function `AutoModTrigger.__init__` [bad-argument-type] -ERROR discord/automod.py:388:92-120: Argument `object | TypedDict[_AutoModerationTriggerMetadataKeyword] | TypedDict[_AutoModerationTriggerMetadataKeywordPreset] | None` is not assignable to parameter `data` with type `TypedDict[Empty] | TypedDict[_AutoModerationTriggerMetadataKeyword] | TypedDict[_AutoModerationTriggerMetadataKeywordPreset] | TypedDict[_AutoModerationTriggerMetadataMentionLimit] | None` in function `AutoModTrigger.from_data` [bad-argument-type] +ERROR discord/automod.py:388:92-120: Argument `object | _AutoModerationTriggerMetadataKeyword | _AutoModerationTriggerMetadataKeywordPreset | None` is not assignable to parameter `data` with type `Empty | _AutoModerationTriggerMetadataKeyword | _AutoModerationTriggerMetadataKeywordPreset | _AutoModerationTriggerMetadataMentionLimit | None` in function `AutoModTrigger.from_data` [bad-argument-type] +ERROR discord/automod.py:398:42-410:10: `dict[str, bool | dict[str, Any] | int | list[dict[str, Any]] | list[str] | str | None]` is not assignable to `_AutoModerationRuleKeyword | _AutoModerationRuleKeywordPreset | _AutoModerationRuleOther` [bad-assignment] ERROR discord/automod.py:434:20-85: No matching overload found for function `filter.__new__` called with arguments: (type[filter[_T]], None, map[CategoryChannel | ForumChannel | StageChannel | TextChannel | Thread | VoiceChannel | None]) [no-matching-overload] ERROR discord/automod.py:512:31-35: Cannot set item in `dict[str, list[dict[str, Any]]]` [unsupported-operation] ERROR discord/automod.py:515:37-53: Cannot set item in `dict[str, list[dict[str, Any]]]` [unsupported-operation] @@ -138,7 +142,8 @@ ERROR discord/client.py:782:33-787:18: No matching overload found for function ` ERROR discord/client.py:2975:83-99: Argument `int` is not assignable to parameter `owner_type` with type `Literal[1, 2]` in function `discord.http.HTTPClient.create_entitlement` [bad-argument-type] ERROR discord/components.py:213:21-36: `int` is not assignable to TypedDict key `type` with type `Literal[1]` [bad-typed-dict-key] ERROR discord/components.py:297:22-38: `int` is not assignable to TypedDict key `style` with type `Literal[1, 2, 3, 4, 5, 6]` [bad-typed-dict-key] -ERROR discord/components.py:412:40-77: `list[int]` is not assignable to TypedDict key `channel_types` with type `list[Literal[0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 15, 16]]` [bad-typed-dict-key] +ERROR discord/components.py:382:9-18: Attribute `type` of class `SelectMenu` is a read-only property and cannot be set [read-only] +ERROR discord/components.py:412:40-77: `list[int]` is not assignable to TypedDict key `channel_types` with type `list[ChannelType]` [bad-typed-dict-key] ERROR discord/components.py:512:27-31: `None` is not assignable to attribute `_emoji` with type `PartialEmoji` [bad-assignment] ERROR discord/components.py:613:21-36: `int` is not assignable to TypedDict key `type` with type `Literal[4]` [bad-typed-dict-key] ERROR discord/components.py:614:22-38: `int` is not assignable to TypedDict key `style` with type `Literal[1, 2]` [bad-typed-dict-key] @@ -150,7 +155,7 @@ ERROR discord/components.py:1196:21-36: `int` is not assignable to TypedDict key ERROR discord/components.py:1249:21-36: `int` is not assignable to TypedDict key `type` with type `Literal[14]` [bad-typed-dict-key] ERROR discord/components.py:1251:24-42: `int` is not assignable to TypedDict key `spacing` with type `Literal[1, 2]` [bad-typed-dict-key] ERROR discord/components.py:1324:21-36: `int` is not assignable to TypedDict key `type` with type `Literal[17]` [bad-typed-dict-key] -ERROR discord/components.py:1326:27-63: `list[TypedDict[ActionRow] | TypedDict[ButtonComponent] | TypedDict[ContainerComponent] | TypedDict[FileComponent] | TypedDict[FileUploadComponent] | TypedDict[LabelComponent] | TypedDict[MediaGalleryComponent] | TypedDict[SectionComponent] | TypedDict[SelectMenu] | TypedDict[SeparatorComponent] | TypedDict[TextComponent] | TypedDict[TextInput] | TypedDict[ThumbnailComponent]]` is not assignable to TypedDict key `components` with type `list[TypedDict[ActionRow] | TypedDict[ContainerComponent] | TypedDict[FileComponent] | TypedDict[MediaGalleryComponent] | TypedDict[SectionComponent] | TypedDict[SeparatorComponent] | TypedDict[TextComponent] | TypedDict[ThumbnailComponent]]` [bad-typed-dict-key] +ERROR discord/components.py:1326:27-63: `list[Component]` is not assignable to TypedDict key `components` with type `list[ContainerChildComponent]` [bad-typed-dict-key] ERROR discord/components.py:1380:21-36: `int` is not assignable to TypedDict key `type` with type `Literal[18]` [bad-typed-dict-key] ERROR discord/components.py:1444:21-36: `int` is not assignable to TypedDict key `type` with type `Literal[19]` [bad-typed-dict-key] ERROR discord/embeds.py:246:28-55: `Colour` is not assignable to attribute `_colour` with type `None` [bad-assignment] @@ -164,7 +169,7 @@ ERROR discord/emoji.py:279:32-59: Cannot set item in `dict[str, str]` [unsupport ERROR discord/enums.py:96:22-42: Expected string literal "cls" [invalid-argument] ERROR discord/enums.py:113:9-17: ClassVar `EnumMeta.__name__` overrides instance variable of the same name in parent class `type` [bad-override] ERROR discord/enums.py:960:5-9: Class member `StatusDisplayType.name` overrides parent class `Enum` in an inconsistent manner [bad-override] -ERROR discord/ext/commands/bot.py:89:33-54: `type[(TypeVar[BotT], Message) -> Awaitable[Iterable[str] | str] | Iterable[str] | str]` is not subscriptable [unsupported-operation] +ERROR discord/ext/commands/bot.py:89:33-54: `type[(TypeVar[BotT], Message) -> MaybeAwaitable]` is not subscriptable [unsupported-operation] ERROR discord/ext/commands/cog.py:229:38-43: Cannot set item in `dict[Unknown, Command[Any, Ellipsis, Any]]` [unsupported-operation] ERROR discord/ext/commands/cog.py:268:5-32: Object of class `FunctionType` has no attribute `__cog_special_method__` [missing-attribute] ERROR discord/ext/commands/cog.py:497:24-39: Object of class `FunctionType` has no attribute `__func__` [missing-attribute] @@ -185,6 +190,7 @@ ERROR discord/ext/commands/context.py:535:26-30: Argument `Literal[True]` is not ERROR discord/ext/commands/context.py:536:31-36: Argument `Literal[False]` is not assignable to parameter `send_tts_messages` with type `BoolOrNoneT` in function `discord.permissions.Permissions.update` [bad-argument-type] ERROR discord/ext/commands/context.py:783:9-15: Class member `Context.typing` overrides parent class `Messageable` in an inconsistent manner [bad-override] ERROR discord/ext/commands/context.py:847:19-44: No matching overload found for function `discord.utils.CachedSlotProperty.__get__` called with arguments: (Interaction[BotT], type[Interaction]) [no-matching-overload] +ERROR discord/ext/commands/context.py:1102:38-1119:14: No matching overload found for function `discord.abc.Messageable.send` called with arguments: (content=str | None, tts=bool, embed=Embed | None, embeds=Sequence[Embed] | None, file=File | None, files=Sequence[File] | None, stickers=Sequence[GuildSticker | StickerItem] | None, delete_after=float | None, nonce=int | str | None, allowed_mentions=AllowedMentions | None, reference=Message | MessageReference | PartialMessage | None, mention_author=bool | None, view=BaseView | None, suppress_embeds=bool, silent=bool, poll=Poll | None) [no-matching-overload] ERROR discord/ext/commands/context.py:1137:12-37: No matching overload found for function `discord.utils.CachedSlotProperty.__get__` called with arguments: (Interaction[BotT], type[Interaction]) [no-matching-overload] ERROR discord/ext/commands/context.py:1138:25-50: No matching overload found for function `discord.utils.CachedSlotProperty.__get__` called with arguments: (Interaction[BotT], type[Interaction]) [no-matching-overload] ERROR discord/ext/commands/context.py:1140:30-55: No matching overload found for function `discord.utils.CachedSlotProperty.__get__` called with arguments: (Interaction[BotT], type[Interaction]) [no-matching-overload] @@ -217,10 +223,10 @@ ERROR discord/ext/commands/core.py:1261:31-45: Argument `str` is not assignable ERROR discord/ext/commands/core.py:1263:31-42: Argument `str` is not assignable to parameter `object` with type `LiteralString` in function `list.append` [bad-argument-type] ERROR discord/ext/commands/core.py:1265:31-42: Argument `str` is not assignable to parameter `object` with type `LiteralString` in function `list.append` [bad-argument-type] ERROR discord/ext/commands/core.py:1312:58-71: Object of class `NoneType` has no attribute `cog_check` [missing-attribute] -ERROR discord/ext/commands/core.py:1502:9-16: Implementation signature `(self: Self@GroupMixin, name: str = ..., cls: type[Command[Any, Ellipsis, Any]] = ..., *args: Any, **kwargs: Unpack[TypedDict[_CommandDecoratorKwargs]]) -> Any` does not accept all arguments that overload signature `(self: GroupMixin[CogT], name: str = ..., *args: Any, **kwargs: Unpack[TypedDict[_CommandDecoratorKwargs]]) -> [ContextT, P, T](((CogT, ContextT, ParamSpec(P)) -> Coroutine[Any, Any, T]) | ((ContextT, ParamSpec(P)) -> Coroutine[Any, Any, T])) -> Command[CogT, P, T]` accepts [inconsistent-overload] -ERROR discord/ext/commands/core.py:1552:29-66: No matching overload found for function `command` called with arguments: (*tuple[Any, ...], name=str, cls=type[Command[Any, Ellipsis, Any]], **TypedDict[_CommandDecoratorKwargs]) [no-matching-overload] -ERROR discord/ext/commands/core.py:1559:9-14: Implementation signature `(self: Self@GroupMixin, name: str = ..., cls: type[Group[Any, Ellipsis, Any]] = ..., *args: Any, **kwargs: Unpack[TypedDict[_GroupDecoratorKwargs]]) -> Any` does not accept all arguments that overload signature `(self: GroupMixin[CogT], name: str = ..., *args: Any, **kwargs: Unpack[TypedDict[_GroupDecoratorKwargs]]) -> [ContextT, P, T](((CogT, ContextT, ParamSpec(P)) -> Coroutine[Any, Any, T]) | ((ContextT, ParamSpec(P)) -> Coroutine[Any, Any, T])) -> Group[CogT, P, T]` accepts [inconsistent-overload] -ERROR discord/ext/commands/core.py:1609:27-64: No matching overload found for function `group` called with arguments: (*tuple[Any, ...], name=str, cls=type[Group[Any, Ellipsis, Any]], **TypedDict[_GroupDecoratorKwargs]) [no-matching-overload] +ERROR discord/ext/commands/core.py:1502:9-16: Implementation signature `(self: Self@GroupMixin, name: str = ..., cls: type[Command[Any, Ellipsis, Any]] = ..., *args: Any, **kwargs: Unpack[_CommandDecoratorKwargs]) -> Any` does not accept all arguments that overload signature `(self: GroupMixin[CogT], name: str = ..., *args: Any, **kwargs: Unpack[_CommandDecoratorKwargs]) -> [ContextT, P, T](((CogT, ContextT, ParamSpec(P)) -> Coroutine[Any, Any, T]) | ((ContextT, ParamSpec(P)) -> Coroutine[Any, Any, T])) -> Command[CogT, P, T]` accepts [inconsistent-overload] +ERROR discord/ext/commands/core.py:1552:29-66: No matching overload found for function `command` called with arguments: (*tuple[Any, ...], name=str, cls=type[Command[Any, Ellipsis, Any]], **_CommandDecoratorKwargs) [no-matching-overload] +ERROR discord/ext/commands/core.py:1559:9-14: Implementation signature `(self: Self@GroupMixin, name: str = ..., cls: type[Group[Any, Ellipsis, Any]] = ..., *args: Any, **kwargs: Unpack[_GroupDecoratorKwargs]) -> Any` does not accept all arguments that overload signature `(self: GroupMixin[CogT], name: str = ..., *args: Any, **kwargs: Unpack[_GroupDecoratorKwargs]) -> [ContextT, P, T](((CogT, ContextT, ParamSpec(P)) -> Coroutine[Any, Any, T]) | ((ContextT, ParamSpec(P)) -> Coroutine[Any, Any, T])) -> Group[CogT, P, T]` accepts [inconsistent-overload] +ERROR discord/ext/commands/core.py:1609:27-64: No matching overload found for function `group` called with arguments: (*tuple[Any, ...], name=str, cls=type[Group[Any, Ellipsis, Any]], **_GroupDecoratorKwargs) [no-matching-overload] ERROR discord/ext/commands/core.py:1735:13-21: Implementation signature `(self: Self@_CommandDecorator, func: (...) -> Coroutine[Any, Any, T], /) -> Any` does not accept all arguments that overload signature `(self: Self@_CommandDecorator, func: (CogT, ContextT, ParamSpec(P)) -> Coroutine[Any, Any, T], /) -> Command[CogT, P, T]` accepts [inconsistent-overload] ERROR discord/ext/commands/core.py:1738:13-21: Implementation signature `(self: Self@_CommandDecorator, func: (...) -> Coroutine[Any, Any, T], /) -> Any` does not accept all arguments that overload signature `(self: Self@_CommandDecorator, func: (ContextT, ParamSpec(P)) -> Coroutine[Any, Any, T], /) -> Command[None, P, T]` accepts [inconsistent-overload] ERROR discord/ext/commands/core.py:1744:13-21: Implementation signature `(self: Self@_GroupDecorator, func: (...) -> Coroutine[Any, Any, T], /) -> Any` does not accept all arguments that overload signature `(self: Self@_GroupDecorator, func: (CogT, ContextT, ParamSpec(P)) -> Coroutine[Any, Any, T], /) -> Group[CogT, P, T]` accepts [inconsistent-overload] @@ -250,15 +256,6 @@ ERROR discord/ext/commands/core.py:2655:31-35: Argument `((CogT, ContextT) -> Co ERROR discord/ext/commands/core.py:2657:13-34: Object of class `FunctionType` has no attribute `__after_invoke__` [missing-attribute] ERROR discord/ext/commands/flags.py:465:32-98: Expected a type form, got instance of `tuple[Unknown, ...]` [not-a-type] ERROR discord/ext/commands/help.py:248:5-38: Object of class `FunctionType` has no attribute `__help_command_not_overridden__` [missing-attribute] -ERROR discord/ext/commands/help.py:262:14-22: Class member `_HelpCommandImpl.callback` overrides parent class `Command` in an inconsistent manner [bad-override] -ERROR discord/ext/commands/help.py:262:25-50: `BoundMethod[HelpCommand, [BotT](self: HelpCommand, ctx: Context[BotT], /, *, command: str | None = None) -> Coroutine[Unknown, Unknown, None]]` is not assignable to attribute `callback` with type `(self: Self@_HelpCommandImpl, function: ((Context[Any], ...) -> Coroutine[Any, Any, Unknown]) | ((Unknown, Context[Any], ...) -> Coroutine[Any, Any, Unknown])) -> None` [bad-assignment] -ERROR discord/ext/commands/help.py:270:33-41: `BoundMethod[HelpCommand, [BotT](self: HelpCommand, ctx: Context[BotT], error: CommandError, /) -> Coroutine[Unknown, Unknown, None]]` is not assignable to attribute `on_error` with type `Never` [bad-assignment] -ERROR discord/ext/commands/help.py:278:20-24: `None` is not assignable to attribute `cog` with type `(self: Self@_HelpCommandImpl, value: Unknown) -> None` [bad-assignment] -ERROR discord/ext/commands/help.py:311:20-23: `Cog` is not assignable to attribute `cog` with type `(self: Self@_HelpCommandImpl, value: Unknown) -> None` [bad-assignment] -ERROR discord/ext/commands/help.py:319:9-25: Object of class `FunctionType` has no attribute `get_commands` [missing-attribute] -ERROR discord/ext/commands/help.py:320:9-26: Object of class `FunctionType` has no attribute `walk_commands` [missing-attribute] -ERROR discord/ext/commands/help.py:321:20-24: `None` is not assignable to attribute `cog` with type `(self: Self@_HelpCommandImpl, value: Unknown) -> None` [bad-assignment] -ERROR discord/ext/commands/help.py:559:16-38: Returned type `(self: _HelpCommandImpl, value: Unknown) -> None` is not assignable to declared return type `Cog | None` [bad-return] ERROR discord/ext/commands/help.py:1255:9-24: Class member `DefaultHelpCommand.get_destination` overrides parent class `HelpCommand` in an inconsistent manner [bad-override] ERROR discord/ext/commands/help.py:1264:15-35: Class member `DefaultHelpCommand.prepare_help_command` overrides parent class `HelpCommand` in an inconsistent manner [bad-override] ERROR discord/ext/commands/help.py:1520:9-24: Class member `MinimalHelpCommand.get_destination` overrides parent class `HelpCommand` in an inconsistent manner [bad-override] @@ -331,7 +328,7 @@ ERROR discord/guild.py:1908:32-37: Cannot set item in `dict[str, int]` [unsuppor ERROR discord/guild.py:1932:53-113: Cannot set item in `dict[str, int]` [unsupported-operation] ERROR discord/guild.py:1934:53-122: Cannot set item in `dict[str, int]` [unsupported-operation] ERROR discord/guild.py:1947:41-78: Cannot set item in `dict[str, int]` [unsupported-operation] -ERROR discord/guild.py:1961:18-22: Argument `TypedDict[CategoryChannel] | TypedDict[ForumChannel] | TypedDict[MediaChannel] | TypedDict[NewsChannel] | TypedDict[StageChannel] | TypedDict[TextChannel] | TypedDict[ThreadChannel] | TypedDict[VoiceChannel]` is not assignable to parameter `data` with type `TypedDict[ForumChannel] | TypedDict[MediaChannel]` in function `discord.channel.ForumChannel.__init__` [bad-argument-type] +ERROR discord/guild.py:1961:18-22: Argument `CategoryChannel | ForumChannel | MediaChannel | NewsChannel | StageChannel | TextChannel | ThreadChannel | VoiceChannel` is not assignable to parameter `data` with type `ForumChannel | MediaChannel` in function `discord.channel.ForumChannel.__init__` [bad-argument-type] ERROR discord/guild.py:3375:23-95: `EntityType | Any | None` is not assignable to variable `entity_type` with type `EntityType` [bad-assignment] ERROR discord/guild.py:3389:38-55: Cannot set item in `dict[str, str]` [unsupported-operation] ERROR discord/guild.py:3400:40-59: Cannot set item in `dict[str, str]` [unsupported-operation] @@ -345,24 +342,24 @@ ERROR discord/guild.py:4728:32-78: No matching overload found for function `disc ERROR discord/guild.py:4963:18-61: Argument `int | None` is not assignable to parameter `mode` with type `Literal[0, 1] | None` in function `discord.http.HTTPClient.edit_guild_onboarding` [bad-argument-type] ERROR discord/http.py:113:12-44: Cannot index into `reify` [bad-index] ERROR discord/http.py:113:12-44: Cannot index into `reify[CIMultiDictProxy[str]]` [bad-index] -ERROR discord/http.py:190:34-46: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:192:34-38: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:196:37-57: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:207:28-38: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:208:36-40: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:211:40-57: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:215:38-46: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:219:22-25: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:221:33-48: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:223:31-39: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:226:28-39: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:229:34-45: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:233:43-102: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:235:43-69: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:237:39-74: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:241:43-70: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] -ERROR discord/http.py:242:9-52: Cannot set item in `list[TypedDict[Embed] | Unknown]` [unsupported-operation] -ERROR discord/http.py:263:39-51: Cannot set item in `dict[str, list[TypedDict[Embed] | Unknown]]` [unsupported-operation] +ERROR discord/http.py:190:34-46: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:192:34-38: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:196:37-57: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:207:28-38: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:208:36-40: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:211:40-57: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:215:38-46: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:219:22-25: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:221:33-48: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:223:31-39: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:226:28-39: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:229:34-45: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:233:43-102: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:235:43-69: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:237:39-74: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:241:43-70: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] +ERROR discord/http.py:242:9-52: Cannot set item in `list[Embed | Unknown]` [unsupported-operation] +ERROR discord/http.py:263:39-51: Cannot set item in `dict[str, list[Embed | Unknown]]` [unsupported-operation] ERROR discord/http.py:282:17-287:18: Argument `dict[str, BufferedIOBase | str]` is not assignable to parameter `object` with type `dict[str, str]` in function `list.append` [bad-argument-type] ERROR discord/http.py:399:26-37: Object of class `reify` has no attribute `get` [missing-attribute] ERROR discord/http.py:402:38-49: Object of class `reify` has no attribute `get` [missing-attribute] @@ -378,7 +375,7 @@ ERROR discord/http.py:566:53-61: Unpacked keyword argument `BasicAuth | bool | d ERROR discord/http.py:566:53-61: Unpacked keyword argument `BasicAuth | bool | dict[str, str] | float | int | str | None` is not assignable to parameter `autoping` with type `bool` in function `aiohttp.client.ClientSession.ws_connect` [bad-argument-type] ERROR discord/http.py:566:53-61: Unpacked keyword argument `BasicAuth | bool | dict[str, str] | float | int | str | None` is not assignable to parameter `heartbeat` with type `float | None` in function `aiohttp.client.ClientSession.ws_connect` [bad-argument-type] ERROR discord/http.py:566:53-61: Unpacked keyword argument `BasicAuth | bool | dict[str, str] | float | int | str | None` is not assignable to parameter `origin` with type `str | None` in function `aiohttp.client.ClientSession.ws_connect` [bad-argument-type] -ERROR discord/http.py:566:53-61: Unpacked keyword argument `BasicAuth | bool | dict[str, str] | float | int | str | None` is not assignable to parameter `params` with type `Mapping[str, Sequence[float | int | str] | float | int | str] | Sequence[tuple[str, Sequence[float | int | str] | float | int | str]] | str | None` in function `aiohttp.client.ClientSession.ws_connect` [bad-argument-type] +ERROR discord/http.py:566:53-61: Unpacked keyword argument `BasicAuth | bool | dict[str, str] | float | int | str | None` is not assignable to parameter `params` with type `Mapping[str, QueryVariable] | Sequence[tuple[str, QueryVariable]] | str | None` in function `aiohttp.client.ClientSession.ws_connect` [bad-argument-type] ERROR discord/http.py:566:53-61: Unpacked keyword argument `BasicAuth | bool | dict[str, str] | float | int | str | None` is not assignable to parameter `headers` with type `CIMultiDict[str] | CIMultiDictProxy[str] | Iterable[tuple[istr | str, str]] | Mapping[istr, str] | Mapping[str, str] | None` in function `aiohttp.client.ClientSession.ws_connect` [bad-argument-type] ERROR discord/http.py:566:53-61: Unpacked keyword argument `BasicAuth | bool | dict[str, str] | float | int | str | None` is not assignable to parameter `proxy` with type `URL | str | None` in function `aiohttp.client.ClientSession.ws_connect` [bad-argument-type] ERROR discord/http.py:566:53-61: Unpacked keyword argument `BasicAuth | bool | dict[str, str] | float | int | str | None` is not assignable to parameter `ssl` with type `Fingerprint | SSLContext | bool` in function `aiohttp.client.ClientSession.ws_connect` [bad-argument-type] @@ -397,16 +394,16 @@ ERROR discord/http.py:801:44-52: Unpacked keyword argument `str` is not assignab ERROR discord/http.py:1075:31-36: Cannot set item in `dict[str, str]` [unsupported-operation] ERROR discord/http.py:1866:41-55: Cannot set item in `dict[str, bool | int]` [unsupported-operation] ERROR discord/http.py:1869:48-74: Cannot set item in `dict[str, bool | int]` [unsupported-operation] -ERROR discord/http.py:2574:46-65: Cannot set item in `dict[str, list[TypedDict[Prompt]]]` [unsupported-operation] -ERROR discord/http.py:2577:34-41: Cannot set item in `dict[str, list[TypedDict[Prompt]]]` [unsupported-operation] -ERROR discord/http.py:2580:31-35: Cannot set item in `dict[str, list[TypedDict[Prompt]]]` [unsupported-operation] +ERROR discord/http.py:2574:46-65: Cannot set item in `dict[str, list[Prompt]]` [unsupported-operation] +ERROR discord/http.py:2577:34-41: Cannot set item in `dict[str, list[Prompt]]` [unsupported-operation] +ERROR discord/http.py:2580:31-35: Cannot set item in `dict[str, list[Prompt]]` [unsupported-operation] ERROR discord/integrations.py:200:9-19: Class member `StreamIntegration._from_data` overrides parent class `Integration` in an inconsistent manner [bad-override] ERROR discord/integrations.py:359:9-19: Class member `BotIntegration._from_data` overrides parent class `Integration` in an inconsistent manner [bad-override] -ERROR discord/interactions.py:214:48-64: `object | TypedDict[ButtonMessageComponentInteractionData] | TypedDict[ChatInputApplicationCommandInteractionData] | TypedDict[MessageApplicationCommandInteractionData] | TypedDict[ModalSubmitInteractionData] | TypedDict[SelectMessageComponentInteractionData] | TypedDict[UserApplicationCommandInteractionData] | None` is not assignable to attribute `data` with type `TypedDict[ButtonMessageComponentInteractionData] | TypedDict[ChatInputApplicationCommandInteractionData] | TypedDict[MessageApplicationCommandInteractionData] | TypedDict[ModalSubmitInteractionData] | TypedDict[SelectMessageComponentInteractionData] | TypedDict[UserApplicationCommandInteractionData] | None` [bad-assignment] +ERROR discord/interactions.py:214:48-64: `object | ButtonMessageComponentInteractionData | ChatInputApplicationCommandInteractionData | MessageApplicationCommandInteractionData | ModalSubmitInteractionData | SelectMessageComponentInteractionData | UserApplicationCommandInteractionData | None` is not assignable to attribute `data` with type `ButtonMessageComponentInteractionData | ChatInputApplicationCommandInteractionData | MessageApplicationCommandInteractionData | ModalSubmitInteractionData | SelectMessageComponentInteractionData | UserApplicationCommandInteractionData | None` [bad-assignment] ERROR discord/interactions.py:220:64-102: Type `object` is not iterable [not-iterable] ERROR discord/interactions.py:250:28-72: `CategoryChannel | ForumChannel | Guild | StageChannel | TextChannel | Thread | VoiceChannel | None` is not assignable to attribute `channel` with type `CategoryChannel | DMChannel | ForumChannel | GroupChannel | StageChannel | TextChannel | Thread | VoiceChannel | None` [bad-assignment] ERROR discord/interactions.py:307:16-108: Returned type `ConnectionState[ClientT] | Guild | Any | None` is not assignable to declared return type `Guild | None` [bad-return] -ERROR discord/interactions.py:349:32-56: Argument `dict[@_, @_] | TypedDict[ResolvedData]` is not assignable to parameter `resolved` with type `TypedDict[ResolvedData]` in function `discord.app_commands.namespace.Namespace.__init__` [bad-argument-type] +ERROR discord/interactions.py:349:32-56: Argument `dict[@_, @_] | ResolvedData` is not assignable to parameter `resolved` with type `ResolvedData` in function `discord.app_commands.namespace.Namespace.__init__` [bad-argument-type] ERROR discord/interactions.py:744:27-78: Argument `_InteractionMessageState` is not assignable to parameter `state` with type `ConnectionState[Client]` in function `discord.message.Message.__init__` [bad-argument-type] ERROR discord/interactions.py:1427:5-11: Class member `InteractionMessage._state` overrides parent class `Message` in an inconsistent manner [bad-override] ERROR discord/interactions.py:1430:15-19: Class member `InteractionMessage.edit` overrides parent class `Message` in an inconsistent manner [bad-override] @@ -424,7 +421,7 @@ ERROR discord/mentions.py:134:36-40: Cannot set item in `dict[str, list[int]]` [ ERROR discord/mentions.py:136:25-30: Cannot set item in `dict[str, list[int]]` [unsupported-operation] ERROR discord/message.py:242:37-54: `object | None` is not assignable to attribute `title` with type `str | None` [bad-assignment] ERROR discord/message.py:713:16-73: Returned type `ConnectionState[Client] | Message | None` is not assignable to declared return type `Message | None` [bad-return] -ERROR discord/message.py:2223:92-121: Argument `object | None` is not assignable to parameter `message_snapshots` with type `list[dict[Literal['message'], TypedDict[MessageSnapshot]]] | None` in function `MessageSnapshot._from_value` [bad-argument-type] +ERROR discord/message.py:2223:92-121: Argument `object | None` is not assignable to parameter `message_snapshots` with type `list[dict[Literal['message'], MessageSnapshot]] | None` in function `MessageSnapshot._from_value` [bad-argument-type] ERROR discord/message.py:2404:30-33: Invalid key for TypedDict `Message`, got `str` [bad-typed-dict-key] ERROR discord/message.py:2558:20-87: No matching overload found for function `filter.__new__` called with arguments: (type[filter[_T]], None, map[CategoryChannel | ForumChannel | StageChannel | TextChannel | Thread | VoiceChannel | None]) [no-matching-overload] ERROR discord/onboarding.py:181:20-78: No matching overload found for function `filter.__new__` called with arguments: (type[filter[_T]], None, map[CategoryChannel | ForumChannel | StageChannel | TextChannel | Thread | VoiceChannel | None]) [no-matching-overload] @@ -468,7 +465,7 @@ ERROR discord/soundboard.py:208:9-16: Class member `SoundboardSound._update` ove ERROR discord/stage_instance.py:168:40-59: Cannot set item in `dict[str, str]` [unsupported-operation] ERROR discord/state.py:265:40-90: `Any | None` is not assignable to attribute `raw_presence_flag` with type `bool` [bad-assignment] ERROR discord/state.py:551:16-98: Returned type `tuple[CategoryChannel | DMChannel | ForumChannel | Guild | PartialMessageable | StageChannel | TextChannel | Thread | VoiceChannel, Guild | None]` is not assignable to declared return type `tuple[CategoryChannel | ForumChannel | PartialMessageable | PrivateChannel | StageChannel | TextChannel | Thread | VoiceChannel, Guild | None]` [bad-return] -ERROR discord/state.py:832:81-89: Argument `dict[@_, @_] | TypedDict[ResolvedData]` is not assignable to parameter `resolved` with type `TypedDict[ResolvedData]` in function `discord.ui.view.ViewStore.dispatch_modal` [bad-argument-type] +ERROR discord/state.py:832:81-89: Argument `dict[@_, @_] | ResolvedData` is not assignable to parameter `resolved` with type `ResolvedData` in function `discord.ui.view.ViewStore.dispatch_modal` [bad-argument-type] ERROR discord/sticker.py:200:14-20: Class member `StickerItem._state` overrides parent class `_StickerTag` in an inconsistent manner [bad-override] ERROR discord/sticker.py:271:14-20: Class member `Sticker._state` overrides parent class `_StickerTag` in an inconsistent manner [bad-override] ERROR discord/sticker.py:335:9-19: Class member `StandardSticker._from_data` overrides parent class `Sticker` in an inconsistent manner [bad-override] @@ -505,12 +502,9 @@ ERROR discord/types/interactions.py:221:5-9: Class member `ModalSubmitFileUpload ERROR discord/types/interactions.py:237:5-9: Class member `ModalSubmitTextDisplayInteractionData.type` overrides parent class `ComponentBase` in an inconsistent manner [bad-override] ERROR discord/types/interactions.py:242:5-9: Class member `ModalSubmitLabelInteractionData.type` overrides parent class `ComponentBase` in an inconsistent manner [bad-override] ERROR discord/ui/action_row.py:122:45-78: `ClassVar` arguments may not contain any type variables [invalid-annotation] -ERROR discord/ui/action_row.py:140:14-16: Class member `ActionRow.id` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/action_row.py:140:19-21: `int | None` is not assignable to attribute `id` with type `(self: Self@ActionRow, value: int | None) -> None` [bad-assignment] ERROR discord/ui/action_row.py:154:9-42: Generic attribute `__action_row_children_items__` of class `ActionRow` is not visible on the class [no-access] ERROR discord/ui/action_row.py:163:26-56: Object of class `FunctionType` has no attribute `__discord_ui_model_type__` [missing-attribute] ERROR discord/ui/action_row.py:163:59-91: Object of class `FunctionType` has no attribute `__discord_ui_model_kwargs__` [missing-attribute] -ERROR discord/ui/action_row.py:347:26-33: Cannot set item in `dict[str, int | list[Unknown]]` [unsupported-operation] ERROR discord/ui/action_row.py:415:30-41: Default `type[Select[Any]]` is not assignable to parameter `cls` with type `type[SelectT]` [bad-function-definition] ERROR discord/ui/action_row.py:430:34-49: Default `type[UserSelect[Any]]` is not assignable to parameter `cls` with type `type[UserSelectT]` [bad-function-definition] ERROR discord/ui/action_row.py:446:34-49: Default `type[RoleSelect[Any]]` is not assignable to parameter `cls` with type `type[RoleSelectT]` [bad-function-definition] @@ -518,22 +512,17 @@ ERROR discord/ui/action_row.py:462:37-55: Default `type[ChannelSelect[Any]]` is ERROR discord/ui/action_row.py:478:41-63: Default `type[MentionableSelect[Any]]` is not assignable to parameter `cls` with type `type[MentionableSelectT]` [bad-function-definition] ERROR discord/ui/action_row.py:493:34-45: Default `type[Select[Any]]` is not assignable to parameter `cls` with type `type[BaseSelectT]` [bad-function-definition] ERROR discord/ui/action_row.py:597:9-23: Class member `ActionRow.from_component` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/button.py:162:14-17: Class member `Button.row` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/button.py:162:20-23: `int | None` is not assignable to attribute `row` with type `(self: Self@Button, value: int | None) -> None` [bad-assignment] ERROR discord/ui/button.py:259:9-23: Class member `Button.from_component` overrides parent class `Item` in an inconsistent manner [bad-param-name-override] ERROR discord/ui/button.py:276:9-26: Class member `Button.to_component_dict` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/button.py:287:9-27: Class member `Button._refresh_component` overrides parent class `Item` in an inconsistent manner [bad-param-name-override] ERROR discord/ui/button.py:376:9-39: Object of class `FunctionType` has no attribute `__discord_ui_model_type__` [missing-attribute] ERROR discord/ui/button.py:377:9-41: Object of class `FunctionType` has no attribute `__discord_ui_model_kwargs__` [missing-attribute] ERROR discord/ui/container.py:109:44-100: `ClassVar` arguments may not contain any type variables [invalid-annotation] -ERROR discord/ui/container.py:132:14-16: Class member `Container.id` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/container.py:132:19-21: `int | None` is not assignable to attribute `id` with type `(self: Self@Container, value: int | None) -> None` [bad-assignment] ERROR discord/ui/container.py:151:30-59: Object of class `FunctionType` has no attribute `__discord_ui_model_type__` [missing-attribute] ERROR discord/ui/container.py:151:62-93: Object of class `FunctionType` has no attribute `__discord_ui_model_kwargs__` [missing-attribute] ERROR discord/ui/container.py:160:17-54: Object of class `NoneType` has no attribute `_children` [missing-attribute] ERROR discord/ui/container.py:177:9-41: Generic attribute `__container_children_items__` of class `Container` is not visible on the class [no-access] ERROR discord/ui/container.py:179:9-21: Class member `Container._update_view` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/container.py:256:26-33: Cannot set item in `dict[str, bool | int | list[dict[str, Any]] | None]` [unsupported-operation] ERROR discord/ui/container.py:260:9-23: Class member `Container.from_component` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/file.py:162:9-23: Class member `File.from_component` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/file_upload.py:172:9-26: Class member `FileUpload.to_component_dict` overrides parent class `Item` in an inconsistent manner [bad-override] @@ -541,23 +530,14 @@ ERROR discord/ui/file_upload.py:175:9-27: Class member `FileUpload._refresh_comp ERROR discord/ui/file_upload.py:178:9-23: Class member `FileUpload._handle_submit` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/file_upload.py:181:59-89: `in` is not supported between `str` and `object` [not-iterable] ERROR discord/ui/file_upload.py:184:9-23: Class member `FileUpload.from_component` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/label.py:100:14-16: Class member `Label.id` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/label.py:100:19-21: `int | None` is not assignable to attribute `id` with type `(self: Self@Label, value: int | None) -> None` [bad-assignment] ERROR discord/ui/label.py:112:9-26: Class member `Label.to_component_dict` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/label.py:114:21-46: `int` is not assignable to TypedDict key `type` with type `Literal[18]` [bad-typed-dict-key] -ERROR discord/ui/label.py:121:29-36: `(self: Self@Label, value: int | None) -> None` is not assignable to TypedDict key `id` with type `int` [bad-typed-dict-key] ERROR discord/ui/label.py:125:9-23: Class member `Label.from_component` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/media_gallery.py:259:9-23: Class member `MediaGallery.from_component` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/modal.py:159:15-23: Class member `Modal.on_error` overrides parent class `BaseView` in an inconsistent manner [bad-override] ERROR discord/ui/modal.py:176:9-17: Class member `Modal._refresh` overrides parent class `BaseView` in an inconsistent manner [bad-param-name-override] ERROR discord/ui/modal.py:202:15-30: Class member `Modal._scheduled_task` overrides parent class `BaseView` in an inconsistent manner [bad-param-name-override] -ERROR discord/ui/section.py:87:14-16: Class member `Section.id` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/section.py:87:19-21: `int | None` is not assignable to attribute `id` with type `(self: Self@Section, value: int | None) -> None` [bad-assignment] ERROR discord/ui/section.py:251:9-23: Class member `Section.from_component` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/section.py:256:19-31: `int | None` is not assignable to attribute `id` with type `(self: Section[Unknown], value: int | None) -> None` [bad-assignment] -ERROR discord/ui/section.py:275:26-33: Cannot set item in `dict[str, dict[str, Any] | int | list[dict[str, Any]]]` [unsupported-operation] -ERROR discord/ui/select.py:270:14-17: Class member `BaseSelect.row` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/select.py:270:20-23: `int | None` is not assignable to attribute `row` with type `(self: Self@BaseSelect, value: int | None) -> None` [bad-assignment] ERROR discord/ui/select.py:363:9-26: Class member `BaseSelect.to_component_dict` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/select.py:366:9-27: Class member `BaseSelect._refresh_component` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/select.py:369:9-23: Class member `BaseSelect._handle_submit` overrides parent class `Item` in an inconsistent manner [bad-override] @@ -580,20 +560,13 @@ ERROR discord/ui/select.py:1232:13-45: Object of class `FunctionType` has no att ERROR discord/ui/select.py:1234:13-45: Object of class `FunctionType` has no attribute `__discord_ui_model_kwargs__` [missing-attribute] ERROR discord/ui/select.py:1250:13-45: Object of class `FunctionType` has no attribute `__discord_ui_model_kwargs__` [missing-attribute] ERROR discord/ui/separator.py:129:9-23: Class member `Separator.from_component` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/text_display.py:64:14-16: Class member `TextDisplay.id` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/text_display.py:64:19-21: `int | None` is not assignable to attribute `id` with type `(self: Self@TextDisplay, value: int | None) -> None` [bad-assignment] -ERROR discord/ui/text_display.py:72:26-33: Cannot set item in `dict[str, int | str]` [unsupported-operation] ERROR discord/ui/text_display.py:87:9-23: Class member `TextDisplay.from_component` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/text_input.py:148:14-17: Class member `TextInput.row` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/text_input.py:148:20-23: `int | None` is not assignable to attribute `row` with type `(self: Self@TextInput, value: int | None) -> None` [bad-assignment] WARN discord/ui/text_input.py:190:6-11: `TextInput.label` is deprecated [deprecated] WARN discord/ui/text_input.py:190:6-18: `TextInput.label` is deprecated [deprecated] ERROR discord/ui/text_input.py:249:9-26: Class member `TextInput.to_component_dict` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/text_input.py:252:9-27: Class member `TextInput._refresh_component` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/text_input.py:255:9-23: Class member `TextInput._refresh_state` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/text_input.py:259:9-23: Class member `TextInput.from_component` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/thumbnail.py:97:14-16: Class member `Thumbnail.id` overrides parent class `Item` in an inconsistent manner [bad-override] -ERROR discord/ui/thumbnail.py:97:19-21: `int | None` is not assignable to attribute `id` with type `(self: Self@Thumbnail, value: int | None) -> None` [bad-assignment] ERROR discord/ui/thumbnail.py:138:9-23: Class member `Thumbnail.from_component` overrides parent class `Item` in an inconsistent manner [bad-override] ERROR discord/ui/view.py:246:30-59: Object of class `FunctionType` has no attribute `__discord_ui_model_type__` [missing-attribute] ERROR discord/ui/view.py:246:62-93: Object of class `FunctionType` has no attribute `__discord_ui_model_kwargs__` [missing-attribute] @@ -627,9 +600,9 @@ ERROR discord/webhook/async_.py:634:9-21: Cannot set item in `None` [unsupported ERROR discord/webhook/async_.py:643:17-648:18: Argument `dict[str, BufferedIOBase | str]` is not assignable to parameter `object` with type `dict[str, str]` in function `list.append` [bad-argument-type] ERROR discord/webhook/async_.py:803:5-11: Class member `WebhookMessage._state` overrides parent class `Message` in an inconsistent manner [bad-override] ERROR discord/webhook/async_.py:805:15-19: Class member `WebhookMessage.edit` overrides parent class `Message` in an inconsistent manner [bad-override] -ERROR discord/webhook/async_.py:1013:57-71: Argument `object` is not assignable to parameter `data` with type `TypedDict[PartialChannel]` in function `PartialWebhookChannel.__init__` [bad-argument-type] +ERROR discord/webhook/async_.py:1013:57-71: Argument `object` is not assignable to parameter `data` with type `PartialChannel` in function `PartialWebhookChannel.__init__` [bad-argument-type] ERROR discord/webhook/async_.py:1015:64-78: `PartialWebhookChannel | object | None` is not assignable to attribute `source_channel` with type `PartialWebhookChannel | None` [bad-assignment] -ERROR discord/webhook/async_.py:1019:53-65: Argument `object` is not assignable to parameter `data` with type `TypedDict[SourceGuild]` in function `PartialWebhookGuild.__init__` [bad-argument-type] +ERROR discord/webhook/async_.py:1019:53-65: Argument `object` is not assignable to parameter `data` with type `SourceGuild` in function `PartialWebhookGuild.__init__` [bad-argument-type] ERROR discord/webhook/async_.py:1021:60-72: `PartialWebhookGuild | object | None` is not assignable to attribute `source_guild` with type `PartialWebhookGuild | None` [bad-assignment] ERROR discord/webhook/async_.py:1042:16-69: Returned type `ConnectionState[Client] | Guild | _WebhookState | None` is not assignable to declared return type `Guild | None` [bad-return] ERROR discord/webhook/async_.py:1528:31-70: Cannot set item in `dict[str, str]` [unsupported-operation] @@ -647,4 +620,4 @@ ERROR discord/welcome_screen.py:104:33-48: Object of class `_EmojiTag` has no at ERROR discord/welcome_screen.py:211:37-48: Cannot set item in `dict[str, list[Unknown]]` [unsupported-operation] ERROR discord/welcome_screen.py:214:33-40: Cannot set item in `dict[str, list[Unknown]]` [unsupported-operation] INFO Checking project configured at `/pyrefly.toml` - INFO 644 errors (522 suppressed) + INFO 617 errors (519 suppressed) diff --git a/scripts/ty_benchmark/snapshots/discord.py_mypy.txt b/scripts/ty_benchmark/snapshots/discord.py_mypy.txt index f0cca2f6fa..2475975379 100644 --- a/scripts/ty_benchmark/snapshots/discord.py_mypy.txt +++ b/scripts/ty_benchmark/snapshots/discord.py_mypy.txt @@ -698,9 +698,9 @@ discord/abc.py:687: error: Incompatible types in assignment (expression has type discord/abc.py:694: error: Incompatible return value type (got "Dict[Optional[Role], PermissionOverwrite]", expected "Dict[Union[Role, Member, Object], PermissionOverwrite]") [return-value] discord/abc.py:1031: error: Argument 5 to "edit_channel_permissions" of "HTTPClient" has incompatible type "int"; expected "Literal[0, 1]" [arg-type] discord/abc.py:1269: error: Unexpected keyword argument "parent_id" for "update" of "TypedDict" [call-arg] -/venv/lib/python3.8/site-packages/mypy/typeshed/stdlib/typing.pyi:960: note: "update" of "TypedDict" defined here +_/venv/lib/python3.8/site-packages/mypy/typeshed/stdlib/typing.pyi:960: note: "update" of "TypedDict" defined here discord/abc.py:1269: error: Unexpected keyword argument "lock_permissions" for "update" of "TypedDict" [call-arg] -/venv/lib/python3.8/site-packages/mypy/typeshed/stdlib/typing.pyi:960: note: "update" of "TypedDict" defined here +_/venv/lib/python3.8/site-packages/mypy/typeshed/stdlib/typing.pyi:960: note: "update" of "TypedDict" defined here discord/abc.py:1815: error: Incompatible types in assignment (expression has type "reversed[MessagePin]", variable has type "List[MessagePin]") [assignment] discord/abc.py:1821: error: Incompatible types in "yield" (actual type "Message", expected type "PinnedMessage") [misc] discord/abc.py:2035: error: Incompatible types in assignment (expression has type "Callable[[Arg(int, 'retrieve'), Arg(Optional[Snowflake], 'after'), Arg(Optional[int], 'limit')], Coroutine[Any, Any, Any]]", variable has type "Callable[[Arg(int, 'retrieve'), Arg(Optional[Snowflake], 'around'), Arg(Optional[int], 'limit')], Coroutine[Any, Any, Any]]") [assignment] diff --git a/scripts/ty_benchmark/snapshots/discord.py_ty.txt b/scripts/ty_benchmark/snapshots/discord.py_ty.txt index 6cd8f6120c..342345b116 100644 --- a/scripts/ty_benchmark/snapshots/discord.py_ty.txt +++ b/scripts/ty_benchmark/snapshots/discord.py_ty.txt @@ -1,38 +1,54 @@ +discord/abc.py:1815:25: error[no-matching-overload] No overload of function `__new__` matches arguments discord/abc.py:2091:9: error[invalid-parameter-default] Default value of type `` is not assignable to annotated parameter type `(Client, Connectable, /) -> T@connect` discord/activity.py:286:9: error[invalid-method-override] Invalid override of method `to_dict`: Definition is incompatible with `BaseActivity.to_dict` discord/activity.py:455:9: error[invalid-method-override] Invalid override of method `to_dict`: Definition is incompatible with `BaseActivity.to_dict` discord/activity.py:566:9: error[invalid-method-override] Invalid override of method `to_dict`: Definition is incompatible with `BaseActivity.to_dict` discord/activity.py:822:9: error[invalid-method-override] Invalid override of method `to_dict`: Definition is incompatible with `BaseActivity.to_dict` -discord/app_commands/commands.py:140:70: error[invalid-type-arguments] Type `typing.TypeVar` does not satisfy constraints `str`, `int`, `int | float`, `str | int | float` of type variable `ChoiceT@Choice` -discord/app_commands/commands.py:141:62: error[invalid-type-arguments] Type `typing.TypeVar` does not satisfy constraints `str`, `int`, `int | float`, `str | int | float` of type variable `ChoiceT@Choice` +discord/app_commands/commands.py:149:92: error[invalid-type-arguments] Too many type arguments: expected 1, got 3 +discord/app_commands/commands.py:235:9: error[invalid-assignment] Object of type `bool` is not assignable to attribute `pass_command_binding` on type `((GroupT@validate_auto_complete_callback, Interaction[Any], str, /) -> Coroutine[Any, Any, list[Choice[ChoiceT@validate_auto_complete_callback]]]) | ((Interaction[Any], str, /) -> Coroutine[Any, Any, list[Choice[ChoiceT@validate_auto_complete_callback]]])` +discord/app_commands/commands.py:240:50: error[unresolved-attribute] Object of type `((GroupT@validate_auto_complete_callback, Interaction[Any], str, /) -> Coroutine[Any, Any, list[Choice[ChoiceT@validate_auto_complete_callback]]]) | ((Interaction[Any], str, /) -> Coroutine[Any, Any, list[Choice[ChoiceT@validate_auto_complete_callback]]])` has no attribute `__qualname__` discord/app_commands/commands.py:372:37: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__qualname__` discord/app_commands/commands.py:381:102: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__qualname__` discord/app_commands/commands.py:393:29: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__discord_app_commands_param_description__` discord/app_commands/commands.py:402:19: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__discord_app_commands_param_rename__` discord/app_commands/commands.py:409:19: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__discord_app_commands_param_choices__` discord/app_commands/commands.py:416:24: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__discord_app_commands_param_autocomplete__` -discord/app_commands/commands.py:432:38: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> @Todo) | ((Interaction[Any], User, /) -> @Todo) | ((Interaction[Any], Message, /) -> @Todo)` has no attribute `__qualname__` -discord/app_commands/commands.py:444:58: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> @Todo) | ((Interaction[Any], User, /) -> @Todo) | ((Interaction[Any], Message, /) -> @Todo)` has no attribute `__qualname__` -discord/app_commands/commands.py:450:57: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> @Todo) | ((Interaction[Any], User, /) -> @Todo) | ((Interaction[Any], Message, /) -> @Todo)` has no attribute `__globals__` -discord/app_commands/commands.py:450:75: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> @Todo) | ((Interaction[Any], User, /) -> @Todo) | ((Interaction[Any], Message, /) -> @Todo)` has no attribute `__globals__` +discord/app_commands/commands.py:432:38: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], User, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], Message, /) -> Coroutine[Any, Any, Any])` has no attribute `__qualname__` +discord/app_commands/commands.py:444:58: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], User, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], Message, /) -> Coroutine[Any, Any, Any])` has no attribute `__qualname__` +discord/app_commands/commands.py:450:57: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], User, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], Message, /) -> Coroutine[Any, Any, Any])` has no attribute `__globals__` +discord/app_commands/commands.py:450:75: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], User, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], Message, /) -> Coroutine[Any, Any, Any])` has no attribute `__globals__` +discord/app_commands/commands.py:657:43: error[invalid-type-arguments] Too many type arguments: expected 1, got 3 +discord/app_commands/commands.py:675:49: error[invalid-type-arguments] Too many type arguments: expected 1, got 3 +discord/app_commands/commands.py:683:28: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, Unknown]` has no attribute `__self__` +discord/app_commands/commands.py:684:41: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, Unknown]` has no attribute `__func__` +discord/app_commands/commands.py:684:41: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, Unknown]` has no attribute `__func__` +discord/app_commands/commands.py:688:97: warning[possibly-missing-attribute] Attribute `__globals__` may be missing on object of type `((...) -> Coroutine[Any, Any, Unknown]) | Unknown` +discord/app_commands/commands.py:726:51: error[invalid-type-arguments] Too many type arguments: expected 1, got 3 discord/app_commands/commands.py:807:19: error[missing-argument] No argument provided for required parameter `error` of function `on_error` discord/app_commands/commands.py:807:35: error[invalid-argument-type] Argument to function `on_error` is incorrect: Expected `Group`, found `Interaction[Client]` discord/app_commands/commands.py:807:48: error[invalid-argument-type] Argument to function `on_error` is incorrect: Expected `Interaction[Client]`, found `AppCommandError` discord/app_commands/commands.py:810:23: error[missing-argument] No argument provided for required parameter `error` of function `on_error` discord/app_commands/commands.py:810:46: error[invalid-argument-type] Argument to function `on_error` is incorrect: Expected `Group`, found `Interaction[Client]` discord/app_commands/commands.py:810:59: error[invalid-argument-type] Argument to function `on_error` is incorrect: Expected `Interaction[Client]`, found `AppCommandError` -discord/app_commands/commands.py:2129:23: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> @Todo) | ((Interaction[Any], User, /) -> @Todo) | ((Interaction[Any], Message, /) -> @Todo)` has no attribute `__name__` -discord/app_commands/commands.py:2477:17: error[invalid-assignment] Object of type `list[Unknown]` is not assignable to attribute `__discord_app_commands_checks__` on type `(@Todo & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu & ~) | (((Interaction[Any], Member, /) -> @Todo) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu & ~) | (((Interaction[Any], User, /) -> @Todo) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu & ~) | (((Interaction[Any], Message, /) -> @Todo) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu & ~)` -discord/app_commands/commands.py:2479:13: warning[possibly-missing-attribute] Attribute `__discord_app_commands_checks__` may be missing on object of type `(@Todo & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu) | (((Interaction[Any], Member, /) -> @Todo) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu) | (((Interaction[Any], User, /) -> @Todo) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu) | (((Interaction[Any], Message, /) -> @Todo) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu)` -discord/app_commands/errors.py:453:95: error[unresolved-attribute] Object of type `object` has no attribute `__qualname__` -discord/app_commands/errors.py:460:88: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> @Todo) | ((Interaction[Any], User, /) -> @Todo) | ((Interaction[Any], Message, /) -> @Todo)` has no attribute `__qualname__` +discord/app_commands/commands.py:1967:44: error[invalid-type-arguments] Too many type arguments: expected 1, got 3 +discord/app_commands/commands.py:1992:53: error[invalid-type-arguments] Too many type arguments: expected 1, got 3 +discord/app_commands/commands.py:2005:55: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, Unknown]` has no attribute `__name__` +discord/app_commands/commands.py:2026:40: error[invalid-type-arguments] Too many type arguments: expected 1, got 3 +discord/app_commands/commands.py:2053:49: error[invalid-type-arguments] Too many type arguments: expected 1, got 3 +discord/app_commands/commands.py:2066:51: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, Unknown]` has no attribute `__name__` +discord/app_commands/commands.py:2129:23: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], User, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], Message, /) -> Coroutine[Any, Any, Any])` has no attribute `__name__` +discord/app_commands/commands.py:2477:17: error[invalid-assignment] Object of type `list[Unknown]` is not assignable to attribute `__discord_app_commands_checks__` on type `(((...) -> Coroutine[Any, Any, Unknown]) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu & ~) | (((Interaction[Any], Member, /) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu & ~) | (((Interaction[Any], User, /) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu & ~) | (((Interaction[Any], Message, /) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu & ~)` +discord/app_commands/commands.py:2479:13: error[unresolved-attribute] Object of type `(((...) -> Coroutine[Any, Any, Unknown]) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu) | (((Interaction[Any], Member, /) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu) | (((Interaction[Any], User, /) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu) | (((Interaction[Any], Message, /) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]] & ~ContextMenu)` has no attribute `__discord_app_commands_checks__` +discord/app_commands/errors.py:453:95: error[unresolved-attribute] Object of type `(() -> Coroutine[object, Never, object]) | ((...) -> Coroutine[Any, Any, Unknown])` has no attribute `__qualname__` +discord/app_commands/errors.py:460:88: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], User, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], Message, /) -> Coroutine[Any, Any, Any])` has no attribute `__qualname__` discord/app_commands/models.py:926:16: error[invalid-return-type] Return type does not match returned value: expected `Member | None`, found `(Guild & ~AlwaysTruthy) | None | Member` discord/app_commands/transformers.py:110:67: error[invalid-argument-type] Argument to bound method `_checked_translate` is incorrect: Expected `locale_str`, found `str | locale_str` discord/app_commands/transformers.py:115:67: error[invalid-argument-type] Argument to bound method `_checked_translate` is incorrect: Expected `locale_str`, found `str | locale_str` -discord/app_commands/transformers.py:238:22: error[invalid-type-form] Variable of type `Self@__or__` is not allowed in a type expression discord/app_commands/transformers.py:584:13: error[invalid-assignment] Not enough values to unpack: Expected 3 -discord/app_commands/tree.py:76:22: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `Client` of type variable `ClientT@Interaction` -discord/app_commands/tree.py:1011:27: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> @Todo) | ((Interaction[Any], User, /) -> @Todo) | ((Interaction[Any], Message, /) -> @Todo)` has no attribute `__name__` +discord/app_commands/tree.py:862:43: error[invalid-type-arguments] Too many type arguments: expected 1, got 3 +discord/app_commands/tree.py:910:52: error[invalid-type-arguments] Too many type arguments: expected 1, got 3 +discord/app_commands/tree.py:923:55: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, Unknown]` has no attribute `__name__` +discord/app_commands/tree.py:1011:27: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], User, /) -> Coroutine[Any, Any, Any]) | ((Interaction[Any], Message, /) -> Coroutine[Any, Any, Any])` has no attribute `__name__` discord/app_commands/tree.py:1133:19: error[missing-argument] No argument provided for required parameter `error` of function `on_error` discord/app_commands/tree.py:1133:33: error[invalid-argument-type] Argument to function `on_error` is incorrect: Argument type `Interaction[ClientT@CommandTree]` does not satisfy upper bound `CommandTree[ClientT@CommandTree]` of type variable `Self` discord/app_commands/tree.py:1133:46: error[invalid-argument-type] Argument to function `on_error` is incorrect: Expected `Interaction[ClientT@CommandTree]`, found `AppCommandError` @@ -72,6 +88,7 @@ discord/client.py:723:59: error[invalid-argument-type] Argument to bound method discord/client.py:723:59: error[invalid-argument-type] Argument to bound method `from_client` is incorrect: Expected `bool`, found `Unknown | int | None` discord/client.py:723:59: error[invalid-argument-type] Argument to bound method `from_client` is incorrect: Expected `str`, found `Unknown | int | None` discord/client.py:723:59: error[invalid-argument-type] Argument to bound method `from_client` is incorrect: Expected `bool`, found `Unknown | int | None` +discord/client.py:2671:93: error[invalid-argument-type] Argument to bound method `format_map` is incorrect: Expected `_FormatMapMapping`, found `TextChannel | NewsChannel | VoiceChannel | ... omitted 7 union elements` discord/components.py:86:9: error[invalid-type-form] Variable of type `Literal["TextDisplay"]` is not allowed in a type expression discord/components.py:787:29: error[invalid-type-form] Variable of type `Literal["TextDisplay"]` is not allowed in a type expression discord/components.py:1326:27: error[invalid-argument-type] Invalid argument to key "components" with declared type `list[ActionRow | TextComponent | MediaGalleryComponent | ... omitted 5 union elements]` on TypedDict `ContainerComponent`: value of type `list[ButtonComponent | SelectMenu | TextInput | ... omitted 11 union elements]` @@ -98,13 +115,18 @@ discord/emoji.py:287:26: warning[possibly-missing-attribute] Attribute `http` ma discord/emoji.py:292:54: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ConnectionState[Client]`, found `Any | None | ConnectionState[Client]` discord/emoji.py:294:22: warning[possibly-missing-attribute] Attribute `http` may be missing on object of type `Any | None | ConnectionState[Client]` discord/errors.py:30:10: error[unresolved-import] Cannot resolve imported module `requests` -discord/ext/commands/bot.py:89:33: error[invalid-type-form] Invalid subscript of object of type `GenericAlias` in type expression +discord/ext/commands/bot.py:175:36: error[invalid-type-arguments] Too many type arguments: expected 0, got 1 discord/ext/commands/bot.py:177:9: error[invalid-parameter-default] Default value of type `_DefaultRepr` is not assignable to annotated parameter type `HelpCommand | None` -discord/ext/commands/bot.py:655:16: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__name__` -discord/ext/commands/bot.py:681:16: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__name__` +discord/ext/commands/bot.py:296:41: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 +discord/ext/commands/bot.py:306:50: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 +discord/ext/commands/bot.py:320:41: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 +discord/ext/commands/bot.py:330:50: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 +discord/ext/commands/bot.py:655:16: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, Any]` has no attribute `__name__` +discord/ext/commands/bot.py:681:16: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, Any]` has no attribute `__name__` +discord/ext/commands/bot.py:1544:40: error[invalid-type-arguments] Too many type arguments: expected 0, got 1 discord/ext/commands/bot.py:1546:13: error[invalid-parameter-default] Default value of type `_DefaultRepr` is not assignable to annotated parameter type `HelpCommand | None` -discord/ext/commands/cog.py:288:36: error[invalid-type-arguments] Type `typing.Self` is not assignable to upper bound `Cog | None` of type variable `CogT@Command` -discord/ext/commands/cog.py:289:79: error[invalid-type-arguments] Type `typing.Self` is not assignable to upper bound `Group | Cog` of type variable `GroupT@Command` +discord/ext/commands/cog.py:288:36: error[invalid-type-arguments] Type `` is not assignable to upper bound `Cog | None` of type variable `CogT@Command` +discord/ext/commands/cog.py:289:79: error[invalid-type-arguments] Type `` is not assignable to upper bound `Group | Cog` of type variable `GroupT@Command` discord/ext/commands/context.py:411:15: error[invalid-method-override] Invalid override of method `_get_channel`: Definition is incompatible with `Messageable._get_channel` discord/ext/commands/context.py:783:9: error[invalid-method-override] Invalid override of method `typing`: Definition is incompatible with `Messageable.typing` discord/ext/commands/converter.py:402:39: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `TextChannel | VoiceChannel | StageChannel | ... omitted 4 union elements`, found `(VoiceChannel & ~AlwaysFalsy) | (StageChannel & ~AlwaysFalsy) | (ForumChannel & Messageable & ~AlwaysFalsy) | ... omitted 5 union elements` @@ -113,36 +135,38 @@ discord/ext/commands/converter.py:1211:89: warning[possibly-missing-attribute] A discord/ext/commands/converter.py:1241:13: error[invalid-assignment] Not enough values to unpack: Expected 3 discord/ext/commands/cooldowns.py:171:9: error[invalid-method-override] Invalid override of method `create_bucket`: Definition is incompatible with `CooldownMapping.create_bucket` discord/ext/commands/core.py:141:24: error[invalid-assignment] Object of type `object` is not assignable to `(...) -> Any` -discord/ext/commands/core.py:433:38: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__name__` -discord/ext/commands/core.py:462:22: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__commands_checks__` -discord/ext/commands/core.py:470:24: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__commands_cooldown__` -discord/ext/commands/core.py:483:31: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__commands_max_concurrency__` -discord/ext/commands/core.py:500:29: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__before_invoke__` -discord/ext/commands/core.py:508:28: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__after_invoke__` +discord/ext/commands/core.py:433:38: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, T@Command]` has no attribute `__name__` +discord/ext/commands/core.py:462:22: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, T@Command]` has no attribute `__commands_checks__` +discord/ext/commands/core.py:470:24: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, T@Command]` has no attribute `__commands_cooldown__` +discord/ext/commands/core.py:483:31: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, T@Command]` has no attribute `__commands_max_concurrency__` +discord/ext/commands/core.py:500:29: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, T@Command]` has no attribute `__before_invoke__` +discord/ext/commands/core.py:508:28: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, T@Command]` has no attribute `__after_invoke__` discord/ext/commands/core.py:544:24: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__globals__` discord/ext/commands/core.py:1552:22: error[no-matching-overload] No overload of function `command` matches arguments discord/ext/commands/core.py:1609:22: error[no-matching-overload] No overload of function `group` matches arguments -discord/ext/commands/core.py:1942:17: error[invalid-assignment] Object of type `list[Unknown]` is not assignable to attribute `__commands_checks__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]] & ~` -discord/ext/commands/core.py:1944:13: error[unresolved-attribute] Object of type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]` has no attribute `__commands_checks__` -discord/ext/commands/core.py:1949:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Any, @Todo, Any] | ((...) -> @Todo)) -> Command[Any, @Todo, Any] | ((...) -> @Todo)`. -discord/ext/commands/core.py:1956:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Any, @Todo, Any] | ((...) -> @Todo)) -> Command[Any, @Todo, Any] | ((...) -> @Todo)`. -discord/ext/commands/core.py:2358:32: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `Never`, found `def predicate[BotT](ctx: Context[BotT@predicate]) -> bool` -discord/ext/commands/core.py:2365:17: error[invalid-assignment] Object of type `list[Unknown]` is not assignable to attribute `__commands_checks__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]] & ~` -discord/ext/commands/core.py:2367:13: error[unresolved-attribute] Object of type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]` has no attribute `__commands_checks__` -discord/ext/commands/core.py:2368:13: error[invalid-assignment] Object of type `Literal[True]` is not assignable to attribute `__discord_app_commands_guild_only__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]` -discord/ext/commands/core.py:2373:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Unknown, Unknown, Unknown] | ((...) -> @Todo)) -> Command[Unknown, Unknown, Unknown] | ((...) -> @Todo)`. -discord/ext/commands/core.py:2380:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Unknown, Unknown, Unknown] | ((...) -> @Todo)) -> Command[Unknown, Unknown, Unknown] | ((...) -> @Todo)`. -discord/ext/commands/core.py:2433:32: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `Never`, found `def predicate[BotT](ctx: Context[BotT@predicate]) -> bool` -discord/ext/commands/core.py:2440:17: error[invalid-assignment] Object of type `list[Unknown]` is not assignable to attribute `__commands_checks__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]] & ~` -discord/ext/commands/core.py:2442:13: error[unresolved-attribute] Object of type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]` has no attribute `__commands_checks__` -discord/ext/commands/core.py:2443:13: error[invalid-assignment] Object of type `Literal[True]` is not assignable to attribute `__discord_app_commands_is_nsfw__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]` -discord/ext/commands/core.py:2448:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Unknown, Unknown, Unknown] | ((...) -> @Todo)) -> Command[Unknown, Unknown, Unknown] | ((...) -> @Todo)`. -discord/ext/commands/core.py:2455:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Unknown, Unknown, Unknown] | ((...) -> @Todo)) -> Command[Unknown, Unknown, Unknown] | ((...) -> @Todo)`. -discord/ext/commands/core.py:2499:13: error[invalid-assignment] Object of type `CooldownMapping[Unknown]` is not assignable to attribute `__commands_cooldown__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]` -discord/ext/commands/core.py:2547:13: error[invalid-assignment] Object of type `DynamicCooldownMapping[Unknown]` is not assignable to attribute `__commands_cooldown__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]` -discord/ext/commands/core.py:2582:13: error[invalid-assignment] Object of type `MaxConcurrency` is not assignable to attribute `__commands_max_concurrency__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]` -discord/ext/commands/core.py:2634:13: error[invalid-assignment] Object of type `@Todo` is not assignable to attribute `__before_invoke__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]` -discord/ext/commands/core.py:2657:13: error[invalid-assignment] Object of type `@Todo` is not assignable to attribute `__after_invoke__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]` +discord/ext/commands/core.py:1942:17: error[invalid-assignment] Object of type `list[Unknown]` is not assignable to attribute `__commands_checks__` on type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]] & ~` +discord/ext/commands/core.py:1944:13: error[unresolved-attribute] Object of type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]]` has no attribute `__commands_checks__` +discord/ext/commands/core.py:1949:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Any, @Todo, Any] | ((...) -> Coroutine[Any, Any, Any])) -> Command[Any, @Todo, Any] | ((...) -> Coroutine[Any, Any, Any])`. +discord/ext/commands/core.py:1956:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Any, @Todo, Any] | ((...) -> Coroutine[Any, Any, Any])) -> Command[Any, @Todo, Any] | ((...) -> Coroutine[Any, Any, Any])`. +discord/ext/commands/core.py:2358:32: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `(Context[object], /) -> bool | Coroutine[Never, object, bool]`, found `def predicate[BotT](ctx: Context[BotT@predicate]) -> bool` +discord/ext/commands/core.py:2365:17: error[invalid-assignment] Object of type `list[Unknown]` is not assignable to attribute `__commands_checks__` on type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]] & ~` +discord/ext/commands/core.py:2367:13: error[unresolved-attribute] Object of type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]]` has no attribute `__commands_checks__` +discord/ext/commands/core.py:2368:13: error[invalid-assignment] Object of type `Literal[True]` is not assignable to attribute `__discord_app_commands_guild_only__` on type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]]` +discord/ext/commands/core.py:2373:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Unknown, Unknown, Unknown] | ((...) -> Coroutine[Any, Any, Any])) -> Command[Unknown, Unknown, Unknown] | ((...) -> Coroutine[Any, Any, Any])`. +discord/ext/commands/core.py:2380:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Unknown, Unknown, Unknown] | ((...) -> Coroutine[Any, Any, Any])) -> Command[Unknown, Unknown, Unknown] | ((...) -> Coroutine[Any, Any, Any])`. +discord/ext/commands/core.py:2433:32: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `(Context[object], /) -> bool | Coroutine[Never, object, bool]`, found `def predicate[BotT](ctx: Context[BotT@predicate]) -> bool` +discord/ext/commands/core.py:2440:17: error[invalid-assignment] Object of type `list[Unknown]` is not assignable to attribute `__commands_checks__` on type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]] & ~` +discord/ext/commands/core.py:2442:13: error[unresolved-attribute] Object of type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]]` has no attribute `__commands_checks__` +discord/ext/commands/core.py:2443:13: error[invalid-assignment] Object of type `Literal[True]` is not assignable to attribute `__discord_app_commands_is_nsfw__` on type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]]` +discord/ext/commands/core.py:2448:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Unknown, Unknown, Unknown] | ((...) -> Coroutine[Any, Any, Any])) -> Command[Unknown, Unknown, Unknown] | ((...) -> Coroutine[Any, Any, Any])`. +discord/ext/commands/core.py:2455:9: error[unresolved-attribute] Unresolved attribute `predicate` on type `def decorator(func: Command[Unknown, Unknown, Unknown] | ((...) -> Coroutine[Any, Any, Any])) -> Command[Unknown, Unknown, Unknown] | ((...) -> Coroutine[Any, Any, Any])`. +discord/ext/commands/core.py:2499:13: error[invalid-assignment] Object of type `CooldownMapping[Unknown]` is not assignable to attribute `__commands_cooldown__` on type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]]` +discord/ext/commands/core.py:2547:13: error[invalid-assignment] Object of type `DynamicCooldownMapping[Unknown]` is not assignable to attribute `__commands_cooldown__` on type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]]` +discord/ext/commands/core.py:2582:13: error[invalid-assignment] Object of type `MaxConcurrency` is not assignable to attribute `__commands_max_concurrency__` on type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]]` +discord/ext/commands/core.py:2632:32: error[invalid-argument-type] Argument to bound method `before_invoke` is incorrect: Expected `((object, Unknown, /) -> Coroutine[Never, object, Never]) | ((Unknown, /) -> Coroutine[Never, object, Never])`, found `((CogT@before_invoke, ContextT@before_invoke, /) -> Coroutine[Any, Any, Any]) | ((ContextT@before_invoke, /) -> Coroutine[Any, Any, Any])` +discord/ext/commands/core.py:2634:13: error[invalid-assignment] Object of type `((CogT@before_invoke, ContextT@before_invoke, /) -> Coroutine[Any, Any, Any]) | ((ContextT@before_invoke, /) -> Coroutine[Any, Any, Any])` is not assignable to attribute `__before_invoke__` on type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]]` +discord/ext/commands/core.py:2655:31: error[invalid-argument-type] Argument to bound method `after_invoke` is incorrect: Expected `((object, Unknown, /) -> Coroutine[Never, object, Never]) | ((Unknown, /) -> Coroutine[Never, object, Never])`, found `((CogT@after_invoke, ContextT@after_invoke, /) -> Coroutine[Any, Any, Any]) | ((ContextT@after_invoke, /) -> Coroutine[Any, Any, Any])` +discord/ext/commands/core.py:2657:13: error[invalid-assignment] Object of type `((CogT@after_invoke, ContextT@after_invoke, /) -> Coroutine[Any, Any, Any]) | ((ContextT@after_invoke, /) -> Coroutine[Any, Any, Any])` is not assignable to attribute `__after_invoke__` on type `((...) -> Coroutine[Any, Any, Any]) & ~Top[Command[Unknown, object, Unknown]]` discord/ext/commands/help.py:309:9: error[invalid-assignment] Implicit shadowing of function `get_commands` discord/ext/commands/help.py:310:9: error[invalid-assignment] Implicit shadowing of function `walk_commands` discord/ext/commands/help.py:1255:9: error[invalid-method-override] Invalid override of method `get_destination`: Definition is incompatible with `HelpCommand.get_destination` @@ -151,11 +175,20 @@ discord/ext/commands/help.py:1520:9: error[invalid-method-override] Invalid over discord/ext/commands/help.py:1529:15: error[invalid-method-override] Invalid override of method `prepare_help_command`: Definition is incompatible with `HelpCommand.prepare_help_command` discord/ext/commands/hybrid.py:176:49: error[unresolved-attribute] Object of type `(str, /) -> Any` has no attribute `__name__` discord/ext/commands/hybrid.py:232:13: error[unresolved-attribute] Unresolved attribute `__hybrid_command_flag__` on type `(...) -> Any`. -discord/ext/commands/hybrid.py:328:9: error[unresolved-attribute] Unresolved attribute `__signature__` on type `(...) -> @Todo`. -discord/ext/commands/hybrid.py:338:17: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__signature__` +discord/ext/commands/hybrid.py:328:9: error[unresolved-attribute] Unresolved attribute `__signature__` on type `(...) -> Coroutine[Any, Any, T@HybridAppCommand]`. +discord/ext/commands/hybrid.py:338:17: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, T@HybridAppCommand]` has no attribute `__signature__` +discord/ext/commands/hybrid.py:512:37: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 discord/ext/commands/hybrid.py:563:9: error[invalid-method-override] Invalid override of method `_ensure_assignment_on_copy`: Definition is incompatible with `Command._ensure_assignment_on_copy` discord/ext/commands/hybrid.py:731:9: error[invalid-method-override] Invalid override of method `_ensure_assignment_on_copy`: Definition is incompatible with `Command._ensure_assignment_on_copy` discord/ext/commands/hybrid.py:790:9: error[invalid-method-override] Invalid override of method `add_command`: Definition is incompatible with `GroupMixin.add_command` +discord/ext/commands/hybrid.py:842:42: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 +discord/ext/commands/hybrid.py:852:51: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 +discord/ext/commands/hybrid.py:866:42: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 +discord/ext/commands/hybrid.py:876:51: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 +discord/ext/commands/hybrid.py:890:38: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 +discord/ext/commands/hybrid.py:928:47: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 +discord/ext/commands/hybrid.py:942:38: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 +discord/ext/commands/hybrid.py:962:47: error[invalid-type-arguments] Too many type arguments: expected 1, got 4 discord/ext/commands/parameters.py:98:9: error[invalid-parameter-default] Default value of type `` is not assignable to annotated parameter type `str` discord/ext/commands/parameters.py:99:9: error[invalid-parameter-default] Default value of type `` is not assignable to annotated parameter type `str` discord/ext/commands/parameters.py:100:9: error[invalid-parameter-default] Default value of type `` is not assignable to annotated parameter type `str` @@ -182,6 +215,7 @@ discord/gateway.py:735:13: error[invalid-assignment] Cannot assign to a subscrip discord/gateway.py:738:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `int` discord/gateway.py:741:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `int` discord/guild.py:1961:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ForumChannel | MediaChannel`, found `TextChannel | NewsChannel | VoiceChannel | ... omitted 5 union elements` +discord/guild.py:2626:93: error[invalid-argument-type] Argument to bound method `format_map` is incorrect: Expected `_FormatMapMapping`, found `TextChannel | NewsChannel | VoiceChannel | ... omitted 7 union elements` discord/http.py:566:53: error[invalid-argument-type] Argument to bound method `ws_connect` is incorrect: Expected `str`, found `Unknown | BasicAuth | None | ... omitted 4 union elements` discord/http.py:566:53: error[invalid-argument-type] Argument to bound method `ws_connect` is incorrect: Expected `Iterable[str]`, found `Unknown | BasicAuth | None | ... omitted 4 union elements` discord/http.py:566:53: error[invalid-argument-type] Argument to bound method `ws_connect` is incorrect: Expected `int | float`, found `Unknown | BasicAuth | None | ... omitted 4 union elements` @@ -277,6 +311,10 @@ discord/sticker.py:434:16: warning[possibly-missing-attribute] Attribute `_get_g discord/sticker.py:489:43: warning[possibly-missing-attribute] Attribute `http` may be missing on object of type `Any | None | ConnectionState[Client]` discord/sticker.py:490:29: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ConnectionState[Client]`, found `Any | None | ConnectionState[Client]` discord/sticker.py:511:15: warning[possibly-missing-attribute] Attribute `http` may be missing on object of type `Any | None | ConnectionState[Client]` +discord/ui/action_row.py:122:67: error[invalid-type-arguments] Type `` is not assignable to upper bound `BaseView | ActionRow[Unknown] | Container[Unknown]` of type variable `C@ContainedItemCallbackType` +discord/ui/action_row.py:163:26: error[unresolved-attribute] Object of type `(Unknown, Interaction[Any], Unknown, /) -> Coroutine[Any, Any, Any]` has no attribute `__discord_ui_model_type__` +discord/ui/action_row.py:163:59: error[unresolved-attribute] Object of type `(Unknown, Interaction[Any], Unknown, /) -> Coroutine[Any, Any, Any]` has no attribute `__discord_ui_model_kwargs__` +discord/ui/action_row.py:166:27: error[unresolved-attribute] Object of type `(Unknown, Interaction[Any], Unknown, /) -> Coroutine[Any, Any, Any]` has no attribute `__name__` discord/ui/action_row.py:415:9: error[invalid-parameter-default] Default value of type `` is not assignable to annotated parameter type `type[SelectT@select]` discord/ui/action_row.py:430:9: error[invalid-parameter-default] Default value of type `` is not assignable to annotated parameter type `type[UserSelectT@select]` discord/ui/action_row.py:446:9: error[invalid-parameter-default] Default value of type `` is not assignable to annotated parameter type `type[RoleSelectT@select]` @@ -287,6 +325,13 @@ discord/ui/action_row.py:597:9: error[invalid-method-override] Invalid override discord/ui/button.py:259:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component` discord/ui/button.py:276:9: error[invalid-method-override] Invalid override of method `to_component_dict`: Definition is incompatible with `Item.to_component_dict` discord/ui/button.py:287:9: error[invalid-method-override] Invalid override of method `_refresh_component`: Definition is incompatible with `Item._refresh_component` +discord/ui/button.py:376:9: error[unresolved-attribute] Unresolved attribute `__discord_ui_model_type__` on type `(S@button, Interaction[Any], Button[V@button], /) -> Coroutine[Any, Any, Any]`. +discord/ui/button.py:377:9: error[unresolved-attribute] Unresolved attribute `__discord_ui_model_kwargs__` on type `(S@button, Interaction[Any], Button[V@button], /) -> Coroutine[Any, Any, Any]`. +discord/ui/container.py:109:77: error[invalid-type-arguments] Type `` is not assignable to upper bound `BaseView | ActionRow[Unknown] | Container[Unknown]` of type variable `C@ContainedItemCallbackType` +discord/ui/container.py:151:30: error[unresolved-attribute] Object of type `((Unknown, Interaction[Any], Unknown, /) -> Coroutine[Any, Any, Any]) & ~Item[object]` has no attribute `__discord_ui_model_type__` +discord/ui/container.py:151:62: error[unresolved-attribute] Object of type `((Unknown, Interaction[Any], Unknown, /) -> Coroutine[Any, Any, Any]) & ~Item[object]` has no attribute `__discord_ui_model_kwargs__` +discord/ui/container.py:153:31: error[unresolved-attribute] Object of type `((Unknown, Interaction[Any], Unknown, /) -> Coroutine[Any, Any, Any]) & ~Item[object]` has no attribute `__name__` +discord/ui/container.py:159:41: error[unresolved-attribute] Object of type `((Unknown, Interaction[Any], Unknown, /) -> Coroutine[Any, Any, Any]) & ~Item[object]` has no attribute `__name__` discord/ui/container.py:179:9: error[invalid-method-override] Invalid override of method `_update_view`: Definition is incompatible with `Item._update_view` discord/ui/container.py:260:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component` discord/ui/file.py:162:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component` @@ -297,7 +342,7 @@ discord/ui/file_upload.py:184:9: error[invalid-method-override] Invalid override discord/ui/label.py:112:9: error[invalid-method-override] Invalid override of method `to_component_dict`: Definition is incompatible with `Item.to_component_dict` discord/ui/label.py:125:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component` discord/ui/media_gallery.py:259:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component` -discord/ui/modal.py:109:55: error[invalid-type-arguments] Type `typing.Self` is not assignable to upper bound `BaseView` of type variable `V@Item` +discord/ui/modal.py:109:55: error[invalid-type-arguments] Type `` is not assignable to upper bound `BaseView` of type variable `V@Item` discord/ui/modal.py:159:15: error[invalid-method-override] Invalid override of method `on_error`: Definition is incompatible with `BaseView.on_error` discord/ui/modal.py:176:9: error[invalid-method-override] Invalid override of method `_refresh`: Definition is incompatible with `BaseView._refresh` discord/ui/modal.py:202:15: error[invalid-method-override] Invalid override of method `_scheduled_task`: Definition is incompatible with `BaseView._scheduled_task` @@ -315,6 +360,11 @@ discord/ui/select.py:1063:5: error[invalid-parameter-default] Default value of t discord/ui/select.py:1080:5: error[invalid-parameter-default] Default value of type `` is not assignable to annotated parameter type `type[ChannelSelectT@select]` discord/ui/select.py:1097:5: error[invalid-parameter-default] Default value of type `` is not assignable to annotated parameter type `type[MentionableSelectT@select]` discord/ui/select.py:1113:5: error[invalid-parameter-default] Default value of type `` is not assignable to annotated parameter type `type[BaseSelectT@select]` +discord/ui/select.py:1221:9: error[unresolved-attribute] Unresolved attribute `__discord_ui_model_type__` on type `(S@select, Interaction[Any], BaseSelectT@select, /) -> Coroutine[Any, Any, Any]`. +discord/ui/select.py:1222:9: error[unresolved-attribute] Unresolved attribute `__discord_ui_model_kwargs__` on type `(S@select, Interaction[Any], BaseSelectT@select, /) -> Coroutine[Any, Any, Any]`. +discord/ui/select.py:1232:13: error[unresolved-attribute] Object of type `(S@select, Interaction[Any], BaseSelectT@select, /) -> Coroutine[Any, Any, Any]` has no attribute `__discord_ui_model_kwargs__` +discord/ui/select.py:1234:13: error[unresolved-attribute] Object of type `(S@select, Interaction[Any], BaseSelectT@select, /) -> Coroutine[Any, Any, Any]` has no attribute `__discord_ui_model_kwargs__` +discord/ui/select.py:1250:13: error[unresolved-attribute] Object of type `(S@select, Interaction[Any], BaseSelectT@select, /) -> Coroutine[Any, Any, Any]` has no attribute `__discord_ui_model_kwargs__` discord/ui/separator.py:129:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component` discord/ui/text_display.py:87:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component` discord/ui/text_input.py:249:9: error[invalid-method-override] Invalid override of method `to_component_dict`: Definition is incompatible with `Item.to_component_dict` @@ -322,6 +372,9 @@ discord/ui/text_input.py:252:9: error[invalid-method-override] Invalid override discord/ui/text_input.py:255:9: error[invalid-method-override] Invalid override of method `_refresh_state`: Definition is incompatible with `Item._refresh_state` discord/ui/text_input.py:259:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component` discord/ui/thumbnail.py:138:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component` +discord/ui/view.py:246:30: error[unresolved-attribute] Object of type `((Any, Interaction[Any], Any, /) -> Coroutine[Any, Any, Any]) & ~Item[object]` has no attribute `__discord_ui_model_type__` +discord/ui/view.py:246:62: error[unresolved-attribute] Object of type `((Any, Interaction[Any], Any, /) -> Coroutine[Any, Any, Any]) & ~Item[object]` has no attribute `__discord_ui_model_kwargs__` +discord/ui/view.py:251:31: error[unresolved-attribute] Object of type `((Any, Interaction[Any], Any, /) -> Coroutine[Any, Any, Any]) & ~Item[object]` has no attribute `__name__` discord/ui/view.py:324:16: error[invalid-return-type] Return type does not match returned value: expected `list[Item[Self@children]]`, found `list[Item[Self@__init__]]` discord/user.py:428:9: error[invalid-method-override] Invalid override of method `_update`: Definition is incompatible with `BaseUser._update` discord/utils.py:257:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `Sequence.__getitem__` @@ -350,4 +403,4 @@ discord/webhook/sync.py:522:9: error[invalid-method-override] Invalid override o discord/webhook/sync.py:652:16: error[unresolved-import] Cannot resolve imported module `requests` discord/webhook/sync.py:695:16: error[unresolved-import] Cannot resolve imported module `requests` discord/welcome_screen.py:104:33: warning[possibly-missing-attribute] Attribute `name` may be missing on object of type `(Unknown & _EmojiTag) | PartialEmoji | Emoji | (str & _EmojiTag)` -Found 352 diagnostics +Found 405 diagnostics diff --git a/scripts/ty_benchmark/snapshots/homeassistant_Pyrefly.txt b/scripts/ty_benchmark/snapshots/homeassistant_Pyrefly.txt index 9aaf79d318..1286eb4209 100644 --- a/scripts/ty_benchmark/snapshots/homeassistant_Pyrefly.txt +++ b/scripts/ty_benchmark/snapshots/homeassistant_Pyrefly.txt @@ -6,14 +6,14 @@ ERROR homeassistant/auth/mfa_modules/notify.py:127:41-45: `data` may be uninitia ERROR homeassistant/auth/mfa_modules/totp.py:105:27-31: `data` may be uninitialized [unbound-name] ERROR homeassistant/auth/mfa_modules/totp.py:207:62-209:14: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[str, datetime | None, int]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/auth/permissions/__init__.py:47:16-27: `entity_func` may be uninitialized [unbound-name] -ERROR homeassistant/auth/permissions/merge.py:63:27-55: Cannot set item in `dict[str, Mapping[str, Mapping[str, bool] | bool | None] | bool | None]` [unsupported-operation] -ERROR homeassistant/auth/permissions/merge.py:63:43-54: Argument `list[Mapping[str, Mapping[str, bool] | bool | None] | bool | None]` is not assignable to parameter `sources` with type `list[Mapping[str, Mapping[str, Mapping[str, bool] | bool | None] | bool | None] | Mapping[str, Mapping[str, bool] | bool | None] | bool | None]` in function `_merge_policies` [bad-argument-type] +ERROR homeassistant/auth/permissions/merge.py:63:27-55: Cannot set item in `dict[str, SubCategoryType]` [unsupported-operation] +ERROR homeassistant/auth/permissions/merge.py:63:43-54: Argument `list[Mapping[str, ValueType] | bool | None]` is not assignable to parameter `sources` with type `list[CategoryType]` in function `_merge_policies` [bad-argument-type] ERROR homeassistant/auth/providers/__init__.py:191:5-14: `processed` may be uninitialized [unbound-name] ERROR homeassistant/auth/providers/homeassistant.py:110:56-60: `data` may be uninitialized [unbound-name] ERROR homeassistant/auth/providers/homeassistant.py:111:22-26: `data` may be uninitialized [unbound-name] -ERROR homeassistant/bootstrap.py:380:8-21: `recovery_mode` may be uninitialized [unbound-name] -ERROR homeassistant/bootstrap.py:443:25-459:6: No matching overload found for function `asyncio.tasks.gather` called with arguments: (Task[None], Task[None], Task[None], Task[None], Task[None], Task[None], Task[None], Task[None], Future[None], Task[None], Task[None], Task[None], Task[dict[str, Any]], Task[None], Task[None]) [no-matching-overload] -ERROR homeassistant/bootstrap.py:518:9-519:60: String literal used as condition. It's equivalent to `False` [redundant-condition] +ERROR homeassistant/bootstrap.py:383:8-21: `recovery_mode` may be uninitialized [unbound-name] +ERROR homeassistant/bootstrap.py:446:25-462:6: No matching overload found for function `asyncio.tasks.gather` called with arguments: (Task[None], Task[None], Task[None], Task[None], Task[None], Task[None], Task[None], Task[None], Future[None], Task[None], Task[None], Task[None], Task[dict[str, Any]], Task[None], Task[None]) [no-matching-overload] +ERROR homeassistant/bootstrap.py:521:9-522:60: String literal used as condition. It's equivalent to `False` [redundant-condition] ERROR homeassistant/components/abode/__init__.py:83:50-81: Keyword argument `user_data` with type `Path` is not assignable to parameter `**kwargs` with type `Mapping[str, Path]` in function `jaraco.abode.config.PlatformDirs.override` [bad-argument-type] ERROR homeassistant/components/abode/alarm_control_panel.py:38:5-29: Class member `AbodeAlarm._attr_supported_features` overrides parent class `AbodeDevice` in an inconsistent manner [bad-override] ERROR homeassistant/components/abode/alarm_control_panel.py:42:5-12: Class member `AbodeAlarm._device` overrides parent class `AbodeDevice` in an inconsistent manner [bad-override] @@ -165,16 +165,16 @@ ERROR homeassistant/components/acmeda/cover.py:60:24-56: `-` is not supported be ERROR homeassistant/components/acmeda/cover.py:71:24-56: `-` is not supported between `Literal[100]` and `None` [unsupported-operation] ERROR homeassistant/components/acmeda/hub.py:64:20-24: `None` is not assignable to attribute `api` with type `Hub` [bad-assignment] ERROR homeassistant/components/acmeda/sensor.py:45:5-23: Class member `AcmedaBattery._attr_device_class` overrides parent class `AcmedaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/actron_air/__init__.py:30:19-45: `list[dict[str, Any]]` is not assignable to variable `systems` with type `list[ActronAirNeoACSystem]` [bad-assignment] -ERROR homeassistant/components/actron_air/__init__.py:42:64-80: Cannot index into `ActronAirNeoACSystem` [bad-index] -ERROR homeassistant/components/actron_air/__init__.py:44:29-45: Cannot index into `ActronAirNeoACSystem` [bad-index] -ERROR homeassistant/components/actron_air/climate.py:59:16-32: Object of class `ActronAirNeoACSystem` has no attribute `ac_system` [missing-attribute] -ERROR homeassistant/components/actron_air/climate.py:64:25-48: Object of class `ActronAirNeoACSystem` has no attribute `remote_zone_info` [missing-attribute] +ERROR homeassistant/components/actron_air/__init__.py:30:19-45: `list[dict[str, Any]]` is not assignable to variable `systems` with type `list[ActronAirACSystem]` [bad-assignment] +ERROR homeassistant/components/actron_air/__init__.py:42:64-80: Cannot index into `ActronAirACSystem` [bad-index] +ERROR homeassistant/components/actron_air/__init__.py:44:29-45: Cannot index into `ActronAirACSystem` [bad-index] +ERROR homeassistant/components/actron_air/climate.py:59:16-32: Object of class `ActronAirACSystem` has no attribute `ac_system` [missing-attribute] +ERROR homeassistant/components/actron_air/climate.py:64:25-48: Object of class `ActronAirACSystem` has no attribute `remote_zone_info` [missing-attribute] ERROR homeassistant/components/actron_air/climate.py:76:5-29: Class member `BaseClimateEntity._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/actron_air/climate.py:117:18-52: Object of class `NoneType` has no attribute `system_name` [missing-attribute] ERROR homeassistant/components/actron_air/climate.py:119:22-60: Object of class `NoneType` has no attribute `master_wc_model` [missing-attribute] ERROR homeassistant/components/actron_air/climate.py:120:24-73: Object of class `NoneType` has no attribute `master_wc_firmware_version` [missing-attribute] -ERROR homeassistant/components/actron_air/climate.py:137:16-37: Returned type `ActronAirNeoACSystem` is not assignable to declared return type `ActronAirNeoStatus` [bad-return] +ERROR homeassistant/components/actron_air/climate.py:137:16-37: Returned type `ActronAirACSystem` is not assignable to declared return type `ActronAirStatus` [bad-return] ERROR homeassistant/components/actron_air/climate.py:142:16-55: Object of class `NoneType` has no attribute `is_on` [missing-attribute] ERROR homeassistant/components/actron_air/climate.py:145:16-54: Object of class `NoneType` has no attribute `mode` [missing-attribute] ERROR homeassistant/components/actron_air/climate.py:151:20-62: Object of class `NoneType` has no attribute `fan_mode` [missing-attribute] @@ -187,16 +187,17 @@ ERROR homeassistant/components/actron_air/climate.py:182:15-64: Object of class ERROR homeassistant/components/actron_air/climate.py:202:30-42: `int | None` is not assignable to attribute `_zone_id` with type `int` [bad-assignment] ERROR homeassistant/components/actron_air/climate.py:203:14-29: Class member `ActronZoneClimate._attr_unique_id` overrides parent class `BaseClimateEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/actron_air/climate.py:204:14-31: Class member `ActronZoneClimate._attr_device_info` overrides parent class `BaseClimateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/actron_air/climate.py:227:16-28: Object of class `ActronAirNeoACSystem` has no attribute `zones` [missing-attribute] -ERROR homeassistant/components/actron_air/coordinator.py:55:30-46: Cannot index into `ActronAirNeoACSystem` [bad-index] +ERROR homeassistant/components/actron_air/climate.py:227:16-28: Object of class `ActronAirACSystem` has no attribute `zones` [missing-attribute] +ERROR homeassistant/components/actron_air/coordinator.py:55:30-46: Cannot index into `ActronAirACSystem` [bad-index] ERROR homeassistant/components/actron_air/coordinator.py:60:15-33: Class member `ActronAirSystemCoordinator._async_update_data` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/actron_air/coordinator.py:65:16-27: Returned type `ActronAirNeoStatus | None` is not assignable to declared return type `ActronAirNeoStatus` [bad-return] +ERROR homeassistant/components/actron_air/coordinator.py:65:16-27: Returned type `ActronAirStatus | None` is not assignable to declared return type `ActronAirStatus` [bad-return] ERROR homeassistant/components/adax/climate.py:56:5-29: Class member `AdaxDevice._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/adax/climate.py:148:5-29: Class member `LocalAdaxDevice._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/adax/sensor.py:34:9-12: Unexpected keyword argument `key` in function `AdaxSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/adax/sensor.py:42:9-12: Unexpected keyword argument `key` in function `AdaxSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/adax/sensor.py:75:5-23: Class member `AdaxSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/adax/sensor.py:75:5-23: Class member `AdaxSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/adguard/entity.py:63:25-70:14: Argument `set[tuple[str, str, int, str]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/adguard/sensor.py:34:9-12: Unexpected keyword argument `key` in function `AdGuardHomeEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/adguard/sensor.py:35:9-24: Unexpected keyword argument `translation_key` in function `AdGuardHomeEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/adguard/sensor.py:40:9-12: Unexpected keyword argument `key` in function `AdGuardHomeEntityDescription.__init__` [unexpected-keyword] @@ -260,7 +261,7 @@ ERROR homeassistant/components/advantage_air/switch.py:52:5-23: Class member `Ad ERROR homeassistant/components/advantage_air/switch.py:78:5-23: Class member `AdvantageAirMyFan._attr_device_class` overrides parent class `AdvantageAirAcEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/advantage_air/switch.py:104:5-23: Class member `AdvantageAirNightMode._attr_device_class` overrides parent class `AdvantageAirAcEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/advantage_air/switch.py:128:5-23: Class member `AdvantageAirRelay._attr_device_class` overrides parent class `AdvantageAirThingEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/aemet/__init__.py:70:38-73:6: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[bytes] | PathLike[str] | bytes | str, bool, (((...) -> Any, str, tuple[type[BaseException], BaseException, TracebackType]) -> object) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/aemet/__init__.py:70:38-73:6: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[StrOrBytesPath, bool, (((...) -> Any, str, tuple[type[BaseException], BaseException, TracebackType]) -> object) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/aemet/config_flow.py:85:9-31: Class member `AemetConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/aemet/image.py:19:9-12: Unexpected keyword argument `key` in function `homeassistant.components.image.ImageEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/aemet/image.py:20:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.image.ImageEntityDescription.__init__` [unexpected-keyword] @@ -449,8 +450,6 @@ ERROR homeassistant/components/airgradient/switch.py:87:5-23: Class member `AirG ERROR homeassistant/components/airgradient/update.py:36:5-23: Class member `AirGradientUpdate._attr_device_class` overrides parent class `AirGradientEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/airly/config_flow.py:67:28-50: `location_nearest_valid` may be uninitialized [unbound-name] ERROR homeassistant/components/airly/coordinator.py:64:5-17: Class member `AirlyDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/airly/coordinator.py:126:18-33: Class member `AirlyDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/airly/coordinator.py:126:36-129:14: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@AirlyDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/airly/sensor.py:68:9-12: Unexpected keyword argument `key` in function `AirlySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/airly/sensor.py:69:9-24: Unexpected keyword argument `translation_key` in function `AirlySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/airly/sensor.py:79:9-12: Unexpected keyword argument `key` in function `AirlySensorEntityDescription.__init__` [unexpected-keyword] @@ -480,6 +479,8 @@ ERROR homeassistant/components/airnow/sensor.py:122:9-12: Unexpected keyword arg ERROR homeassistant/components/airnow/sensor.py:123:9-24: Unexpected keyword argument `translation_key` in function `AirNowEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/airnow/sensor.py:149:5-23: Class member `AirNowSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/airnow/sensor.py:149:5-23: Class member `AirNowSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/airobot/climate.py:60:5-29: Class member `AirobotClimate._attr_supported_features` overrides parent class `AirobotEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/airobot/coordinator.py:32:5-17: Class member `AirobotDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/airos/binary_sensor.py:35:9-12: Unexpected keyword argument `key` in function `AirOSBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/airos/binary_sensor.py:36:9-24: Unexpected keyword argument `translation_key` in function `AirOSBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/airos/binary_sensor.py:37:9-24: Unexpected keyword argument `entity_category` in function `AirOSBinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -651,8 +652,6 @@ ERROR homeassistant/components/airthings/sensor.py:135:9-12: Unexpected keyword ERROR homeassistant/components/airthings/sensor.py:182:14-32: Class member `AirthingsDeviceSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/airthings_ble/coordinator.py:35:5-17: Class member `AirthingsBLEDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/airthings_ble/coordinator.py:44:53-46:10: No matching overload found for function `dict.get` called with arguments: (Any | None, Literal[300]) [no-matching-overload] -ERROR homeassistant/components/airthings_ble/coordinator.py:85:18-33: Class member `AirthingsBLEDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/airthings_ble/coordinator.py:85:36-89:14: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@AirthingsBLEDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/airthings_ble/sensor.py:46:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/airthings_ble/sensor.py:47:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/airthings_ble/sensor.py:53:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] @@ -690,12 +689,8 @@ ERROR homeassistant/components/airvisual/sensor.py:66:9-13: Unexpected keyword a ERROR homeassistant/components/airvisual/sensor.py:69:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/airvisual/sensor.py:122:7-31: Field `entity_description` is declared `EntityDescription` in ancestor `class AirVisualEntity: ... `, which is not assignable to the type `SensorEntityDescription` implied by multiple inheritance [inconsistent-inheritance] -ERROR homeassistant/components/airvisual/sensor.py:161:20-38: Class member `AirVisualGeographySensor._attr_native_value` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/airvisual/sensor.py:161:45-55: Class member `AirVisualGeographySensor._attr_icon` overrides parent class `AirVisualEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/airvisual/sensor.py:161:45-55: Class member `AirVisualGeographySensor._attr_icon` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/airvisual_pro/__init__.py:117:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/airvisual_pro/sensor.py:40:9-12: Unexpected keyword argument `key` in function `AirVisualProMeasurementDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/airvisual_pro/sensor.py:44:13-33: `async_get_aqi_locale` is uninitialized [unbound-name] ERROR homeassistant/components/airvisual_pro/sensor.py:48:9-12: Unexpected keyword argument `key` in function `AirVisualProMeasurementDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/airvisual_pro/sensor.py:56:9-24: Unexpected keyword argument `translation_key` in function `AirVisualProMeasurementDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/airvisual_pro/sensor.py:59:9-12: Unexpected keyword argument `key` in function `AirVisualProMeasurementDescription.__init__` [unexpected-keyword] @@ -1419,10 +1414,10 @@ ERROR homeassistant/components/amcrest/switch.py:22:9-12: Unexpected keyword arg ERROR homeassistant/components/amcrest/switch.py:23:9-13: Unexpected keyword argument `name` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/amcrest/switch.py:24:9-13: Unexpected keyword argument `icon` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ampio/air_quality.py:8:1-28: Could not find import of `asmog` [missing-import] -ERROR homeassistant/components/analytics/analytics.py:154:10-32: Function declared to return `AnalyticsModifications` but is missing an explicit `return` [bad-return] -ERROR homeassistant/components/analytics/analytics.py:167:16-60: Returned type `ModuleType` is not assignable to declared return type `AnalyticsPlatformProtocol | None` [bad-return] -ERROR homeassistant/components/analytics/analytics.py:407:33-48: `enabled_domains` may be uninitialized [unbound-name] -ERROR homeassistant/components/analytics/analytics.py:412:35-50: `enabled_domains` may be uninitialized [unbound-name] +ERROR homeassistant/components/analytics/analytics.py:169:10-32: Function declared to return `AnalyticsModifications` but is missing an explicit `return` [bad-return] +ERROR homeassistant/components/analytics/analytics.py:182:16-60: Returned type `ModuleType` is not assignable to declared return type `AnalyticsPlatformProtocol | None` [bad-return] +ERROR homeassistant/components/analytics/analytics.py:445:33-48: `enabled_domains` may be uninitialized [unbound-name] +ERROR homeassistant/components/analytics/analytics.py:450:35-50: `enabled_domains` may be uninitialized [unbound-name] ERROR homeassistant/components/analytics_insights/config_flow.py:48:9-31: Class member `HomeassistantAnalyticsConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/analytics_insights/coordinator.py:46:5-17: Class member `HomeassistantAnalyticsDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/analytics_insights/sensor.py:37:9-12: Unexpected keyword argument `key` in function `AnalyticsSensorEntityDescription.__init__` [unexpected-keyword] @@ -1535,6 +1530,22 @@ ERROR homeassistant/components/androidtv_remote/media_player.py:44:5-23: Class m ERROR homeassistant/components/androidtv_remote/media_player.py:45:5-29: Class member `AndroidTVRemoteMediaPlayerEntity._attr_supported_features` overrides parent class `AndroidTVRemoteBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/androidtv_remote/remote.py:43:5-29: Class member `AndroidTVRemoteEntity._attr_supported_features` overrides parent class `AndroidTVRemoteBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/anel_pwrctrl/switch.py:9:1-54: Could not find import of `anel_pwrctrl` [missing-import] +ERROR homeassistant/components/anglian_water/config_flow.py:82:44-77: Object of class `BaseAuth` has no attribute `refresh_token` [missing-attribute] +ERROR homeassistant/components/anglian_water/coordinator.py:26:5-17: Class member `AnglianWaterUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/anglian_water/sensor.py:46:9-12: Unexpected keyword argument `key` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:51:9-24: Unexpected keyword argument `translation_key` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:52:9-24: Unexpected keyword argument `entity_category` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:55:9-12: Unexpected keyword argument `key` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:60:9-24: Unexpected keyword argument `translation_key` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:61:9-24: Unexpected keyword argument `entity_category` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:64:9-12: Unexpected keyword argument `key` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:68:9-24: Unexpected keyword argument `translation_key` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:69:9-24: Unexpected keyword argument `entity_category` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:72:9-12: Unexpected keyword argument `key` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:76:9-24: Unexpected keyword argument `translation_key` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:77:9-24: Unexpected keyword argument `entity_category` in function `AnglianWaterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/anglian_water/sensor.py:102:5-23: Class member `AnglianWaterSensorEntity.entity_description` overrides parent class `AnglianWaterEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/anglian_water/sensor.py:102:5-23: Class member `AnglianWaterSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/anova/__init__.py:72:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/anova/coordinator.py:35:5-17: Class member `AnovaCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/anova/sensor.py:34:9-12: Unexpected keyword argument `key` in function `AnovaSensorEntityDescription.__init__` [unexpected-keyword] @@ -1560,19 +1571,17 @@ ERROR homeassistant/components/anthemav/config_flow.py:75:38-56: Object of class ERROR homeassistant/components/anthemav/media_player.py:44:13-25: Argument `Protocol` is not assignable to parameter `avr` with type `AVR` in function `AnthemAVR.__init__` [bad-argument-type] ERROR homeassistant/components/anthemav/media_player.py:46:28-46: Object of class `Protocol` has no attribute `zones` [missing-attribute] ERROR homeassistant/components/anthropic/ai_task.py:60:16-44: Object of class `ToolResultContent` has no attribute `content` [missing-attribute] -ERROR homeassistant/components/anthropic/entity.py:213:54-77: Argument `Iterable[RedactedThinkingBlock | ServerToolUseBlock | TextBlock | ThinkingBlock | ToolUseBlock | WebSearchToolResultBlock | TypedDict[DocumentBlockParam] | TypedDict[ImageBlockParam] | TypedDict[RedactedThinkingBlockParam] | TypedDict[SearchResultBlockParam] | TypedDict[ServerToolUseBlockParam] | TypedDict[TextBlockParam] | TypedDict[ThinkingBlockParam] | TypedDict[ToolResultBlockParam] | TypedDict[ToolUseBlockParam] | TypedDict[WebSearchToolResultBlockParam]] | str` is not assignable to parameter `text` with type `str` in function `anthropic.types.text_block_param.TextBlockParam.__init__` [bad-argument-type] -ERROR homeassistant/components/anthropic/entity.py:229:54-77: Argument `Iterable[RedactedThinkingBlock | ServerToolUseBlock | TextBlock | ThinkingBlock | ToolUseBlock | WebSearchToolResultBlock | TypedDict[DocumentBlockParam] | TypedDict[ImageBlockParam] | TypedDict[RedactedThinkingBlockParam] | TypedDict[SearchResultBlockParam] | TypedDict[ServerToolUseBlockParam] | TypedDict[TextBlockParam] | TypedDict[ThinkingBlockParam] | TypedDict[ToolResultBlockParam] | TypedDict[ToolUseBlockParam] | TypedDict[WebSearchToolResultBlockParam]] | str` is not assignable to parameter `text` with type `str` in function `anthropic.types.text_block_param.TextBlockParam.__init__` [bad-argument-type] -ERROR homeassistant/components/anthropic/entity.py:261:58-81: Argument `Iterable[RedactedThinkingBlock | ServerToolUseBlock | TextBlock | ThinkingBlock | ToolUseBlock | WebSearchToolResultBlock | TypedDict[DocumentBlockParam] | TypedDict[ImageBlockParam] | TypedDict[RedactedThinkingBlockParam] | TypedDict[SearchResultBlockParam] | TypedDict[ServerToolUseBlockParam] | TypedDict[TextBlockParam] | TypedDict[ThinkingBlockParam] | TypedDict[ToolResultBlockParam] | TypedDict[ToolUseBlockParam] | TypedDict[WebSearchToolResultBlockParam]] | str` is not assignable to parameter `text` with type `str` in function `anthropic.types.text_block_param.TextBlockParam.__init__` [bad-argument-type] -ERROR homeassistant/components/anthropic/entity.py:399:24-35: `first_block` is uninitialized [unbound-name] -ERROR homeassistant/components/anthropic/entity.py:410:21-32: `first_block` is uninitialized [unbound-name] -ERROR homeassistant/components/anthropic/entity.py:431:20-31: `first_block` is uninitialized [unbound-name] -ERROR homeassistant/components/anthropic/entity.py:507:21-38: `current_tool_args` is uninitialized [unbound-name] -ERROR homeassistant/components/anthropic/entity.py:529:40-57: `current_tool_args` is uninitialized [unbound-name] -ERROR homeassistant/components/anthropic/entity.py:529:62-79: `current_tool_args` is uninitialized [unbound-name] +ERROR homeassistant/components/anthropic/entity.py:184:29-189:22: Argument `bool | dict[str, Unknown] | float | int | list[Unknown] | str | WebSearchToolRequestErrorParam | None` is not assignable to parameter `content` with type `Iterable[WebSearchResultBlockParam] | WebSearchToolRequestErrorParam` in function `anthropic.types.web_search_tool_result_block_param.WebSearchToolResultBlockParam.__init__` [bad-argument-type] +ERROR homeassistant/components/anthropic/entity.py:210:54-77: Argument `Iterable[RedactedThinkingBlock | ServerToolUseBlock | TextBlock | ThinkingBlock | ToolUseBlock | WebSearchToolResultBlock | DocumentBlockParam | ImageBlockParam | RedactedThinkingBlockParam | SearchResultBlockParam | ServerToolUseBlockParam | TextBlockParam | ThinkingBlockParam | ToolResultBlockParam | ToolUseBlockParam | WebSearchToolResultBlockParam] | str` is not assignable to parameter `text` with type `str` in function `anthropic.types.text_block_param.TextBlockParam.__init__` [bad-argument-type] +ERROR homeassistant/components/anthropic/entity.py:226:54-77: Argument `Iterable[RedactedThinkingBlock | ServerToolUseBlock | TextBlock | ThinkingBlock | ToolUseBlock | WebSearchToolResultBlock | DocumentBlockParam | ImageBlockParam | RedactedThinkingBlockParam | SearchResultBlockParam | ServerToolUseBlockParam | TextBlockParam | ThinkingBlockParam | ToolResultBlockParam | ToolUseBlockParam | WebSearchToolResultBlockParam] | str` is not assignable to parameter `text` with type `str` in function `anthropic.types.text_block_param.TextBlockParam.__init__` [bad-argument-type] +ERROR homeassistant/components/anthropic/entity.py:258:58-81: Argument `Iterable[RedactedThinkingBlock | ServerToolUseBlock | TextBlock | ThinkingBlock | ToolUseBlock | WebSearchToolResultBlock | DocumentBlockParam | ImageBlockParam | RedactedThinkingBlockParam | SearchResultBlockParam | ServerToolUseBlockParam | TextBlockParam | ThinkingBlockParam | ToolResultBlockParam | ToolUseBlockParam | WebSearchToolResultBlockParam] | str` is not assignable to parameter `text` with type `str` in function `anthropic.types.text_block_param.TextBlockParam.__init__` [bad-argument-type] +ERROR homeassistant/components/anthropic/entity.py:396:24-35: `first_block` is uninitialized [unbound-name] +ERROR homeassistant/components/anthropic/entity.py:407:21-32: `first_block` is uninitialized [unbound-name] +ERROR homeassistant/components/anthropic/entity.py:428:20-31: `first_block` is uninitialized [unbound-name] +ERROR homeassistant/components/anthropic/entity.py:504:21-38: `current_tool_args` is uninitialized [unbound-name] +ERROR homeassistant/components/anthropic/entity.py:526:40-57: `current_tool_args` is uninitialized [unbound-name] +ERROR homeassistant/components/anthropic/entity.py:526:62-79: `current_tool_args` is uninitialized [unbound-name] ERROR homeassistant/components/aosmith/coordinator.py:39:5-17: Class member `AOSmithStatusCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/aosmith/coordinator.py:72:18-33: Class member `AOSmithStatusCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/aosmith/coordinator.py:72:36-49: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@AOSmithStatusCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/aosmith/coordinator.py:74:36-52: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@AOSmithStatusCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/aosmith/coordinator.py:82:5-17: Class member `AOSmithEnergyCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/aosmith/sensor.py:35:9-12: Unexpected keyword argument `key` in function `AOSmithStatusSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/aosmith/sensor.py:36:9-24: Unexpected keyword argument `translation_key` in function `AOSmithStatusSensorEntityDescription.__init__` [unexpected-keyword] @@ -1584,208 +1593,219 @@ ERROR homeassistant/components/apcupsd/binary_sensor.py:21:5-20: Unexpected keyw ERROR homeassistant/components/apcupsd/binary_sensor.py:43:7-19: Field `entity_description` is declared `EntityDescription` in ancestor `class APCUPSdEntity: ... `, which is not assignable to the type `BinarySensorEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/apcupsd/coordinator.py:62:5-17: Class member `APCUPSdCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/apcupsd/sensor.py:37:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:38:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:39:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:42:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:43:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:49:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:50:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:51:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:52:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:55:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:56:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:57:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:58:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:61:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:62:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:63:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:66:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:67:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:41:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:42:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:43:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:46:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:47:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:53:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:54:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:55:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:56:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:59:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:60:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:61:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:62:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:65:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:66:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:67:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/apcupsd/sensor.py:70:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/apcupsd/sensor.py:71:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/apcupsd/sensor.py:74:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/apcupsd/sensor.py:75:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:81:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:87:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:88:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:89:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:90:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:93:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:94:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:100:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:101:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:102:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:103:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:106:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:107:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:108:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:111:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:112:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:113:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:116:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:117:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:118:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:119:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:122:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:123:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:124:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:127:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:128:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:129:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:132:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:133:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:134:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:135:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:138:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:139:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:140:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:143:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:144:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:145:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:146:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:149:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:150:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:153:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:156:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:157:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:158:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:159:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:162:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:163:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:169:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:170:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:176:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:177:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:78:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:79:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:85:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:91:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:92:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:93:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:94:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:97:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:98:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:104:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:105:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:106:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:107:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:110:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:111:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:112:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:115:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:116:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:117:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:120:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:121:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:122:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:123:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:126:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:127:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:128:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:131:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:132:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:133:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:136:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:137:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:138:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:139:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:142:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:143:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:144:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:147:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:148:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:149:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:150:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:153:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:154:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:157:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:160:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:161:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:162:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:163:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:166:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:167:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:173:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:174:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/apcupsd/sensor.py:180:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/apcupsd/sensor.py:181:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:182:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:183:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:186:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:187:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:188:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:191:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:192:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:198:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:199:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:205:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:206:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:211:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:212:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:216:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:217:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:220:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:223:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:224:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:225:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:226:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:229:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:230:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:231:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:234:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:235:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:240:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:241:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:242:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:245:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:246:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:248:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:251:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:252:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:257:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:258:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:259:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:262:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:263:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:264:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:265:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:268:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:269:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:272:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:275:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:276:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:279:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:282:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:283:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:286:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:289:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:290:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:293:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:296:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:297:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:300:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:303:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:304:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:308:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:309:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:315:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:316:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:322:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:323:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:324:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:325:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:328:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:329:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:330:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:331:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:334:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:335:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:336:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:337:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:340:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:341:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:343:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:346:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:347:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:184:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:185:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:186:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:187:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:190:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:191:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:192:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:195:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:196:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:202:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:203:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:209:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:210:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:215:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:216:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:220:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:221:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:224:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:227:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:228:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:229:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:230:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:233:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:234:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:235:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:238:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:239:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:244:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:245:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:246:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:249:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:250:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:252:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:255:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:256:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:261:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:262:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:263:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:266:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:267:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:268:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:269:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:272:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:273:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:276:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:279:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:280:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:283:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:286:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:287:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:290:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:293:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:294:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:297:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:300:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:301:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:304:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:307:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:308:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:312:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:313:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:319:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:320:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:326:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:327:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:328:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:329:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:332:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:333:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:334:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:335:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:338:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:339:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:340:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:341:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:344:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:345:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:347:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/apcupsd/sensor.py:350:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/apcupsd/sensor.py:351:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:352:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:353:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:356:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:357:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:358:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:359:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:362:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:363:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:364:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:367:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:368:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:369:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:370:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:373:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:374:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:354:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:355:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:356:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:357:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:360:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:361:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:362:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:363:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:366:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:367:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:368:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:371:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:372:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:373:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:374:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/apcupsd/sensor.py:377:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/apcupsd/sensor.py:378:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:379:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:382:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:383:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:389:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:390:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:396:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:397:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:398:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:401:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:402:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:403:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:404:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:407:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:408:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:409:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:410:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:413:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:414:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:415:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:418:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:419:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:420:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:423:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:424:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:425:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/apcupsd/sensor.py:497:7-20: Field `entity_description` is declared `EntityDescription` in ancestor `class APCUPSdEntity: ... +ERROR homeassistant/components/apcupsd/sensor.py:381:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:382:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:383:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:386:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:387:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:393:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:394:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:400:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:401:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:402:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:405:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:406:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:407:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:408:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:411:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:412:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:413:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:414:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:417:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:418:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:419:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:422:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:423:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:424:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:427:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:428:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:429:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/apcupsd/sensor.py:501:7-20: Field `entity_description` is declared `EntityDescription` in ancestor `class APCUPSdEntity: ... `, which is not assignable to the type `SensorEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/api/__init__.py:444:37-55: `response_requested` may be uninitialized [unbound-name] ERROR homeassistant/components/api/__init__.py:452:12-30: `response_requested` may be uninitialized [unbound-name] +ERROR homeassistant/components/apple_tv/__init__.py:151:10-26: Could not find name `AppleTVInterface` [unknown-name] +ERROR homeassistant/components/apple_tv/__init__.py:245:16-26: Could not find name `exceptions` [unknown-name] +ERROR homeassistant/components/apple_tv/__init__.py:284:30-37: Could not find name `AppleTV` [unknown-name] +ERROR homeassistant/components/apple_tv/__init__.py:295:13-21: Could not find name `Protocol` [unknown-name] +ERROR homeassistant/components/apple_tv/__init__.py:300:22-26: Could not find name `scan` [unknown-name] +ERROR homeassistant/components/apple_tv/__init__.py:308:25-32: Could not find name `AppleTV` [unknown-name] +ERROR homeassistant/components/apple_tv/__init__.py:319:36-43: Could not find name `AppleTV` [unknown-name] +ERROR homeassistant/components/apple_tv/__init__.py:326:24-32: Could not find name `Protocol` [unknown-name] +ERROR homeassistant/components/apple_tv/__init__.py:348:26-33: Could not find name `connect` [unknown-name] ERROR homeassistant/components/apple_tv/__init__.py:372:13-373:26: Object of class `set` has no attribute `removesuffix` [missing-attribute] +ERROR homeassistant/components/apple_tv/__init__.py:382:38-49: Could not find name `DeviceModel` [unknown-name] +ERROR homeassistant/components/apple_tv/__init__.py:383:22-31: Could not find name `model_str` [unknown-name] ERROR homeassistant/components/apple_tv/__init__.py:392:57-64: Unpacked keyword argument `set[tuple[str, str | None]] | str | Any` is not assignable to parameter `config_subentry_id` with type `UndefinedType | str | None` in function `homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create` [bad-argument-type] ERROR homeassistant/components/apple_tv/__init__.py:392:57-64: Unpacked keyword argument `set[tuple[str, str | None]] | str | Any` is not assignable to parameter `configuration_url` with type `URL | UndefinedType | str | None` in function `homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create` [bad-argument-type] ERROR homeassistant/components/apple_tv/__init__.py:392:57-64: Unpacked keyword argument `set[tuple[str, str | None]] | str | Any` is not assignable to parameter `connections` with type `UndefinedType | set[tuple[str, str]] | None` in function `homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create` [bad-argument-type] @@ -1808,8 +1828,89 @@ ERROR homeassistant/components/apple_tv/__init__.py:392:57-64: Unpacked keyword ERROR homeassistant/components/apple_tv/__init__.py:392:57-64: Unpacked keyword argument `set[tuple[str, str | None]] | str | Any` is not assignable to parameter `translation_key` with type `str | None` in function `homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create` [bad-argument-type] ERROR homeassistant/components/apple_tv/__init__.py:392:57-64: Unpacked keyword argument `set[tuple[str, str | None]] | str | Any` is not assignable to parameter `translation_placeholders` with type `Mapping[str, str] | None` in function `homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create` [bad-argument-type] ERROR homeassistant/components/apple_tv/__init__.py:392:57-64: Unpacked keyword argument `set[tuple[str, str | None]] | str | Any` is not assignable to parameter `via_device` with type `UndefinedType | tuple[str, str] | None` in function `homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create` [bad-argument-type] +ERROR homeassistant/components/apple_tv/config_flow.py:13:1-41: Could not find import of `pyatv` [missing-import] +ERROR homeassistant/components/apple_tv/config_flow.py:14:1-66: Could not find import of `pyatv.const` [missing-import] +ERROR homeassistant/components/apple_tv/config_flow.py:15:1-50: Could not find import of `pyatv.convert` [missing-import] +ERROR homeassistant/components/apple_tv/config_flow.py:16:1-40: Could not find import of `pyatv.helpers` [missing-import] +ERROR homeassistant/components/apple_tv/config_flow.py:17:1-55: Could not find import of `pyatv.interface` [missing-import] ERROR homeassistant/components/apple_tv/config_flow.py:113:9-31: Class member `AppleTVConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] +ERROR homeassistant/components/apple_tv/config_flow.py:141:31-55: Object of class `NoneType` has no attribute `all_identifiers` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:144:16-35: Object of class `NoneType` has no attribute `identifier` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:199:44-68: Object of class `NoneType` has no attribute `all_identifiers` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:309:36-60: Object of class `NoneType` has no attribute `all_identifiers` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:315:40-56: Object of class `NoneType` has no attribute `address` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:351:45-62: Object of class `NoneType` has no attribute `services` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:354:20-40: Object of class `NoneType` has no attribute `device_info` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:356:21-34: Object of class `NoneType` has no attribute `name` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:363:31-55: Object of class `NoneType` has no attribute `all_identifiers` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:364:37-53: Object of class `NoneType` has no attribute `address` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:402:20-44: Object of class `NoneType` has no attribute `all_identifiers` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:409:20-44: Argument `object | Unknown` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type] +ERROR homeassistant/components/apple_tv/config_flow.py:417:25-38: Object of class `NoneType` has no attribute `name` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:418:35-55: Object of class `NoneType` has no attribute `device_info` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:432:19-39: Object of class `NoneType` has no attribute `get_service` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:515:17-33: Object of class `NoneType` has no attribute `pin` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:516:23-42: Object of class `NoneType` has no attribute `finish` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:517:34-53: Object of class `NoneType` has no attribute `value` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:517:57-77: Object of class `NoneType` has no attribute `service` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:540:19-38: Object of class `NoneType` has no attribute `finish` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:541:16-39: Object of class `NoneType` has no attribute `has_paired` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:542:34-53: Object of class `NoneType` has no attribute `value` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:542:57-77: Object of class `NoneType` has no attribute `service` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:545:19-37: Object of class `NoneType` has no attribute `close` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:549:9-25: Object of class `NoneType` has no attribute `pin` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:587:19-37: Object of class `NoneType` has no attribute `close` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:599:24-37: Object of class `NoneType` has no attribute `name` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:601:31-47: Object of class `NoneType` has no attribute `address` [missing-attribute] +ERROR homeassistant/components/apple_tv/config_flow.py:615:46-59: Object of class `NoneType` has no attribute `name` [missing-attribute] +ERROR homeassistant/components/apple_tv/entity.py:5:1-56: Could not find import of `pyatv.interface` [missing-import] +ERROR homeassistant/components/apple_tv/media_player.py:9:1-29: Could not find import of `pyatv` [missing-import] +ERROR homeassistant/components/apple_tv/media_player.py:10:1-18:2: Could not find import of `pyatv.const` [missing-import] +ERROR homeassistant/components/apple_tv/media_player.py:19:1-40: Could not find import of `pyatv.helpers` [missing-import] +ERROR homeassistant/components/apple_tv/media_player.py:20:1-28:2: Could not find import of `pyatv.interface` [missing-import] ERROR homeassistant/components/apple_tv/media_player.py:117:5-29: Class member `AppleTvMediaPlayer._attr_supported_features` overrides parent class `AppleTVEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/apple_tv/media_player.py:165:26-39: Object of class `NoneType` has no attribute `apps` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:192:17-31: Object of class `NoneType` has no attribute `power` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:196:21-47: Object of class `NoneType` has no attribute `device_state` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:257:25-42: Object of class `NoneType` has no attribute `metadata` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:268:25-42: Object of class `NoneType` has no attribute `metadata` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:286:19-43: Object of class `NoneType` has no attribute `media_type` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:293:20-52: Object of class `NoneType` has no attribute `content_identifier` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:300:20-34: Object of class `NoneType` has no attribute `audio` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:307:20-44: Object of class `NoneType` has no attribute `total_time` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:314:20-42: Object of class `NoneType` has no attribute `position` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:333:19-32: Object of class `NoneType` has no attribute `apps` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:347:19-34: Object of class `NoneType` has no attribute `stream` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:350:19-34: Object of class `NoneType` has no attribute `stream` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:364:20-37: Object of class `NoneType` has no attribute `metadata` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:375:29-46: Object of class `NoneType` has no attribute `metadata` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:385:20-39: Object of class `NoneType` has no attribute `title` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:392:20-40: Object of class `NoneType` has no attribute `artist` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:399:20-39: Object of class `NoneType` has no attribute `album` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:406:20-45: Object of class `NoneType` has no attribute `series_name` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:413:24-51: Object of class `NoneType` has no attribute `season_number` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:420:24-52: Object of class `NoneType` has no attribute `episode_number` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:429:28-48: Object of class `NoneType` has no attribute `repeat` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:441:20-41: Object of class `NoneType` has no attribute `shuffle` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:447:20-37: Object of class `NoneType` has no attribute `features` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:491:19-33: Object of class `NoneType` has no attribute `power` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:500:20-34: Object of class `NoneType` has no attribute `power` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:503:19-33: Object of class `NoneType` has no attribute `power` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:508:19-42: Object of class `NoneType` has no attribute `remote_control` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:513:19-42: Object of class `NoneType` has no attribute `remote_control` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:518:19-42: Object of class `NoneType` has no attribute `remote_control` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:523:19-42: Object of class `NoneType` has no attribute `remote_control` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:528:19-42: Object of class `NoneType` has no attribute `remote_control` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:533:19-42: Object of class `NoneType` has no attribute `remote_control` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:538:19-42: Object of class `NoneType` has no attribute `remote_control` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:543:19-33: Object of class `NoneType` has no attribute `audio` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:548:19-33: Object of class `NoneType` has no attribute `audio` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:554:19-33: Object of class `NoneType` has no attribute `audio` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:563:19-42: Object of class `NoneType` has no attribute `remote_control` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:568:19-42: Object of class `NoneType` has no attribute `remote_control` [missing-attribute] +ERROR homeassistant/components/apple_tv/media_player.py:576:23-36: Object of class `NoneType` has no attribute `apps` [missing-attribute] +ERROR homeassistant/components/apple_tv/remote.py:8:1-36: Could not find import of `pyatv.const` [missing-import] +ERROR homeassistant/components/apple_tv/remote.py:85:42-65: Object of class `NoneType` has no attribute `remote_control` [missing-attribute] ERROR homeassistant/components/application_credentials/__init__.py:139:25-36: Cannot set item in `dict[str, ClientCredential]` [unsupported-operation] ERROR homeassistant/components/application_credentials/__init__.py:270:10-29: Function declared to return `AuthorizationServer` but is missing an explicit `return` [bad-return] ERROR homeassistant/components/application_credentials/__init__.py:275:10-63: Function declared to return `AbstractOAuth2Implementation` but is missing an explicit `return` [bad-return] @@ -2016,14 +2117,14 @@ ERROR homeassistant/components/aseko_pool_live/sensor.py:105:5-23: Class member ERROR homeassistant/components/aseko_pool_live/sensor.py:105:5-23: Class member `AsekoSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/assist_pipeline/audio_enhancer.py:86:34-54: Object of class `NoneType` has no attribute `Process10ms` [missing-attribute] ERROR homeassistant/components/assist_pipeline/audio_enhancer.py:90:21-53: Object of class `NoneType` has no attribute `Process10ms` [missing-attribute] -ERROR homeassistant/components/assist_pipeline/pipeline.py:1231:44-51: `content` may be uninitialized [unbound-name] -ERROR homeassistant/components/assist_pipeline/pipeline.py:1232:50-57: `content` may be uninitialized [unbound-name] -ERROR homeassistant/components/assist_pipeline/pipeline.py:1251:47-67: Object of class `NoneType` has no attribute `get` [missing-attribute] -ERROR homeassistant/components/assist_pipeline/pipeline.py:1602:31-43: No matching overload found for function `min` called with arguments: (Literal[32767], float) [no-matching-overload] -ERROR homeassistant/components/assist_pipeline/pipeline.py:1895:5-69: `TypedDict[SerializedPipelineStorageCollection]` is not assignable to upper bound `TypedDict[SerializedStorageCollection]` of type variable `_StoreT` [bad-specialization] -ERROR homeassistant/components/assist_pipeline/pipeline.py:1963:13-20: Key `items` is not defined in TypedDict `SerializedPipelineStorageCollection` [bad-typed-dict-key] -ERROR homeassistant/components/assist_pipeline/pipeline.py:2156:38-45: TypedDict `SerializedPipelineStorageCollection` does not have key `items` [bad-typed-dict-key] -ERROR homeassistant/components/assist_pipeline/pipeline.py:2211:9-34: Object of class `NoneType` has no attribute `pop` [missing-attribute] +ERROR homeassistant/components/assist_pipeline/pipeline.py:1174:44-51: `content` may be uninitialized [unbound-name] +ERROR homeassistant/components/assist_pipeline/pipeline.py:1175:50-57: `content` may be uninitialized [unbound-name] +ERROR homeassistant/components/assist_pipeline/pipeline.py:1194:47-67: Object of class `NoneType` has no attribute `get` [missing-attribute] +ERROR homeassistant/components/assist_pipeline/pipeline.py:1603:31-43: No matching overload found for function `min` called with arguments: (Literal[32767], float) [no-matching-overload] +ERROR homeassistant/components/assist_pipeline/pipeline.py:1896:5-69: `SerializedPipelineStorageCollection` is not assignable to upper bound `SerializedStorageCollection` of type variable `_StoreT` [bad-specialization] +ERROR homeassistant/components/assist_pipeline/pipeline.py:1964:13-20: Key `items` is not defined in TypedDict `SerializedPipelineStorageCollection` [bad-typed-dict-key] +ERROR homeassistant/components/assist_pipeline/pipeline.py:2157:38-45: TypedDict `SerializedPipelineStorageCollection` does not have key `items` [bad-typed-dict-key] +ERROR homeassistant/components/assist_pipeline/pipeline.py:2212:9-34: Object of class `NoneType` has no attribute `pop` [missing-attribute] ERROR homeassistant/components/assist_pipeline/select.py:63:5-23: Class member `AssistPipelineSelect.entity_description` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/assist_pipeline/select.py:64:9-12: Unexpected keyword argument `key` in function `homeassistant.components.select.SelectEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/assist_pipeline/select.py:65:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.select.SelectEntityDescription.__init__` [unexpected-keyword] @@ -2264,7 +2365,7 @@ ERROR homeassistant/components/aurora_abb_powerone/sensor.py:118:9-40: Unexpecte ERROR homeassistant/components/aurora_abb_powerone/sensor.py:121:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/aurora_abb_powerone/sensor.py:125:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/aurora_abb_powerone/sensor.py:159:14-32: Class member `AuroraSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/aussie_broadband/__init__.py:53:26-34: `list[dict[str, Any]]` is not assignable to attribute `runtime_data` with type `list[TypedDict[AussieBroadbandServiceData]]` [bad-assignment] +ERROR homeassistant/components/aussie_broadband/__init__.py:53:26-34: `list[dict[str, Any]]` is not assignable to attribute `runtime_data` with type `list[AussieBroadbandServiceData]` [bad-assignment] ERROR homeassistant/components/aussie_broadband/coordinator.py:37:5-17: Class member `AussieBroadbandDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/aussie_broadband/coordinator.py:60:49-65: Argument `str` is not assignable to parameter `service_id` with type `int` in function `aussiebb.asyncio.AussieBB.get_usage` [bad-argument-type] ERROR homeassistant/components/aussie_broadband/sensor.py:41:9-12: Unexpected keyword argument `key` in function `SensorValueEntityDescription.__init__` [unexpected-keyword] @@ -2334,7 +2435,7 @@ ERROR homeassistant/components/autarco/sensor.py:281:5-23: Class member `Autarco ERROR homeassistant/components/auth/__init__.py:679:34-55: `current_refresh_token` may be uninitialized [unbound-name] ERROR homeassistant/components/auth/login_flow.py:276:30-63: `_FlowContextT` is not subscriptable [unsupported-operation] ERROR homeassistant/components/auth/login_flow.py:333:36-58: `tuple[@_, ...]` is not assignable to `tuple[str, str]` [bad-assignment] -ERROR homeassistant/components/automation/__init__.py:123:71-75: Function declared to return `bool` but is missing an explicit `return` [bad-return] +ERROR homeassistant/components/automation/__init__.py:170:71-75: Function declared to return `bool` but is missing an explicit `return` [bad-return] ERROR homeassistant/components/automation/reproduce_state.py:56:17-24: `service` may be uninitialized [unbound-name] ERROR homeassistant/components/avea/light.py:7:8-12: Could not find import of `avea` [missing-import] ERROR homeassistant/components/awair/config_flow.py:40:9-21: `AwairLocalDevice | None` is not assignable to attribute `_device` with type `AwairLocalDevice` [bad-assignment] @@ -2397,6 +2498,7 @@ ERROR homeassistant/components/azure_devops/config_flow.py:54:51-69: Argument `s ERROR homeassistant/components/azure_devops/config_flow.py:58:53-71: Argument `str | None` is not assignable to parameter `organization` with type `str` in function `aioazuredevops.client.DevOpsClient.get_project` [bad-argument-type] ERROR homeassistant/components/azure_devops/config_flow.py:58:73-86: Argument `str | None` is not assignable to parameter `project` with type `str` in function `aioazuredevops.client.DevOpsClient.get_project` [bad-argument-type] ERROR homeassistant/components/azure_devops/coordinator.py:55:5-17: Class member `AzureDevOpsDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/azure_devops/entity.py:23:25-25:14: Argument `set[tuple[str, str, str]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/azure_devops/sensor.py:48:9-12: Unexpected keyword argument `key` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/azure_devops/sensor.py:49:9-24: Unexpected keyword argument `translation_key` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/azure_devops/sensor.py:67:9-12: Unexpected keyword argument `key` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] @@ -2419,15 +2521,12 @@ ERROR homeassistant/components/azure_devops/sensor.py:98:9-12: Unexpected keywor ERROR homeassistant/components/azure_devops/sensor.py:99:9-24: Unexpected keyword argument `translation_key` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/azure_devops/sensor.py:101:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/azure_devops/sensor.py:102:9-40: Unexpected keyword argument `entity_registry_visible_default` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/azure_devops/sensor.py:103:32-46: `parse_datetime` is uninitialized [unbound-name] ERROR homeassistant/components/azure_devops/sensor.py:106:9-12: Unexpected keyword argument `key` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/azure_devops/sensor.py:107:9-24: Unexpected keyword argument `translation_key` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/azure_devops/sensor.py:109:9-40: Unexpected keyword argument `entity_registry_visible_default` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/azure_devops/sensor.py:110:32-46: `parse_datetime` is uninitialized [unbound-name] ERROR homeassistant/components/azure_devops/sensor.py:113:9-12: Unexpected keyword argument `key` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/azure_devops/sensor.py:114:9-24: Unexpected keyword argument `translation_key` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/azure_devops/sensor.py:116:9-40: Unexpected keyword argument `entity_registry_visible_default` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/azure_devops/sensor.py:117:32-46: `parse_datetime` is uninitialized [unbound-name] ERROR homeassistant/components/azure_devops/sensor.py:120:9-12: Unexpected keyword argument `key` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/azure_devops/sensor.py:121:9-24: Unexpected keyword argument `translation_key` in function `AzureDevOpsBuildSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/azure_devops/sensor.py:130:9-12: Unexpected keyword argument `key` in function `AzureDevOpsWorkItemSensorEntityDescription.__init__` [unexpected-keyword] @@ -2460,24 +2559,24 @@ ERROR homeassistant/components/backup/config.py:777:25-42: `missing_agent_ids` m ERROR homeassistant/components/backup/coordinator.py:38:5-17: Class member `BackupDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/backup/http.py:119:18-62: Type `AsyncIterator[bytes]` is not awaitable [not-async] ERROR homeassistant/components/backup/http.py:143:26-88: `TextIOWrapper[_WrappedBuffer]` is not assignable to variable `reader` with type `IO[bytes]` [bad-assignment] -ERROR homeassistant/components/backup/http.py:143:59-88: Unpacked argument `tuple[str, Literal['rb']]` is not assignable to parameter `*args` with type `tuple[PathLike[bytes] | PathLike[str] | bytes | int | str, Literal['+a', '+at', '+r', '+rt', '+ta', '+tr', '+tw', '+tx', '+w', '+wt', '+x', '+xt', 'U', 'Ur', 'Urt', 'Utr', 'a', 'a+', 'a+t', 'at', 'at+', 'r', 'r+', 'r+t', 'rU', 'rUt', 'rt', 'rt+', 'rtU', 't+a', 't+r', 't+w', 't+x', 'tUr', 'ta', 'ta+', 'tr', 'tr+', 'trU', 'tw', 'tw+', 'tx', 'tx+', 'w', 'w+', 'w+t', 'wt', 'wt+', 'x', 'x+', 'x+t', 'xt', 'xt+'], int, str | None, str | None, str | None, bool, ((str, int) -> int) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/backup/http.py:143:59-88: Unpacked argument `tuple[str, Literal['rb']]` is not assignable to parameter `*args` with type `tuple[FileDescriptorOrPath, OpenTextMode, int, str | None, str | None, str | None, bool, ((str, int) -> int) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/backup/http.py:147:22-66: Type `AsyncIterator[bytes]` is not awaitable [not-async] ERROR homeassistant/components/backup/manager.py:586:29-45: `open_stream_func` may be uninitialized [unbound-name] ERROR homeassistant/components/backup/manager.py:587:24-31: `_backup` may be uninitialized [unbound-name] ERROR homeassistant/components/backup/manager.py:675:25-34: `backup_id` may be uninitialized [unbound-name] ERROR homeassistant/components/backup/manager.py:1358:20-64: Type `AsyncIterator[bytes]` is not awaitable [not-async] ERROR homeassistant/components/backup/manager.py:1525:22-89: `TextIOWrapper[_WrappedBuffer]` is not assignable to variable `reader` with type `IO[bytes]` [bad-assignment] -ERROR homeassistant/components/backup/manager.py:1525:60-89: Unpacked argument `tuple[str, Literal['rb']]` is not assignable to parameter `*args` with type `tuple[PathLike[bytes] | PathLike[str] | bytes | int | str, Literal['+a', '+at', '+r', '+rt', '+ta', '+tr', '+tw', '+tx', '+w', '+wt', '+x', '+xt', 'U', 'Ur', 'Urt', 'Utr', 'a', 'a+', 'a+t', 'at', 'at+', 'r', 'r+', 'r+t', 'rU', 'rUt', 'rt', 'rt+', 'rtU', 't+a', 't+r', 't+w', 't+x', 'tUr', 'ta', 'ta+', 'tr', 'tr+', 'trU', 'tw', 'tw+', 'tx', 'tx+', 'w', 'w+', 'w+t', 'wt', 'wt+', 'x', 'x+', 'x+t', 'xt', 'xt+'], int, str | None, str | None, str | None, bool, ((str, int) -> int) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/backup/manager.py:1525:60-89: Unpacked argument `tuple[str, Literal['rb']]` is not assignable to parameter `*args` with type `tuple[FileDescriptorOrPath, OpenTextMode, int, str | None, str | None, str | None, bool, ((str, int) -> int) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/backup/manager.py:1527:29-73: Type `AsyncIterator[bytes]` is not awaitable [not-async] -ERROR homeassistant/components/backup/manager.py:1778:53-79: Unpacked argument `tuple[Literal['rb']]` is not assignable to parameter `*args` with type `tuple[Literal['+a', '+at', '+r', '+rt', '+ta', '+tr', '+tw', '+tx', '+w', '+wt', '+x', '+xt', 'U', 'Ur', 'Urt', 'Utr', 'a', 'a+', 'a+t', 'at', 'at+', 'r', 'r+', 'r+t', 'rU', 'rUt', 'rt', 'rt+', 'rtU', 't+a', 't+r', 't+w', 't+x', 'tUr', 'ta', 'ta+', 'tr', 'tr+', 'trU', 'tw', 'tw+', 'tx', 'tx+', 'w', 'w+', 'w+t', 'wt', 'wt+', 'x', 'x+', 'x+t', 'xt', 'xt+'], int, str | None, str | None, str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/backup/manager.py:1778:53-79: Unpacked argument `tuple[Literal['rb']]` is not assignable to parameter `*args` with type `tuple[OpenTextMode, int, str | None, str | None, str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/backup/manager.py:1781:35-40: Type of yielded value `str` is not assignable to declared return type `bytes` [invalid-yield] ERROR homeassistant/components/backup/manager.py:1823:21-41: Argument `list[BaseException | Exception | None]` is not assignable to parameter `exceptions` with type `Sequence[Exception]` in function `ExceptionGroup.__new__` [bad-argument-type] -ERROR homeassistant/components/backup/manager.py:1903:41-63: Unpacked argument `tuple[Literal['wb']]` is not assignable to parameter `*args` with type `tuple[Literal['+a', '+at', '+r', '+rt', '+ta', '+tr', '+tw', '+tx', '+w', '+wt', '+x', '+xt', 'U', 'Ur', 'Urt', 'Utr', 'a', 'a+', 'a+t', 'at', 'at+', 'r', 'r+', 'r+t', 'rU', 'rUt', 'rt', 'rt+', 'rtU', 't+a', 't+r', 't+w', 't+x', 'tUr', 'ta', 'ta+', 'tr', 'tr+', 'trU', 'tw', 'tw+', 'tx', 'tx+', 'w', 'w+', 'w+t', 'wt', 'wt+', 'x', 'x+', 'x+t', 'xt', 'xt+'], int, str | None, str | None, str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/backup/manager.py:1903:41-63: Unpacked argument `tuple[Literal['wb']]` is not assignable to parameter `*args` with type `tuple[OpenTextMode, int, str | None, str | None, str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/backup/manager.py:1906:45-61: Unpacked argument `tuple[bytes]` is not assignable to parameter `*args` with type `tuple[str]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/components/backup/manager.py:1921:41-80: Unpacked argument `tuple[Path, Path]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, @_, ((PathLike[str] | str, PathLike[str] | str) -> object) | ((str, str) -> object)]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/components/backup/manager.py:1926:45-71: Unpacked argument `tuple[Literal['rb']]` is not assignable to parameter `*args` with type `tuple[Literal['+a', '+at', '+r', '+rt', '+ta', '+tr', '+tw', '+tx', '+w', '+wt', '+x', '+xt', 'U', 'Ur', 'Urt', 'Utr', 'a', 'a+', 'a+t', 'at', 'at+', 'r', 'r+', 'r+t', 'rU', 'rUt', 'rt', 'rt+', 'rtU', 't+a', 't+r', 't+w', 't+x', 'tUr', 'ta', 'ta+', 'tr', 'tr+', 'trU', 'tw', 'tw+', 'tx', 'tx+', 'w', 'w+', 'w+t', 'wt', 'wt+', 'x', 'x+', 'x+t', 'xt', 'xt+'], int, str | None, str | None, str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/backup/manager.py:1921:41-80: Unpacked argument `tuple[Path, Path]` is not assignable to parameter `*args` with type `tuple[StrPath, @_, _CopyFn]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/backup/manager.py:1926:45-71: Unpacked argument `tuple[Literal['rb']]` is not assignable to parameter `*args` with type `tuple[OpenTextMode, int, str | None, str | None, str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/backup/manager.py:1929:27-32: Type of yielded value `str` is not assignable to declared return type `bytes` [invalid-yield] -ERROR homeassistant/components/backup/manager.py:1987:45-62: Unpacked argument `tuple[Literal['wb']]` is not assignable to parameter `*args` with type `tuple[Literal['+a', '+at', '+r', '+rt', '+ta', '+tr', '+tw', '+tx', '+w', '+wt', '+x', '+xt', 'U', 'Ur', 'Urt', 'Utr', 'a', 'a+', 'a+t', 'at', 'at+', 'r', 'r+', 'r+t', 'rU', 'rUt', 'rt', 'rt+', 'rtU', 't+a', 't+r', 't+w', 't+x', 'tUr', 'ta', 'ta+', 'tr', 'tr+', 'trU', 'tw', 'tw+', 'tx', 'tx+', 'w', 'w+', 'w+t', 'wt', 'wt+', 'x', 'x+', 'x+t', 'xt', 'xt+'], int, str | None, str | None, str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/backup/manager.py:1987:45-62: Unpacked argument `tuple[Literal['wb']]` is not assignable to parameter `*args` with type `tuple[OpenTextMode, int, str | None, str | None, str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/backup/manager.py:1990:49-65: Unpacked argument `tuple[bytes]` is not assignable to parameter `*args` with type `tuple[str]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/backup/sensor.py:31:9-12: Unexpected keyword argument `key` in function `BackupSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/backup/sensor.py:32:9-24: Unexpected keyword argument `translation_key` in function `BackupSensorEntityDescription.__init__` [unexpected-keyword] @@ -2609,52 +2708,53 @@ ERROR homeassistant/components/balboa/fan.py:36:5-29: Class member `BalboaPumpFa ERROR homeassistant/components/balboa/fan.py:84:66-85: Argument `IntEnum` is not assignable to parameter `value` with type `float` in function `homeassistant.util.percentage.ranged_value_to_percentage` [bad-argument-type] ERROR homeassistant/components/bang_olufsen/config_flow.py:99:71-101:22: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_beolink_self` [missing-argument] ERROR homeassistant/components/bang_olufsen/config_flow.py:147:52-72: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_beolink_self` [missing-argument] -ERROR homeassistant/components/bang_olufsen/event.py:42:5-23: Class member `BangOlufsenButtonEvent._attr_device_class` overrides parent class `BangOlufsenEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/bang_olufsen/media_player.py:192:5-23: Class member `BangOlufsenMediaPlayer._attr_device_class` overrides parent class `BangOlufsenEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/bang_olufsen/media_player.py:261:77-79: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_softwareupdate_status` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:285:67-87: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_settings_queue` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:299:63-84: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_available_sources` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:306:20-30: `sw_version` may be uninitialized [unbound-name] -ERROR homeassistant/components/bang_olufsen/media_player.py:312:17-27: `sw_version` may be uninitialized [unbound-name] -ERROR homeassistant/components/bang_olufsen/media_player.py:339:56-58: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_remote_menu` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:424:59-61: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_beolink_self` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:451:53-55: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_beolink_peers` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:485:73-75: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_beolink_listeners` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:567:64-66: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_listening_mode_set` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:570:77-79: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_active_listening_mode` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:687:40-42: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_standby` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:691:52-693:10: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.set_current_volume_level` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:697:43-79: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.set_volume_mute` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:708:49-66: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_playback_command` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:712:49-65: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_playback_command` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:716:49-65: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_playback_command` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:720:49-65: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_playback_command` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:724:44-78: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.seek_to_position` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:733:49-65: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_playback_command` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:737:44-46: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_clear_queue` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:741:46-745:10: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.set_settings_queue` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:749:46-751:10: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.set_settings_queue` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:770:49-64: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.set_active_source` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:773:51-59: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_remote_trigger` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:788:51-85: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.activate_listening_mode` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:858:49-71: Missing argument `overlay_play_request` in function `mozart_api.api.mozart_api.MozartApi.post_overlay_play` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:861:47-75: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_uri_source` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:866:49-870:14: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_overlay_play` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:873:50-882:14: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.run_provided_scene` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:885:47-65: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.activate_preset` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:896:57-898:22: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.start_deezer_flow` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:906:52-913:22: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.add_to_queue` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:917:52-924:22: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.add_to_queue` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:974:62-64: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.join_latest_beolink_experience` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:977:49-66: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.join_beolink_peer` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:984:49-84: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.join_beolink_peer` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:1004:57-59: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_beolink_peers` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:1008:59-73: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_beolink_expand` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:1016:59-76: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_beolink_expand` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:1027:53-70: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_beolink_unexpand` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:1031:46-48: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_beolink_leave` [missing-argument] -ERROR homeassistant/components/bang_olufsen/media_player.py:1035:51-53: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_beolink_allstandby` [missing-argument] -ERROR homeassistant/components/bang_olufsen/websocket.py:212:71-73: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_softwareupdate_status` [missing-argument] +ERROR homeassistant/components/bang_olufsen/event.py:100:5-23: Class member `BeoEvent._attr_device_class` overrides parent class `BeoEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/bang_olufsen/media_player.py:192:5-23: Class member `BeoMediaPlayer._attr_device_class` overrides parent class `BeoEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/bang_olufsen/media_player.py:262:77-79: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_softwareupdate_status` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:286:67-87: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_settings_queue` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:300:63-84: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_available_sources` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:307:20-30: `sw_version` may be uninitialized [unbound-name] +ERROR homeassistant/components/bang_olufsen/media_player.py:313:17-27: `sw_version` may be uninitialized [unbound-name] +ERROR homeassistant/components/bang_olufsen/media_player.py:340:56-58: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_remote_menu` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:425:59-61: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_beolink_self` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:457:53-55: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_beolink_peers` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:495:73-75: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_beolink_listeners` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:577:64-66: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_listening_mode_set` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:580:77-79: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_active_listening_mode` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:709:40-42: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_standby` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:713:52-715:10: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.set_current_volume_level` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:719:43-79: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.set_volume_mute` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:730:49-66: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_playback_command` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:734:49-65: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_playback_command` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:738:49-65: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_playback_command` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:742:49-65: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_playback_command` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:746:44-78: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.seek_to_position` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:755:49-65: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_playback_command` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:759:44-46: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_clear_queue` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:763:46-765:10: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.set_settings_queue` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:769:46-771:10: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.set_settings_queue` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:790:49-64: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.set_active_source` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:793:51-59: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_remote_trigger` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:808:51-85: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.activate_listening_mode` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:878:49-71: Missing argument `overlay_play_request` in function `mozart_api.api.mozart_api.MozartApi.post_overlay_play` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:881:47-75: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_uri_source` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:886:49-890:14: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_overlay_play` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:893:50-902:14: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.run_provided_scene` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:905:47-65: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.activate_preset` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:916:57-918:22: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.start_deezer_flow` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:926:52-933:22: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.add_to_queue` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:937:52-944:22: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.add_to_queue` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:994:62-64: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.join_latest_beolink_experience` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:997:49-66: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.join_beolink_peer` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:1004:49-84: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.join_beolink_peer` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:1024:57-59: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_beolink_peers` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:1028:59-73: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_beolink_expand` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:1036:59-76: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_beolink_expand` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:1047:53-70: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_beolink_unexpand` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:1051:46-48: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_beolink_leave` [missing-argument] +ERROR homeassistant/components/bang_olufsen/media_player.py:1055:51-53: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.post_beolink_allstandby` [missing-argument] +ERROR homeassistant/components/bang_olufsen/util.py:34:63-65: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_bluetooth_remotes` [missing-argument] +ERROR homeassistant/components/bang_olufsen/websocket.py:257:71-73: Missing argument `self` in function `mozart_api.api.mozart_api.MozartApi.get_softwareupdate_status` [missing-argument] ERROR homeassistant/components/bayesian/config_flow.py:557:25-34: `sub_entry` may be uninitialized [unbound-name] ERROR homeassistant/components/bayesian/config_flow.py:558:31-83: Argument `Any | None` is not assignable to parameter `title` with type `UndefinedType | str` in function `homeassistant.config_entries.ConfigSubentryFlow.async_update_and_abort` [bad-argument-type] ERROR homeassistant/components/bayesian/config_flow.py:558:57-66: `sub_entry` may be uninitialized [unbound-name] @@ -2899,7 +2999,7 @@ ERROR homeassistant/components/bluesound/media_player.py:637:25-40: No matching ERROR homeassistant/components/bluesound/media_player.py:646:41-47: Argument `float` is not assignable to parameter `level` with type `int | None` in function `pyblu.player.Player.volume` [bad-argument-type] ERROR homeassistant/components/bluetooth/__init__.py:199:13-31: Argument `HassJob[[now: datetime], Coroutine[Unknown, Unknown, None]]` is not assignable to parameter `action` with type `((datetime) -> Coroutine[Any, Any, None] | None) | HassJob[[datetime], Coroutine[Any, Any, None] | None]` in function `homeassistant.helpers.event.async_call_later` [bad-argument-type] ERROR homeassistant/components/bluetooth/config_flow.py:222:9-31: Class member `BluetoothConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/bluetooth/manager.py:215:36-45: No matching overload found for function `homeassistant.components.bluetooth.match.BluetoothCallbackMatcherWithCallback.update` called with arguments: (TypedDict[BluetoothCallbackMatcher]) [no-matching-overload] +ERROR homeassistant/components/bluetooth/manager.py:215:36-45: No matching overload found for function `homeassistant.components.bluetooth.match.BluetoothCallbackMatcherWithCallback.update` called with arguments: (BluetoothCallbackMatcher) [no-matching-overload] ERROR homeassistant/components/bluetooth/match.py:202:54-73: `_T` is not subscriptable [unsupported-operation] ERROR homeassistant/components/bluetooth/match.py:209:34-58: `_T` is not subscriptable [unsupported-operation] ERROR homeassistant/components/bluetooth/match.py:213:31-52: `_T` is not subscriptable [unsupported-operation] @@ -2913,8 +3013,6 @@ ERROR homeassistant/components/bluetooth/passive_update_processor.py:310:32-53: ERROR homeassistant/components/bluetooth/passive_update_processor.py:655:43-45: Expected 0 positional arguments, got 1 in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-count] ERROR homeassistant/components/bluetooth/passive_update_processor.py:658:17-73: Expected 0 positional arguments, got 1 in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-count] ERROR homeassistant/components/bluetooth/passive_update_processor.py:663:17-56: Expected 0 positional arguments, got 1 in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-count] -ERROR homeassistant/components/bluetooth_tracker/device_tracker.py:10:8-17: Could not find import of `bluetooth` [missing-import] -ERROR homeassistant/components/bluetooth_tracker/device_tracker.py:11:1-39: Could not find import of `bt_proximity` [missing-import] ERROR homeassistant/components/bmw_connected_drive/binary_sensor.py:126:9-12: Unexpected keyword argument `key` in function `BMWBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/bmw_connected_drive/binary_sensor.py:127:9-24: Unexpected keyword argument `translation_key` in function `BMWBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/bmw_connected_drive/binary_sensor.py:136:9-12: Unexpected keyword argument `key` in function `BMWBinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -3249,8 +3347,6 @@ ERROR homeassistant/components/braviatv/media_player.py:46:5-29: Class member `B ERROR homeassistant/components/bring/coordinator.py:63:5-17: Class member `BringBaseCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/bring/coordinator.py:112:21-34: `current_lists` may be uninitialized [unbound-name] ERROR homeassistant/components/bring/coordinator.py:113:31-44: `current_lists` may be uninitialized [unbound-name] -ERROR homeassistant/components/bring/entity.py:29:14-25: Class member `BringBaseEntity.device_info` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/bring/entity.py:29:28-40:10: `TypedDict[DeviceInfo]` is not assignable to attribute `device_info` with type `(self: Self@BringBaseEntity) -> TypedDict[DeviceInfo] | None` [bad-assignment] ERROR homeassistant/components/bring/event.py:54:5-16: Class member `BringEventEntity.coordinator` overrides parent class `BringBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/bring/sensor.py:48:9-12: Unexpected keyword argument `key` in function `BringSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/bring/sensor.py:49:9-24: Unexpected keyword argument `translation_key` in function `BringSensorEntityDescription.__init__` [unexpected-keyword] @@ -3411,8 +3507,6 @@ ERROR homeassistant/components/bryant_evolution/climate.py:46:47-58: No matching ERROR homeassistant/components/bryant_evolution/climate.py:193:38-197:14: Argument `dict[str, str | tuple[str, bool]]` is not assignable to parameter `translation_placeholders` with type `dict[str, str] | None` in function `homeassistant.exceptions.HomeAssistantError.__init__` [bad-argument-type] ERROR homeassistant/components/bsblan/climate.py:59:5-29: Class member `BSBLANClimate._attr_supported_features` overrides parent class `BSBLanEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/bsblan/coordinator.py:47:5-17: Class member `BSBLanCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/bsblan/coordinator.py:115:14-29: Class member `BSBLanFastCoordinator.update_interval` overrides parent class `BSBLanCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/bsblan/coordinator.py:115:32-59: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@BSBLanFastCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/bsblan/sensor.py:36:9-12: Unexpected keyword argument `key` in function `BSBLanSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/bsblan/sensor.py:37:9-24: Unexpected keyword argument `translation_key` in function `BSBLanSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/bsblan/sensor.py:49:9-12: Unexpected keyword argument `key` in function `BSBLanSensorEntityDescription.__init__` [unexpected-keyword] @@ -3809,8 +3903,8 @@ ERROR homeassistant/components/cambridge_audio/switch.py:38:9-24: Unexpected key ERROR homeassistant/components/cambridge_audio/switch.py:39:9-24: Unexpected keyword argument `entity_category` in function `CambridgeAudioSwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/cambridge_audio/switch.py:61:5-23: Class member `CambridgeAudioSwitch.entity_description` overrides parent class `CambridgeAudioEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/cambridge_audio/switch.py:61:5-23: Class member `CambridgeAudioSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/camera/__init__.py:458:5-16: Class member `Camera._attr_state` overrides parent class `Entity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/camera/__init__.py:459:5-29: Class member `Camera._attr_supported_features` overrides parent class `Entity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/camera/__init__.py:443:5-16: Class member `Camera._attr_state` overrides parent class `Entity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/camera/__init__.py:444:5-29: Class member `Camera._attr_supported_features` overrides parent class `Entity` in an inconsistent manner [bad-override] ERROR homeassistant/components/camera/media_source.py:52:5-9: Class member `CameraMediaSource.name` overrides parent class `MediaSource` in an inconsistent manner [bad-override] ERROR homeassistant/components/canary/alarm_control_panel.py:42:5-29: Class member `CanaryAlarm._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/canary/camera.py:173:17-30: Argument `asyncio.streams.StreamReader` is not assignable to parameter `stream` with type `aiohttp.streams.StreamReader` in function `homeassistant.helpers.aiohttp_client.async_aiohttp_proxy_stream` [bad-argument-type] @@ -3858,15 +3952,17 @@ ERROR homeassistant/components/clementine/media_player.py:8:1-46: Could not find ERROR homeassistant/components/climate/__init__.py:257:5-23: Class member `ClimateEntity.entity_description` overrides parent class `Entity` in an inconsistent manner [bad-override] ERROR homeassistant/components/climate/__init__.py:272:5-29: Class member `ClimateEntity._attr_supported_features` overrides parent class `Entity` in an inconsistent manner [bad-override] ERROR homeassistant/components/climate/device_action.py:98:17-24: `service` may be uninitialized [unbound-name] -ERROR homeassistant/components/cloud/__init__.py:281:51-61: Argument `str | Unknown` is not assignable to parameter `alexa_user_config` with type `dict[str, Any]` in function `homeassistant.components.cloud.client.CloudClient.__init__` [bad-argument-type] -ERROR homeassistant/components/cloud/__init__.py:281:63-74: Argument `str | Unknown` is not assignable to parameter `google_user_config` with type `dict[str, Any]` in function `homeassistant.components.cloud.client.CloudClient.__init__` [bad-argument-type] -ERROR homeassistant/components/cloud/__init__.py:282:51-59: Unpacked keyword argument `str` is not assignable to parameter `mode` with type `Literal['development', 'production']` in function `hass_nabucasa.Cloud.__init__` [bad-argument-type] -ERROR homeassistant/components/cloud/__init__.py:282:51-59: Unpacked keyword argument `str` is not assignable to parameter `discovery_service_actions` with type `dict[Literal['remote_access_resolve_dns_cname', 'subscription_info', 'subscription_migrate_paypal', 'voice_connection_details'], str] | None` in function `hass_nabucasa.Cloud.__init__` [bad-argument-type] +ERROR homeassistant/components/cloud/__init__.py:313:51-61: Argument `str | Unknown` is not assignable to parameter `alexa_user_config` with type `dict[str, Any]` in function `homeassistant.components.cloud.client.CloudClient.__init__` [bad-argument-type] +ERROR homeassistant/components/cloud/__init__.py:313:63-74: Argument `str | Unknown` is not assignable to parameter `google_user_config` with type `dict[str, Any]` in function `homeassistant.components.cloud.client.CloudClient.__init__` [bad-argument-type] +ERROR homeassistant/components/cloud/__init__.py:314:51-59: Unpacked keyword argument `str` is not assignable to parameter `mode` with type `Literal['development', 'production']` in function `hass_nabucasa.Cloud.__init__` [bad-argument-type] +ERROR homeassistant/components/cloud/__init__.py:314:51-59: Unpacked keyword argument `str` is not assignable to parameter `discovery_service_actions` with type `dict[ServiceDiscoveryAction, str] | None` in function `hass_nabucasa.Cloud.__init__` [bad-argument-type] +ERROR homeassistant/components/cloud/ai_task.py:132:16-44: Object of class `ToolResultContent` has no attribute `content` [missing-attribute] ERROR homeassistant/components/cloud/backup.py:83:15-36: Class member `CloudBackupAgent.async_download_backup` overrides parent class `BackupAgent` in an inconsistent manner [bad-override] -ERROR homeassistant/components/cloud/client.py:96:33-44: Module `aiohttp.web` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/cloud/client.py:183:50-66: Argument `HassJob[[_: Any], Coroutine[Unknown, Unknown, None]]` is not assignable to parameter `action` with type `((datetime) -> Coroutine[Any, Any, None] | None) | HassJob[[datetime], Coroutine[Any, Any, None] | None]` in function `homeassistant.helpers.event.async_call_later` [bad-argument-type] -ERROR homeassistant/components/cloud/http_api.py:490:46-59: `documentation` may be uninitialized [unbound-name] -ERROR homeassistant/components/cloud/http_api.py:711:18-31: `language_info` is uninitialized [unbound-name] +ERROR homeassistant/components/cloud/client.py:97:33-44: Module `aiohttp.web` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/cloud/client.py:189:50-66: Argument `HassJob[[_: Any], Coroutine[Unknown, Unknown, None]]` is not assignable to parameter `action` with type `((datetime) -> Coroutine[Any, Any, None] | None) | HassJob[[datetime], Coroutine[Any, Any, None] | None]` in function `homeassistant.helpers.event.async_call_later` [bad-argument-type] +ERROR homeassistant/components/cloud/entity.py:250:5-441:80: `int | Unknown | None` is not assignable to `None` (caused by inconsistent types when breaking cycles) [bad-assignment] +ERROR homeassistant/components/cloud/http_api.py:491:46-59: `documentation` may be uninitialized [unbound-name] +ERROR homeassistant/components/cloud/http_api.py:712:18-31: `language_info` is uninitialized [unbound-name] ERROR homeassistant/components/cloud/prefs.py:131:23-28: `prefs` may be uninitialized [unbound-name] ERROR homeassistant/components/cloud/tts.py:270:15-21: `gender` may be uninitialized [unbound-name] ERROR homeassistant/components/cmus/media_player.py:8:1-38: Could not find import of `pycmus` [missing-import] @@ -3979,8 +4075,11 @@ ERROR homeassistant/components/compensation/sensor.py:176:21-30: `new_state` is ERROR homeassistant/components/compensation/sensor.py:178:29-38: `new_state` is uninitialized [unbound-name] ERROR homeassistant/components/compensation/sensor.py:178:67-76: `new_state` is uninitialized [unbound-name] ERROR homeassistant/components/compit/climate.py:107:5-29: Class member `CompitClimate._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/concord232/alarm_control_panel.py:8:1-51: Could not find import of `concord232` [missing-import] -ERROR homeassistant/components/concord232/binary_sensor.py:8:1-51: Could not find import of `concord232` [missing-import] +ERROR homeassistant/components/concord232/alarm_control_panel.py:84:9-31: Object of class `Client` has no attribute `partitions` [missing-attribute] +ERROR homeassistant/components/concord232/binary_sensor.py:68:9-21: Object of class `Client` has no attribute `zones` [missing-attribute] +ERROR homeassistant/components/concord232/binary_sensor.py:69:9-32: Object of class `Client` has no attribute `last_zone_update` [missing-attribute] +ERROR homeassistant/components/concord232/binary_sensor.py:80:5-17: Object of class `Client` has no attribute `zones` [missing-attribute] +ERROR homeassistant/components/concord232/binary_sensor.py:82:17-29: Object of class `Client` has no attribute `zones` [missing-attribute] ERROR homeassistant/components/config/config_entries.py:365:16-40: `_FlowContextT` is not subscriptable [unsupported-operation] ERROR homeassistant/components/config/config_entries.py:418:16-40: `_FlowContextT` is not subscriptable [unsupported-operation] ERROR homeassistant/components/config/config_entries.py:428:16-40: `_FlowContextT` is not subscriptable [unsupported-operation] @@ -4020,20 +4119,19 @@ ERROR homeassistant/components/control4/config_flow.py:133:24-50: Object of clas ERROR homeassistant/components/control4/config_flow.py:138:27-47: Argument `None` is not assignable to parameter `title` with type `str` in function `homeassistant.config_entries.ConfigFlow.async_create_entry` [bad-argument-type] ERROR homeassistant/components/control4/config_flow.py:153:9-31: Class member `Control4ConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/control4/media_player.py:212:14-38: Class member `Control4Room._attr_supported_features` overrides parent class `Control4Entity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/conversation/chat_log.py:54:16-31: Object of class `ToolResultContent` has no attribute `content` [missing-attribute] -ERROR homeassistant/components/conversation/chat_log.py:94:13-30: Object of class `NoneType` has no attribute `pop` [missing-attribute] -ERROR homeassistant/components/conversation/chat_log.py:208:30-88: `list[SystemContent]` is not assignable to `list[AssistantContent | SystemContent | ToolResultContent | UserContent]` [bad-assignment] -ERROR homeassistant/components/conversation/chat_log.py:317:29-40: Argument `dict[str, str] | Unknown` is not assignable to parameter `tool_result` with type `dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None]` in function `ToolResultContent.__init__` [bad-argument-type] -ERROR homeassistant/components/conversation/chat_log.py:594:36-55: `extra_system_prompt` may be uninitialized [unbound-name] -ERROR homeassistant/components/conversation/default_agent.py:1026:16-22: Returned type `str | None` is not assignable to declared return type `str` [bad-return] +ERROR homeassistant/components/conversation/chat_log.py:55:9-29: Object of class `NoneType` has no attribute `remove` [missing-attribute] +ERROR homeassistant/components/conversation/chat_log.py:93:16-31: Object of class `ToolResultContent` has no attribute `content` [missing-attribute] +ERROR homeassistant/components/conversation/chat_log.py:152:13-30: Object of class `NoneType` has no attribute `pop` [missing-attribute] +ERROR homeassistant/components/conversation/chat_log.py:341:30-88: `list[SystemContent]` is not assignable to `list[Content]` [bad-assignment] +ERROR homeassistant/components/conversation/chat_log.py:472:29-40: Argument `dict[str, str] | Unknown` is not assignable to parameter `tool_result` with type `dict[str, JsonValueType]` in function `ToolResultContent.__init__` [bad-argument-type] +ERROR homeassistant/components/conversation/chat_log.py:757:36-55: `extra_system_prompt` may be uninitialized [unbound-name] +ERROR homeassistant/components/conversation/default_agent.py:1048:16-22: Returned type `str | None` is not assignable to declared return type `str` [bad-return] ERROR homeassistant/components/cookidoo/button.py:28:5-8: Unexpected keyword argument `key` in function `CookidooButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/cookidoo/button.py:29:5-20: Unexpected keyword argument `translation_key` in function `CookidooButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/cookidoo/button.py:31:5-36: Unexpected keyword argument `entity_registry_enabled_default` in function `CookidooButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/cookidoo/button.py:49:5-23: Class member `CookidooButton.entity_description` overrides parent class `CookidooBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/cookidoo/button.py:49:5-23: Class member `CookidooButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/cookidoo/coordinator.py:45:5-17: Class member `CookidooDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/cookidoo/entity.py:26:14-25: Class member `CookidooBaseEntity.device_info` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/cookidoo/entity.py:26:28-32:10: `TypedDict[DeviceInfo]` is not assignable to attribute `device_info` with type `(self: Self@CookidooBaseEntity) -> TypedDict[DeviceInfo] | None` [bad-assignment] ERROR homeassistant/components/cookidoo/sensor.py:48:9-12: Unexpected keyword argument `key` in function `CookidooSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/cookidoo/sensor.py:49:9-24: Unexpected keyword argument `translation_key` in function `CookidooSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/cookidoo/sensor.py:55:9-24: Unexpected keyword argument `entity_category` in function `CookidooSensorEntityDescription.__init__` [unexpected-keyword] @@ -4050,7 +4148,7 @@ ERROR homeassistant/components/coolmaster/button.py:29:5-23: Class member `Coolm ERROR homeassistant/components/coolmaster/button.py:30:9-12: Unexpected keyword argument `key` in function `homeassistant.components.button.ButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/coolmaster/button.py:31:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.button.ButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/coolmaster/button.py:32:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.button.ButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/coolmaster/climate.py:69:14-29: Class member `CoolmasterClimate._attr_unique_id` overrides parent class `ClimateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/coolmaster/climate.py:82:14-29: Class member `CoolmasterClimate._attr_unique_id` overrides parent class `ClimateEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/coolmaster/entity.py:25:14-31: Class member `CoolmasterEntity._attr_device_info` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/coolmaster/entity.py:33:18-33: Class member `CoolmasterEntity._attr_unique_id` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/coolmaster/sensor.py:29:5-23: Class member `CoolmasterCleanFilter.entity_description` overrides parent class `CoolmasterEntity` in an inconsistent manner [bad-override] @@ -4208,10 +4306,10 @@ ERROR homeassistant/components/deconz/services.py:174:42-57: Argument `str | Non ERROR homeassistant/components/deconz/services.py:181:46-61: Argument `str | None` is not assignable to parameter `value` with type `str` in function `list.remove` [bad-argument-type] ERROR homeassistant/components/deconz/siren.py:48:5-29: Class member `DeconzSiren._attr_supported_features` overrides parent class `DeconzDevice` in an inconsistent manner [bad-override] ERROR homeassistant/components/deconz/siren.py:66:22-30: `duration` may be uninitialized [unbound-name] -ERROR homeassistant/components/decora_wifi/light.py:8:1-42: Could not find import of `decora_wifi` [missing-import] -ERROR homeassistant/components/decora_wifi/light.py:9:1-45: Could not find import of `decora_wifi.models.person` [missing-import] -ERROR homeassistant/components/decora_wifi/light.py:10:1-51: Could not find import of `decora_wifi.models.residence` [missing-import] -ERROR homeassistant/components/decora_wifi/light.py:11:1-70: Could not find import of `decora_wifi.models.residential_account` [missing-import] +ERROR homeassistant/components/decora_wifi/light.py:9:1-42: Could not find import of `decora_wifi` [missing-import] +ERROR homeassistant/components/decora_wifi/light.py:10:1-45: Could not find import of `decora_wifi.models.person` [missing-import] +ERROR homeassistant/components/decora_wifi/light.py:11:1-51: Could not find import of `decora_wifi.models.residence` [missing-import] +ERROR homeassistant/components/decora_wifi/light.py:12:1-70: Could not find import of `decora_wifi.models.residential_account` [missing-import] ERROR homeassistant/components/delijn/sensor.py:8:1-34: Could not find import of `pydelijn.api` [missing-import] ERROR homeassistant/components/delijn/sensor.py:9:1-42: Could not find import of `pydelijn.common` [missing-import] ERROR homeassistant/components/delijn/sensor.py:117:17-30: `first_passage` may be uninitialized [unbound-name] @@ -4254,10 +4352,10 @@ ERROR homeassistant/components/denonavr/receiver.py:90:13-20: Unexpected keyword ERROR homeassistant/components/denonavr/receiver.py:91:13-22: Unexpected keyword argument `add_zones` in function `denonavr.denonavr.DenonAVR.__init__` [unexpected-keyword] ERROR homeassistant/components/denonavr/receiver.py:100:27-44: Object of class `DenonAVRFoundation` has no attribute `async_update` [missing-attribute] ERROR homeassistant/components/denonavr/receiver.py:102:27-53: Object of class `DenonAVRFoundation` has no attribute `async_update_audyssey` [missing-attribute] -ERROR homeassistant/components/derivative/sensor.py:466:21-35: `new_derivative` may be uninitialized [unbound-name] -ERROR homeassistant/components/derivative/sensor.py:475:68-82: `new_derivative` may be uninitialized [unbound-name] -ERROR homeassistant/components/derivative/sensor.py:483:16-28: `elapsed_time` may be uninitialized [unbound-name] -ERROR homeassistant/components/derivative/sensor.py:484:30-44: `new_derivative` may be uninitialized [unbound-name] +ERROR homeassistant/components/derivative/sensor.py:478:21-35: `new_derivative` may be uninitialized [unbound-name] +ERROR homeassistant/components/derivative/sensor.py:487:68-82: `new_derivative` may be uninitialized [unbound-name] +ERROR homeassistant/components/derivative/sensor.py:495:16-28: `elapsed_time` may be uninitialized [unbound-name] +ERROR homeassistant/components/derivative/sensor.py:496:30-44: `new_derivative` may be uninitialized [unbound-name] ERROR homeassistant/components/devialet/config_flow.py:51:19-37: Argument `str | None` is not assignable to parameter `title` with type `str` in function `homeassistant.config_entries.ConfigFlow.async_create_entry` [bad-argument-type] ERROR homeassistant/components/devialet/coordinator.py:24:5-17: Class member `DevialetCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/devialet/media_player.py:112:16-52: Returned type `bool | None` is not assignable to declared return type `bool` [bad-return] @@ -4265,7 +4363,7 @@ ERROR homeassistant/components/device_automation/action.py:28:10-20: Function de ERROR homeassistant/components/device_automation/action.py:42:10-31: Function declared to return `dict[str, Schema]` but is missing an explicit `return` [bad-return] ERROR homeassistant/components/device_automation/action.py:47:10-30: Function declared to return `list[dict[str, Any]]` but is missing an explicit `return` [bad-return] ERROR homeassistant/components/device_automation/condition.py:37:10-20: Function declared to return `dict[str, Any]` but is missing an explicit `return` [bad-return] -ERROR homeassistant/components/device_automation/condition.py:42:10-30: Function declared to return `(HomeAssistant, Mapping[str, Any] | None) -> bool | None` but is missing an explicit `return` [bad-return] +ERROR homeassistant/components/device_automation/condition.py:42:10-30: Function declared to return `(HomeAssistant, TemplateVarsType) -> bool | None` but is missing an explicit `return` [bad-return] ERROR homeassistant/components/device_automation/condition.py:47:10-31: Function declared to return `dict[str, Schema]` but is missing an explicit `return` [bad-return] ERROR homeassistant/components/device_automation/condition.py:52:10-30: Function declared to return `list[dict[str, Any]]` but is missing an explicit `return` [bad-return] ERROR homeassistant/components/device_automation/trigger.py:34:10-20: Function declared to return `dict[str, Any]` but is missing an explicit `return` [bad-return] @@ -4343,7 +4441,7 @@ ERROR homeassistant/components/devolo_home_network/update.py:76:5-23: Class memb ERROR homeassistant/components/devolo_home_network/update.py:76:5-23: Class member `DevoloUpdateEntity.entity_description` overrides parent class `UpdateEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/diagnostics/__init__.py:96:10-27: Function declared to return `Mapping[str, Any]` but is missing an explicit `return` [bad-return] ERROR homeassistant/components/diagnostics/__init__.py:101:10-27: Function declared to return `Mapping[str, Any]` but is missing an explicit `return` [bad-return] -ERROR homeassistant/components/diagnostics/__init__.py:219:29-40: Cannot set item in `dict[str, Mapping[str | None, dict[SetupPhases, float]] | Mapping[str, Any] | dict[str, Any] | dict[Unknown, Unknown] | TypedDict[Manifest]]` [unsupported-operation] +ERROR homeassistant/components/diagnostics/__init__.py:219:29-40: Cannot set item in `dict[str, Mapping[str | None, dict[SetupPhases, float]] | Mapping[str, Any] | dict[str, Any] | dict[Unknown, Unknown] | Manifest]` [unsupported-operation] ERROR homeassistant/components/dialogflow/__init__.py:94:46-56: `parameters` may be uninitialized [unbound-name] ERROR homeassistant/components/dialogflow/__init__.py:126:14-17: `req` may be uninitialized [unbound-name] ERROR homeassistant/components/dialogflow/__init__.py:127:18-21: `req` may be uninitialized [unbound-name] @@ -4430,8 +4528,8 @@ ERROR homeassistant/components/dlink/data.py:44:16-28: Module `urllib.error` exi ERROR homeassistant/components/dlink/switch.py:20:5-8: Unexpected keyword argument `key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/dlink/switch.py:33:7-22: Field `entity_description` is declared `EntityDescription` in ancestor `class DLinkEntity: ... `, which is not assignable to the type `SwitchEntityDescription` implied by multiple inheritance [inconsistent-inheritance] +ERROR homeassistant/components/dlna_dms/util.py:28:12-31: `suggested_source_id` may be uninitialized [unbound-name] ERROR homeassistant/components/dnsip/config_flow.py:100:9-31: Class member `DnsIPConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/dominos/__init__.py:6:1-45: Could not find import of `pizzapi` [missing-import] ERROR homeassistant/components/doods/image_processing.py:12:1-28: Could not find import of `pydoods` [missing-import] ERROR homeassistant/components/doods/image_processing.py:176:71-87: `label_confidence` may be uninitialized [unbound-name] ERROR homeassistant/components/doods/image_processing.py:177:43-59: `label_confidence` may be uninitialized [unbound-name] @@ -5020,7 +5118,7 @@ ERROR homeassistant/components/dsmr_reader/definitions.py:543:9-12: Unexpected k ERROR homeassistant/components/dsmr_reader/definitions.py:544:9-24: Unexpected keyword argument `translation_key` in function `DSMRReaderSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/dsmr_reader/definitions.py:545:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `DSMRReaderSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/dsmr_reader/sensor.py:31:5-23: Class member `DSMRSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/duckdns/__init__.py:141:46-67: Argument `HassJob[[now: datetime], Coroutine[Unknown, Unknown, None]]` is not assignable to parameter `action` with type `((datetime) -> Coroutine[Any, Any, None] | None) | HassJob[[datetime], Coroutine[Any, Any, None] | None]` in function `homeassistant.helpers.event.async_call_later` [bad-argument-type] +ERROR homeassistant/components/duckdns/coordinator.py:37:5-17: Class member `DuckDnsUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/duke_energy/coordinator.py:41:5-17: Class member `DukeEnergyCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/dunehd/media_player.py:109:23-45: Object of class `DuneHDPlayer` has no attribute `volume_up` [missing-attribute] ERROR homeassistant/components/dunehd/media_player.py:113:23-47: Object of class `DuneHDPlayer` has no attribute `volume_down` [missing-attribute] @@ -5054,7 +5152,6 @@ ERROR homeassistant/components/easyenergy/sensor.py:46:9-12: Unexpected keyword ERROR homeassistant/components/easyenergy/sensor.py:47:9-24: Unexpected keyword argument `translation_key` in function `EasyEnergySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/easyenergy/sensor.py:54:9-12: Unexpected keyword argument `key` in function `EasyEnergySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/easyenergy/sensor.py:55:9-24: Unexpected keyword argument `translation_key` in function `EasyEnergySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/easyenergy/sensor.py:58:31-44: `get_gas_price` is uninitialized [unbound-name] ERROR homeassistant/components/easyenergy/sensor.py:61:9-12: Unexpected keyword argument `key` in function `EasyEnergySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/easyenergy/sensor.py:62:9-24: Unexpected keyword argument `translation_key` in function `EasyEnergySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/easyenergy/sensor.py:69:9-12: Unexpected keyword argument `key` in function `EasyEnergySensorEntityDescription.__init__` [unexpected-keyword] @@ -5486,7 +5583,7 @@ ERROR homeassistant/components/ecowitt/sensor.py:242:9-12: Unexpected keyword ar ERROR homeassistant/components/ecowitt/sensor.py:244:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ecowitt/sensor.py:247:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ecowitt/sensor.py:253:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/ecowitt/sensor.py:318:14-32: Class member `EcowittSensorEntity.entity_description` overrides parent class `EcowittEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/ecowitt/sensor.py:316:14-32: Class member `EcowittSensorEntity.entity_description` overrides parent class `EcowittEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/edimax/switch.py:7:1-41: Could not find import of `pyedimax.smartplug` [missing-import] ERROR homeassistant/components/edl21/sensor.py:53:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/edl21/sensor.py:54:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] @@ -5672,7 +5769,7 @@ ERROR homeassistant/components/elevenlabs/tts.py:289:25-33: Unpacked keyword arg ERROR homeassistant/components/elevenlabs/tts.py:289:25-33: Unpacked keyword argument `VoiceSettings | str | Any` is not assignable to parameter `next_request_ids` with type `Sequence[str] | None` in function `elevenlabs.text_to_speech.raw_client.AsyncRawTextToSpeechClient.stream` [bad-argument-type] ERROR homeassistant/components/elevenlabs/tts.py:289:25-33: Unpacked keyword argument `VoiceSettings | str | Any` is not assignable to parameter `use_pvc_as_ivc` with type `bool | None` in function `elevenlabs.text_to_speech.raw_client.AsyncRawTextToSpeechClient.stream` [bad-argument-type] ERROR homeassistant/components/elevenlabs/tts.py:289:25-33: Unpacked keyword argument `VoiceSettings | str | Any` is not assignable to parameter `apply_language_text_normalization` with type `bool | None` in function `elevenlabs.text_to_speech.raw_client.AsyncRawTextToSpeechClient.stream` [bad-argument-type] -ERROR homeassistant/components/elevenlabs/tts.py:289:25-33: Unpacked keyword argument `VoiceSettings | str | Any` is not assignable to parameter `request_options` with type `TypedDict[RequestOptions] | None` in function `elevenlabs.text_to_speech.raw_client.AsyncRawTextToSpeechClient.stream` [bad-argument-type] +ERROR homeassistant/components/elevenlabs/tts.py:289:25-33: Unpacked keyword argument `VoiceSettings | str | Any` is not assignable to parameter `request_options` with type `RequestOptions | None` in function `elevenlabs.text_to_speech.raw_client.AsyncRawTextToSpeechClient.stream` [bad-argument-type] ERROR homeassistant/components/elgato/button.py:36:9-12: Unexpected keyword argument `key` in function `ElgatoButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/elgato/button.py:38:9-24: Unexpected keyword argument `entity_category` in function `ElgatoButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/elgato/button.py:42:9-12: Unexpected keyword argument `key` in function `ElgatoButtonEntityDescription.__init__` [unexpected-keyword] @@ -5823,32 +5920,32 @@ ERROR homeassistant/components/emulated_roku/binding.py:135:26-43: Argument `str ERROR homeassistant/components/emulated_roku/binding.py:136:28-47: Argument `int | None` is not assignable to parameter `advertise_port` with type `int` in function `emulated_roku.EmulatedRokuServer.__init__` [bad-argument-type] ERROR homeassistant/components/emulated_roku/binding.py:137:28-47: Argument `bool | None` is not assignable to parameter `bind_multicast` with type `bool` in function `emulated_roku.EmulatedRokuServer.__init__` [bad-argument-type] ERROR homeassistant/components/energenie_power_sockets/__init__.py:21:44-86: `Device | None` is not assignable to `PowerStripUSB | None` [bad-assignment] -ERROR homeassistant/components/energy/data.py:367:29-40: `list[TypedDict[BatterySourceType] | TypedDict[GasSourceType] | TypedDict[GridSourceType] | TypedDict[SolarSourceType] | TypedDict[WaterSourceType]] | list[TypedDict[DeviceConsumption]]` is not assignable to TypedDict key `device_consumption` with type `list[TypedDict[DeviceConsumption]]` [bad-typed-dict-key] -ERROR homeassistant/components/energy/data.py:367:29-40: `list[TypedDict[BatterySourceType] | TypedDict[GasSourceType] | TypedDict[GridSourceType] | TypedDict[SolarSourceType] | TypedDict[WaterSourceType]] | list[TypedDict[DeviceConsumption]]` is not assignable to TypedDict key `energy_sources` with type `list[TypedDict[BatterySourceType] | TypedDict[GasSourceType] | TypedDict[GridSourceType] | TypedDict[SolarSourceType] | TypedDict[WaterSourceType]]` [bad-typed-dict-key] +ERROR homeassistant/components/energy/data.py:388:29-40: `list[SourceType] | list[DeviceConsumption]` is not assignable to TypedDict key `device_consumption` with type `list[DeviceConsumption]` [bad-typed-dict-key] +ERROR homeassistant/components/energy/data.py:388:29-40: `list[SourceType] | list[DeviceConsumption]` is not assignable to TypedDict key `device_consumption_water` with type `list[DeviceConsumption]` [bad-typed-dict-key] +ERROR homeassistant/components/energy/data.py:388:29-40: `list[SourceType] | list[DeviceConsumption]` is not assignable to TypedDict key `energy_sources` with type `list[SourceType]` [bad-typed-dict-key] ERROR homeassistant/components/energy/sensor.py:321:17-28: `valid_units` may be uninitialized [unbound-name] ERROR homeassistant/components/energy/sensor.py:321:30-48: `default_price_unit` may be uninitialized [unbound-name] ERROR homeassistant/components/energy/sensor.py:340:54-65: `valid_units` may be uninitialized [unbound-name] ERROR homeassistant/components/energy/sensor.py:374:27-44: `energy_price_unit` may be uninitialized [unbound-name] ERROR homeassistant/components/energy/validate.py:147:9-14: `issue` may be uninitialized [unbound-name] -ERROR homeassistant/components/energy/validate.py:174:36-51: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/energy/validate.py:234:36-51: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/energy/validate.py:305:36-51: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/energy/validate.py:338:36-51: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/energy/validate.py:392:47-62: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/energy/validate.py:521:47-62: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/energy/validate.py:581:47-62: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/energy/validate.py:641:47-62: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/energy/validate.py:749:17-36: Module `homeassistant.components.recorder.statistics` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/validate.py:181:36-51: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/validate.py:241:36-51: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/validate.py:312:36-51: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/validate.py:345:36-51: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/validate.py:399:47-62: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/validate.py:528:47-62: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/validate.py:588:47-62: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/validate.py:648:47-62: Module `homeassistant.components.recorder.models` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/validate.py:773:17-36: Module `homeassistant.components.recorder.statistics` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR homeassistant/components/energy/websocket_api.py:88:22-26: Argument `((HomeAssistant, ActiveConnection, dict[str, Any], EnergyManager) -> Coroutine[Any, Any, None]) | ((HomeAssistant, ActiveConnection, dict[str, Any], EnergyManager) -> None)` is not assignable to parameter `wrapped` with type `(HomeAssistant, ActiveConnection, dict[str, Any], EnergyManager) -> Coroutine[Any, Any, None]` in function `functools.wraps` [bad-argument-type] -ERROR homeassistant/components/energy/websocket_api.py:276:9-28: Module `homeassistant.components.recorder.statistics` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/energy/websocket_api.py:361:43-62: Module `homeassistant.components.recorder.statistics` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/energy/websocket_api.py:372:13-32: Module `homeassistant.components.recorder.statistics` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/websocket_api.py:277:9-28: Module `homeassistant.components.recorder.statistics` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/websocket_api.py:362:43-62: Module `homeassistant.components.recorder.statistics` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/energy/websocket_api.py:373:13-32: Module `homeassistant.components.recorder.statistics` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR homeassistant/components/energyzero/coordinator.py:38:5-17: Class member `EnergyZeroDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/energyzero/sensor.py:46:9-12: Unexpected keyword argument `key` in function `EnergyZeroSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/energyzero/sensor.py:47:9-24: Unexpected keyword argument `translation_key` in function `EnergyZeroSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/energyzero/sensor.py:54:9-12: Unexpected keyword argument `key` in function `EnergyZeroSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/energyzero/sensor.py:55:9-24: Unexpected keyword argument `translation_key` in function `EnergyZeroSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/energyzero/sensor.py:58:31-44: `get_gas_price` is uninitialized [unbound-name] ERROR homeassistant/components/energyzero/sensor.py:61:9-12: Unexpected keyword argument `key` in function `EnergyZeroSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/energyzero/sensor.py:62:9-24: Unexpected keyword argument `translation_key` in function `EnergyZeroSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/energyzero/sensor.py:69:9-12: Unexpected keyword argument `key` in function `EnergyZeroSensorEntityDescription.__init__` [unexpected-keyword] @@ -6234,7 +6331,7 @@ ERROR homeassistant/components/esphome/config_flow.py:914:9-31: Class member `Es ERROR homeassistant/components/esphome/cover.py:49:14-38: Class member `EsphomeCover._attr_supported_features` overrides parent class `EsphomeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/esphome/cover.py:50:14-32: Class member `EsphomeCover._attr_device_class` overrides parent class `EsphomeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/esphome/entity.py:318:5-17: Class member `EsphomeBaseEntity.device_entry` overrides parent class `Entity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/esphome/entity.py:457:27-36: `has_state` may be uninitialized [unbound-name] +ERROR homeassistant/components/esphome/entity.py:440:27-36: `has_state` may be uninitialized [unbound-name] ERROR homeassistant/components/esphome/entry_data.py:195:16-64: Returned type `DeviceInfo | str` is not assignable to declared return type `str` [bad-return] ERROR homeassistant/components/esphome/entry_data.py:201:16-203:10: Returned type `DeviceInfo | str` is not assignable to declared return type `str` [bad-return] ERROR homeassistant/components/esphome/entry_data.py:277:38-44: `needed` may be uninitialized [unbound-name] @@ -6262,6 +6359,42 @@ ERROR homeassistant/components/esphome/update.py:273:5-29: Class member `ESPHome ERROR homeassistant/components/esphome/update.py:284:14-32: Class member `ESPHomeUpdateEntity._attr_device_class` overrides parent class `EsphomeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/esphome/valve.py:41:14-38: Class member `EsphomeValve._attr_supported_features` overrides parent class `EsphomeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/esphome/valve.py:42:14-32: Class member `EsphomeValve._attr_device_class` overrides parent class `EsphomeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/essent/coordinator.py:34:5-17: Class member `EssentDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/essent/sensor.py:83:9-12: Unexpected keyword argument `key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:84:9-24: Unexpected keyword argument `translation_key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:92:9-12: Unexpected keyword argument `key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:93:9-24: Unexpected keyword argument `translation_key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:99:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:102:9-12: Unexpected keyword argument `key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:103:9-24: Unexpected keyword argument `translation_key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:108:9-12: Unexpected keyword argument `key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:109:9-24: Unexpected keyword argument `translation_key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:112:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:115:9-12: Unexpected keyword argument `key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:116:9-24: Unexpected keyword argument `translation_key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:119:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:122:9-12: Unexpected keyword argument `key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:123:9-24: Unexpected keyword argument `translation_key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:129:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:130:9-24: Unexpected keyword argument `entity_category` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:133:9-12: Unexpected keyword argument `key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:134:9-24: Unexpected keyword argument `translation_key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:141:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:142:9-24: Unexpected keyword argument `entity_category` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:145:9-12: Unexpected keyword argument `key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:146:9-24: Unexpected keyword argument `translation_key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:150:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:151:9-24: Unexpected keyword argument `entity_category` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:154:9-12: Unexpected keyword argument `key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:155:9-24: Unexpected keyword argument `translation_key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:159:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:160:9-24: Unexpected keyword argument `entity_category` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:163:9-12: Unexpected keyword argument `key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:164:9-24: Unexpected keyword argument `translation_key` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:168:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:169:9-24: Unexpected keyword argument `entity_category` in function `EssentSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/essent/sensor.py:194:5-23: Class member `EssentSensor.entity_description` overrides parent class `EssentEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/essent/sensor.py:194:5-23: Class member `EssentSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/etherscan/sensor.py:7:1-36: Could not find import of `pyetherscan` [missing-import] ERROR homeassistant/components/eufy/__init__.py:3:8-16: Could not find import of `lakeside` [missing-import] ERROR homeassistant/components/eufy/light.py:7:8-16: Could not find import of `lakeside` [missing-import] @@ -6581,170 +6714,170 @@ ERROR homeassistant/components/firmata/pin.py:149:5-11: Class member `FirmataBin ERROR homeassistant/components/firmata/pin.py:218:5-16: Class member `FirmataAnalogInput._analog_pin` overrides parent class `FirmataBoardPin` in an inconsistent manner [bad-override] ERROR homeassistant/components/firmata/pin.py:219:5-11: Class member `FirmataAnalogInput._state` overrides parent class `FirmataBoardPin` in an inconsistent manner [bad-override] ERROR homeassistant/components/fitbit/application_credentials.py:64:40-44: `resp` is uninitialized [unbound-name] -ERROR homeassistant/components/fitbit/coordinator.py:29:5-17: Class member `FitbitDeviceCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/fitbit/sensor.py:152:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:153:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:155:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:158:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:161:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:162:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:164:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:169:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:170:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:172:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:174:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:176:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:179:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:180:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:188:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:189:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:190:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:195:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:198:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:199:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:201:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:204:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:207:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:208:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:210:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:216:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:217:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:219:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:223:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:226:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:227:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:229:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:233:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:236:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:237:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:239:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:243:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:246:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:247:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:249:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:253:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:256:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:257:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:259:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:264:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:265:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:267:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:269:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:271:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:274:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:275:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:277:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:279:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:281:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:284:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:285:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:290:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:292:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:295:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:296:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:297:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:301:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:303:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:306:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:307:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:309:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:311:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:313:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:316:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:317:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:319:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:322:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:324:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:327:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:328:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:330:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:333:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:335:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:338:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:339:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:341:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:344:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:346:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:349:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:350:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:352:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:355:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:357:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:360:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:361:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:363:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:365:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:367:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:370:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:371:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:373:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:377:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:378:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:381:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:382:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:384:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:388:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:389:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:392:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:393:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:401:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:402:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:404:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:407:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:410:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:411:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:413:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:416:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:419:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:420:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:422:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:426:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:429:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:430:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:432:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:436:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:439:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:440:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:442:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:446:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:449:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:450:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:452:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:456:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:459:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:460:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:462:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:466:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:469:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:470:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:472:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:475:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:478:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:479:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:480:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:484:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:490:5-8: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:491:5-20: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:492:5-9: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:494:5-20: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:497:5-8: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:498:5-20: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:499:5-9: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:502:5-20: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:506:5-8: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:507:5-20: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:508:5-9: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:510:5-20: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:511:5-20: Unexpected keyword argument `has_entity_name` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:514:5-8: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:515:5-20: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:517:5-20: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:518:5-20: Unexpected keyword argument `has_entity_name` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/fitbit/sensor.py:597:5-23: Class member `FitbitSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/fitbit/sensor.py:652:5-23: Class member `FitbitBatterySensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/fitbit/sensor.py:652:5-23: Class member `FitbitBatterySensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/fitbit/sensor.py:710:5-23: Class member `FitbitBatteryLevelSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/fitbit/sensor.py:710:5-23: Class member `FitbitBatteryLevelSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fitbit/coordinator.py:30:5-17: Class member `FitbitDeviceCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fitbit/sensor.py:154:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:155:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:157:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:160:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:163:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:164:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:166:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:171:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:172:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:174:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:176:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:178:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:181:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:182:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:190:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:191:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:192:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:197:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:200:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:201:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:203:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:206:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:209:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:210:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:212:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:218:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:219:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:221:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:225:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:228:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:229:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:231:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:235:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:238:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:239:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:241:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:245:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:248:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:249:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:251:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:255:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:258:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:259:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:261:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:266:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:267:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:269:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:271:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:273:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:276:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:277:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:279:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:281:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:283:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:286:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:287:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:292:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:294:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:297:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:298:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:299:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:303:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:305:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:308:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:309:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:311:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:313:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:315:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:318:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:319:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:321:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:324:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:326:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:329:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:330:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:332:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:335:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:337:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:340:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:341:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:343:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:346:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:348:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:351:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:352:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:354:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:357:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:359:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:362:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:363:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:365:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:367:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:369:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:372:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:373:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:375:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:379:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:380:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:383:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:384:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:386:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:390:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:391:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:394:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:395:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:403:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:404:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:406:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:409:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:412:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:413:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:415:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:418:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:421:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:422:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:424:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:428:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:431:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:432:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:434:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:438:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:441:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:442:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:444:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:448:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:451:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:452:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:454:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:458:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:461:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:462:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:464:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:468:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:471:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:472:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:474:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:477:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:480:9-12: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:481:9-24: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:482:9-13: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:486:9-24: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:492:5-8: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:493:5-20: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:494:5-9: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:496:5-20: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:499:5-8: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:500:5-20: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:501:5-9: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:504:5-20: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:508:5-8: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:509:5-20: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:510:5-9: Unexpected keyword argument `icon` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:512:5-20: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:513:5-20: Unexpected keyword argument `has_entity_name` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:516:5-8: Unexpected keyword argument `key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:517:5-20: Unexpected keyword argument `translation_key` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:519:5-20: Unexpected keyword argument `entity_category` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:520:5-20: Unexpected keyword argument `has_entity_name` in function `FitbitSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fitbit/sensor.py:599:5-23: Class member `FitbitSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fitbit/sensor.py:654:5-23: Class member `FitbitBatterySensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fitbit/sensor.py:654:5-23: Class member `FitbitBatterySensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fitbit/sensor.py:714:5-23: Class member `FitbitBatteryLevelSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fitbit/sensor.py:714:5-23: Class member `FitbitBatteryLevelSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/fivem/binary_sensor.py:27:9-12: Unexpected keyword argument `key` in function `FiveMBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/fivem/binary_sensor.py:28:9-24: Unexpected keyword argument `translation_key` in function `FiveMBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/fivem/binary_sensor.py:50:5-23: Class member `FiveMSensorEntity.entity_description` overrides parent class `FiveMEntity` in an inconsistent manner [bad-override] @@ -6922,6 +7055,7 @@ ERROR homeassistant/components/flume/sensor.py:153:7-18: Field `entity_descripti `, which is not assignable to the type `SensorEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/flux/switch.py:247:30-251:10: `() -> None` is not assignable to attribute `unsub_tracker` with type `None` [bad-assignment] ERROR homeassistant/components/flux/switch.py:261:13-31: Expected a callable, got `None` [not-callable] +ERROR homeassistant/components/flux/switch.py:286:12-37: `<` is not supported between `datetime` and `None` [unsupported-operation] ERROR homeassistant/components/flux/switch.py:290:30-46: Object of class `NoneType` has no attribute `timestamp` [missing-attribute] ERROR homeassistant/components/flux/switch.py:303:64-74: Object of class `NoneType` has no attribute `day` [missing-attribute] ERROR homeassistant/components/flux/switch.py:305:35-70: `-` is not supported between `None` and `timedelta` [unsupported-operation] @@ -7095,7 +7229,7 @@ ERROR homeassistant/components/freebox/button.py:36:9-12: Unexpected keyword arg ERROR homeassistant/components/freebox/button.py:37:9-13: Unexpected keyword argument `name` in function `FreeboxButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/freebox/button.py:38:9-24: Unexpected keyword argument `entity_category` in function `FreeboxButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/freebox/button.py:60:5-23: Class member `FreeboxButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/freebox/router.py:63:42-69: Unpacked argument `tuple[Unknown]` is not assignable to parameter `*args` with type `tuple[PathLike[bytes] | PathLike[str] | bytes | str, int, bool]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/freebox/router.py:63:42-69: Unpacked argument `tuple[Unknown]` is not assignable to parameter `*args` with type `tuple[StrOrBytesPath, int, bool]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/freebox/sensor.py:29:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/freebox/sensor.py:30:9-13: Unexpected keyword argument `name` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/freebox/sensor.py:34:9-13: Unexpected keyword argument `icon` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] @@ -7120,6 +7254,26 @@ ERROR homeassistant/components/freedompro/cover.py:57:5-29: Class member `Device ERROR homeassistant/components/freedompro/cover.py:83:14-32: Class member `Device._attr_device_class` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/freedompro/fan.py:66:14-38: Class member `FreedomproFan._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/freedompro/sensor.py:77:14-32: Class member `Device._attr_device_class` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fressnapf_tracker/binary_sensor.py:35:9-12: Unexpected keyword argument `key` in function `FressnapfTrackerBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fressnapf_tracker/binary_sensor.py:37:9-24: Unexpected keyword argument `entity_category` in function `FressnapfTrackerBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fressnapf_tracker/binary_sensor.py:60:5-23: Class member `FressnapfTrackerBinarySensor.entity_description` overrides parent class `FressnapfTrackerEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fressnapf_tracker/binary_sensor.py:60:5-23: Class member `FressnapfTrackerBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fressnapf_tracker/light.py:23:5-20: Unexpected keyword argument `translation_key` in function `homeassistant.components.light.LightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fressnapf_tracker/light.py:24:5-20: Unexpected keyword argument `entity_category` in function `homeassistant.components.light.LightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fressnapf_tracker/light.py:25:5-8: Unexpected keyword argument `key` in function `homeassistant.components.light.LightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fressnapf_tracker/light.py:45:7-28: Field `entity_description` is declared `EntityDescription` in ancestor `class FressnapfTrackerEntity: ... +`, which is not assignable to the type `LightEntityDescription` implied by multiple inheritance [inconsistent-inheritance] +ERROR homeassistant/components/fressnapf_tracker/light.py:48:5-21: Class member `FressnapfTrackerLight._attr_color_mode` overrides parent class `LightEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fressnapf_tracker/light.py:49:5-32: Class member `FressnapfTrackerLight._attr_supported_color_modes` overrides parent class `LightEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fressnapf_tracker/sensor.py:34:9-12: Unexpected keyword argument `key` in function `FressnapfTrackerSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fressnapf_tracker/sensor.py:38:9-24: Unexpected keyword argument `entity_category` in function `FressnapfTrackerSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fressnapf_tracker/sensor.py:61:5-23: Class member `FressnapfTrackerSensor.entity_description` overrides parent class `FressnapfTrackerEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fressnapf_tracker/sensor.py:61:5-23: Class member `FressnapfTrackerSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/fressnapf_tracker/switch.py:20:5-20: Unexpected keyword argument `translation_key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fressnapf_tracker/switch.py:21:5-20: Unexpected keyword argument `entity_category` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fressnapf_tracker/switch.py:23:5-8: Unexpected keyword argument `key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/fressnapf_tracker/switch.py:41:7-29: Field `entity_description` is declared `EntityDescription` in ancestor `class FressnapfTrackerEntity: ... +`, which is not assignable to the type `SwitchEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/fritz/binary_sensor.py:39:9-12: Unexpected keyword argument `key` in function `FritzBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/fritz/binary_sensor.py:40:9-24: Unexpected keyword argument `translation_key` in function `FritzBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/fritz/binary_sensor.py:42:9-24: Unexpected keyword argument `entity_category` in function `FritzBinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -7151,8 +7305,8 @@ ERROR homeassistant/components/fritz/coordinator.py:122:49-53: `None` is not ass ERROR homeassistant/components/fritz/coordinator.py:123:40-44: `None` is not assignable to attribute `fritz_hosts` with type `FritzHosts` [bad-assignment] ERROR homeassistant/components/fritz/coordinator.py:124:42-46: `None` is not assignable to attribute `fritz_status` with type `FritzStatus` [bad-assignment] ERROR homeassistant/components/fritz/coordinator.py:125:38-42: `None` is not assignable to attribute `fritz_call` with type `FritzCall` [bad-assignment] -ERROR homeassistant/components/fritz/coordinator.py:377:36-379:18: `list[dict[Unknown, Unknown]]` is not assignable to variable `hosts_attributes` with type `list[TypedDict[HostAttributes]]` [bad-assignment] -ERROR homeassistant/components/fritz/coordinator.py:381:30-383:18: `list[dict[Unknown, Unknown]]` is not assignable to variable `hosts_info` with type `list[TypedDict[HostInfo]]` [bad-assignment] +ERROR homeassistant/components/fritz/coordinator.py:377:36-379:18: `list[dict[Unknown, Unknown]]` is not assignable to variable `hosts_attributes` with type `list[HostAttributes]` [bad-assignment] +ERROR homeassistant/components/fritz/coordinator.py:381:30-383:18: `list[dict[Unknown, Unknown]]` is not assignable to variable `hosts_info` with type `list[HostInfo]` [bad-assignment] ERROR homeassistant/components/fritz/coordinator.py:548:21-33: Object of class `str` has no attribute `get` [missing-attribute] ERROR homeassistant/components/fritz/coordinator.py:571:21-33: Object of class `str` has no attribute `get` [missing-attribute] ERROR homeassistant/components/fritz/entity.py:96:5-23: Class member `FritzBoxBaseCoordinatorEntity.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] @@ -7278,9 +7432,6 @@ ERROR homeassistant/components/fritzbox/sensor.py:257:5-23: Class member `FritzB ERROR homeassistant/components/fritzbox_callmonitor/base.py:84:22-49: Object of class `NoneType` has no attribute `contacts` [missing-attribute] ERROR homeassistant/components/fritzbox_callmonitor/base.py:103:23-36: Type `None` is not iterable [not-iterable] ERROR homeassistant/components/fritzbox_callmonitor/config_flow.py:133:9-31: Class member `FritzBoxCallMonitorConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/fronius/coordinator.py:70:26-41: Class member `FroniusCoordinatorBase.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/fronius/coordinator.py:70:44-63: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@FroniusCoordinatorBase, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/fronius/coordinator.py:79:40-61: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@FroniusCoordinatorBase, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/fronius/coordinator.py:165:50-54: `data` may be uninitialized [unbound-name] ERROR homeassistant/components/fronius/diagnostics.py:29:9-84: Cannot set item in `dict[str, dict[Unknown, Unknown]]` [unsupported-operation] ERROR homeassistant/components/fronius/diagnostics.py:32:9-82: Cannot set item in `dict[str, dict[Unknown, Unknown]]` [unsupported-operation] @@ -7452,7 +7603,7 @@ ERROR homeassistant/components/fronius/sensor.py:868:35-44: `meter_uid` may be u ERROR homeassistant/components/frontend/__init__.py:541:18-28: `theme_data` may be uninitialized [unbound-name] ERROR homeassistant/components/frontend/__init__.py:542:23-33: `theme_data` may be uninitialized [unbound-name] ERROR homeassistant/components/frontend/__init__.py:717:16-19: `tpl` may be uninitialized [unbound-name] -ERROR homeassistant/components/frontend/storage.py:35:12-17: `store` may be uninitialized [unbound-name] +ERROR homeassistant/components/frontend/storage.py:51:18-24: `future` may be uninitialized [unbound-name] ERROR homeassistant/components/frontier_silicon/browse_media.py:36:15-26: Argument `str | None` is not assignable to parameter `title` with type `str` in function `homeassistant.components.media_player.browse_media.BrowseMedia.__init__` [bad-argument-type] ERROR homeassistant/components/frontier_silicon/browse_media.py:138:36-40: Argument `dict[str, int | str | None]` is not assignable to parameter `item` with type `dict[str, str]` in function `_item_payload` [bad-argument-type] ERROR homeassistant/components/frontier_silicon/config_flow.py:132:22-54: `str | None` is not assignable to attribute `_name` with type `str` [bad-assignment] @@ -7725,6 +7876,8 @@ ERROR homeassistant/components/geniushub/__init__.py:176:13-38: Module `aiohttp. ERROR homeassistant/components/geniushub/climate.py:48:5-29: Class member `GeniusClimateZone._attr_supported_features` overrides parent class `GeniusHeatingZone` in an inconsistent manner [bad-override] ERROR homeassistant/components/geniushub/sensor.py:48:5-23: Class member `GeniusBattery._attr_device_class` overrides parent class `GeniusDevice` in an inconsistent manner [bad-override] ERROR homeassistant/components/geniushub/water_heater.py:55:5-29: Class member `GeniusWaterHeater._attr_supported_features` overrides parent class `GeniusHeatingZone` in an inconsistent manner [bad-override] +ERROR homeassistant/components/gentex_homelink/event.py:54:14-24: Class member `HomeLinkEventEntity._attr_name` overrides parent class `EventEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/gentex_homelink/event.py:55:14-29: Class member `HomeLinkEventEntity._attr_unique_id` overrides parent class `EventEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/geo_json_events/geo_location.py:109:31-56: `None` is not subscriptable [unsupported-operation] ERROR homeassistant/components/geo_json_events/geo_location.py:110:32-57: `None` is not subscriptable [unsupported-operation] ERROR homeassistant/components/geo_rss_events/sensor.py:164:27-44: `int` is not assignable to attribute `_state` with type `None` [bad-assignment] @@ -7753,7 +7906,7 @@ ERROR homeassistant/components/geocaching/sensor.py:142:5-23: Class member `GeoE ERROR homeassistant/components/geocaching/sensor.py:163:5-23: Class member `GeocachingProfileSensor.entity_description` overrides parent class `GeocachingBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/geocaching/sensor.py:163:5-23: Class member `GeocachingProfileSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/geofency/device_tracker.py:71:14-31: Class member `GeofencyEntity._attr_device_info` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/geofency/device_tracker.py:71:34-74:10: `TypedDict[DeviceInfo]` is not assignable to attribute `_attr_device_info` with type `None` [bad-assignment] +ERROR homeassistant/components/geofency/device_tracker.py:71:34-74:10: `DeviceInfo` is not assignable to attribute `_attr_device_info` with type `None` [bad-assignment] ERROR homeassistant/components/geofency/device_tracker.py:79:34-81:10: `() -> None` is not assignable to attribute `_unsub_dispatcher` with type `None` [bad-assignment] ERROR homeassistant/components/geofency/device_tracker.py:98:9-31: Expected a callable, got `None` [not-callable] ERROR homeassistant/components/geonetnz_quakes/__init__.py:139:25-53: Argument `timedelta` is not assignable to parameter `filter_time` with type `datetime` in function `aio_geojson_geonetnz_quakes.feed_manager.GeonetnzQuakesFeedManager.__init__` [bad-argument-type] @@ -7932,14 +8085,14 @@ ERROR homeassistant/components/glances/sensor.py:277:9-12: Unexpected keyword ar ERROR homeassistant/components/glances/sensor.py:279:9-24: Unexpected keyword argument `translation_key` in function `GlancesSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/glances/sensor.py:326:5-23: Class member `GlancesSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/glances/sensor.py:326:5-23: Class member `GlancesSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/go2rtc/__init__.py:212:45-69: Unpacked argument `tuple[Literal['go2rtc']]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, int, PathLike[str] | str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/components/go2rtc/__init__.py:272:26-31: `value` may be uninitialized [unbound-name] -ERROR homeassistant/components/go2rtc/__init__.py:317:40-53: `stream_source` may be uninitialized [unbound-name] -ERROR homeassistant/components/go2rtc/__init__.py:326:20-33: `stream_source` may be uninitialized [unbound-name] -ERROR homeassistant/components/go2rtc/__init__.py:327:49-62: `stream_source` may be uninitialized [unbound-name] -ERROR homeassistant/components/go2rtc/__init__.py:328:13-26: `stream_source` may be uninitialized [unbound-name] -ERROR homeassistant/components/go2rtc/__init__.py:350:13-26: `stream_source` may be uninitialized [unbound-name] -ERROR homeassistant/components/go2rtc/__init__.py:355:21-34: `stream_source` may be uninitialized [unbound-name] +ERROR homeassistant/components/go2rtc/__init__.py:260:45-69: Unpacked argument `tuple[Literal['go2rtc']]` is not assignable to parameter `*args` with type `tuple[StrPath, int, PathLike[str] | str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/go2rtc/__init__.py:325:26-31: `value` may be uninitialized [unbound-name] +ERROR homeassistant/components/go2rtc/__init__.py:370:40-53: `stream_source` may be uninitialized [unbound-name] +ERROR homeassistant/components/go2rtc/__init__.py:379:20-33: `stream_source` may be uninitialized [unbound-name] +ERROR homeassistant/components/go2rtc/__init__.py:380:49-62: `stream_source` may be uninitialized [unbound-name] +ERROR homeassistant/components/go2rtc/__init__.py:381:13-26: `stream_source` may be uninitialized [unbound-name] +ERROR homeassistant/components/go2rtc/__init__.py:403:13-26: `stream_source` may be uninitialized [unbound-name] +ERROR homeassistant/components/go2rtc/__init__.py:408:21-34: `stream_source` may be uninitialized [unbound-name] ERROR homeassistant/components/goalzero/binary_sensor.py:23:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/goalzero/binary_sensor.py:24:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/goalzero/binary_sensor.py:27:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -8064,6 +8217,30 @@ ERROR homeassistant/components/google/coordinator.py:51:5-17: Class member `Cale ERROR homeassistant/components/google/coordinator.py:112:5-17: Class member `CalendarQueryUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/google/coordinator.py:139:36-144:10: Missing argument `calendarId` in function `gcal_sync.api.ListEventsRequest.__init__` [missing-argument] ERROR homeassistant/components/google/coordinator.py:157:36-87: Missing argument `calendarId` in function `gcal_sync.api.ListEventsRequest.__init__` [missing-argument] +ERROR homeassistant/components/google_air_quality/coordinator.py:29:5-17: Class member `GoogleAirQualityUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/google_air_quality/sensor.py:49:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:50:9-24: Unexpected keyword argument `translation_key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:56:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:57:9-24: Unexpected keyword argument `translation_key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:63:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:64:9-24: Unexpected keyword argument `translation_key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:74:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:75:9-24: Unexpected keyword argument `translation_key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:84:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:85:9-24: Unexpected keyword argument `translation_key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:91:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:92:9-24: Unexpected keyword argument `translation_key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:101:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:108:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:109:9-24: Unexpected keyword argument `translation_key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:115:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:116:9-24: Unexpected keyword argument `translation_key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:122:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:129:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:136:9-12: Unexpected keyword argument `key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:137:9-24: Unexpected keyword argument `translation_key` in function `AirQualitySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_air_quality/sensor.py:171:5-23: Class member `AirQualitySensorEntity.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/google_air_quality/sensor.py:171:5-23: Class member `AirQualitySensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/google_assistant/helpers.py:77:8-20: `entity_entry` may be uninitialized [unbound-name] ERROR homeassistant/components/google_assistant/helpers.py:77:25-37: `entity_entry` may be uninitialized [unbound-name] ERROR homeassistant/components/google_assistant/helpers.py:78:19-31: `entity_entry` may be uninitialized [unbound-name] @@ -8083,7 +8260,7 @@ ERROR homeassistant/components/google_assistant/http.py:334:47-51: `data` may be ERROR homeassistant/components/google_assistant/http.py:336:17-21: `data` may be uninitialized [unbound-name] ERROR homeassistant/components/google_assistant/http.py:343:42-46: `data` may be uninitialized [unbound-name] ERROR homeassistant/components/google_assistant/http.py:345:22-26: `data` may be uninitialized [unbound-name] -ERROR homeassistant/components/google_assistant/http.py:401:55-82: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/google_assistant/http.py:401:55-82: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, JsonValueType]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/google_assistant/report_state.py:65:44-61: Argument `HassJob[[now: Unknown | None = None], Coroutine[Unknown, Unknown, Unknown]]` is not assignable to parameter `action` with type `((datetime) -> Coroutine[Any, Any, None] | None) | HassJob[[datetime], Coroutine[Any, Any, None] | None]` in function `homeassistant.helpers.event.async_call_later` [bad-argument-type] ERROR homeassistant/components/google_assistant/report_state.py:143:44-61: Argument `HassJob[[now: Unknown | None = None], Coroutine[Unknown, Unknown, Unknown]]` is not assignable to parameter `action` with type `((datetime) -> Coroutine[Any, Any, None] | None) | HassJob[[datetime], Coroutine[Any, Any, None] | None]` in function `homeassistant.helpers.event.async_call_later` [bad-argument-type] ERROR homeassistant/components/google_assistant/report_state.py:164:54-77: Argument `(hass: HomeAssistant, old_state: str, old_attrs: dict[Unknown, Unknown], old_extra_arg: dict[Unknown, Unknown], new_state: str, new_attrs: dict[Unknown, Unknown], new_extra_arg: dict[Unknown, Unknown]) -> Unknown` is not assignable to parameter `extra_significant_check` with type `((HomeAssistant, str, MappingProxyType[Unknown, Unknown] | dict[Unknown, Unknown], Any, str, MappingProxyType[Unknown, Unknown] | dict[Unknown, Unknown], Any) -> bool | None) | None` in function `homeassistant.helpers.significant_change.create_checker` [bad-argument-type] @@ -8144,7 +8321,7 @@ ERROR homeassistant/components/google_maps/device_tracker.py:115:16-66: `<` is n ERROR homeassistant/components/google_maps/device_tracker.py:130:39-48: Cannot set item in `dict[str, str]` [unsupported-operation] ERROR homeassistant/components/google_photos/coordinator.py:36:5-17: Class member `GooglePhotosUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/google_sheets/config_flow.py:82:57-84:14: Unpacked argument `tuple[Literal['Home Assistant']]` is not assignable to parameter `*args` with type `tuple[Unknown, Unknown | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/components/google_sheets/services.py:83:52-81: Object of class `tuple` has no attribute `user_entered` [missing-attribute] +ERROR homeassistant/components/google_sheets/services.py:86:52-81: Object of class `tuple` has no attribute `user_entered` [missing-attribute] ERROR homeassistant/components/google_tasks/api.py:63:28-45: Object of class `Resource` has no attribute `tasklists` [missing-attribute] ERROR homeassistant/components/google_tasks/api.py:70:28-41: Object of class `Resource` has no attribute `tasks` [missing-attribute] ERROR homeassistant/components/google_tasks/api.py:86:28-41: Object of class `Resource` has no attribute `tasks` [missing-attribute] @@ -8157,9 +8334,52 @@ ERROR homeassistant/components/google_tasks/api.py:156:67-82: Object of class `S ERROR homeassistant/components/google_tasks/coordinator.py:25:5-17: Class member `TaskUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/google_travel_time/config_flow.py:215:9-31: Class member `GoogleTravelTimeConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/google_travel_time/sensor.py:97:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/google_travel_time/sensor.py:279:32-46: `departure_time` may be uninitialized [unbound-name] -ERROR homeassistant/components/google_travel_time/sensor.py:280:30-42: `arrival_time` may be uninitialized [unbound-name] +ERROR homeassistant/components/google_travel_time/sensor.py:280:32-46: `departure_time` may be uninitialized [unbound-name] +ERROR homeassistant/components/google_travel_time/sensor.py:281:30-42: `arrival_time` may be uninitialized [unbound-name] ERROR homeassistant/components/google_weather/coordinator.py:63:5-17: Class member `GoogleWeatherBaseCoordinator.config_entry` overrides parent class `TimestampDataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/google_weather/sensor.py:49:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:56:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:61:9-24: Unexpected keyword argument `translation_key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:64:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:66:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:70:9-24: Unexpected keyword argument `translation_key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:73:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:75:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:79:9-24: Unexpected keyword argument `translation_key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:82:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:84:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:88:9-24: Unexpected keyword argument `translation_key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:91:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:98:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:99:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:103:9-24: Unexpected keyword argument `translation_key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:106:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:107:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:111:9-24: Unexpected keyword argument `translation_key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:114:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:121:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:122:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:126:9-24: Unexpected keyword argument `translation_key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:129:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:131:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:138:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:140:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:146:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:148:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:154:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:156:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:160:9-24: Unexpected keyword argument `translation_key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:163:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:165:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:169:9-24: Unexpected keyword argument `translation_key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:172:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:176:9-24: Unexpected keyword argument `translation_key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:179:9-12: Unexpected keyword argument `key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:180:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:182:9-24: Unexpected keyword argument `translation_key` in function `GoogleWeatherSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/google_weather/sensor.py:215:5-23: Class member `GoogleWeatherSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/google_weather/sensor.py:215:5-23: Class member `GoogleWeatherSensor.entity_description` overrides parent class `GoogleWeatherBaseEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/google_weather/sensor.py:215:5-23: Class member `GoogleWeatherSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/google_wifi/sensor.py:56:9-12: Unexpected keyword argument `key` in function `GoogleWifiSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/google_wifi/sensor.py:59:9-13: Unexpected keyword argument `icon` in function `GoogleWifiSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/google_wifi/sensor.py:62:9-12: Unexpected keyword argument `key` in function `GoogleWifiSensorEntityDescription.__init__` [unexpected-keyword] @@ -8258,7 +8478,7 @@ ERROR homeassistant/components/gpsd/sensor.py:148:9-24: Unexpected keyword argum ERROR homeassistant/components/gpsd/sensor.py:151:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `GpsdSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/gpsd/sensor.py:179:5-23: Class member `GpsdSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/gpslogger/device_tracker.py:83:14-31: Class member `GPSLoggerEntity._attr_device_info` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/gpslogger/device_tracker.py:83:34-86:10: `TypedDict[DeviceInfo]` is not assignable to attribute `_attr_device_info` with type `None` [bad-assignment] +ERROR homeassistant/components/gpslogger/device_tracker.py:83:34-86:10: `DeviceInfo` is not assignable to attribute `_attr_device_info` with type `None` [bad-assignment] ERROR homeassistant/components/gpslogger/device_tracker.py:96:34-98:10: `() -> None` is not assignable to attribute `_unsub_dispatcher` with type `None` [bad-assignment] ERROR homeassistant/components/gpslogger/device_tracker.py:134:9-31: Expected a callable, got `None` [not-callable] ERROR homeassistant/components/graphite/__init__.py:107:9-34: Expected a callable, got `None` [not-callable] @@ -8299,7 +8519,6 @@ ERROR homeassistant/components/group/light.py:305:14-38: Class member `LightGrou ERROR homeassistant/components/group/lock.py:120:14-38: Class member `LockGroup._attr_supported_features` overrides parent class `GroupEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/group/sensor.py:365:14-32: Class member `SensorGroup._attr_device_class` overrides parent class `GroupEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/group/valve.py:262:14-38: Class member `ValveGroup._attr_supported_features` overrides parent class `GroupEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/growatt_server/__init__.py:40:53-67: `login_response` is uninitialized [unbound-name] ERROR homeassistant/components/growatt_server/config_flow.py:76:68-78:14: Unpacked argument `tuple[Any, Any]` is not assignable to parameter `*args` with type `tuple[Unknown, Unknown, bool | Unknown]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/growatt_server/coordinator.py:61:24-63:14: `GrowattApi` is not assignable to attribute `api` with type `OpenApiV1` [bad-assignment] ERROR homeassistant/components/growatt_server/number.py:41:9-12: Unexpected keyword argument `key` in function `GrowattNumberEntityDescription.__init__` [unexpected-keyword] @@ -8694,7 +8913,7 @@ ERROR homeassistant/components/habitica/binary_sensor.py:50:9-12: Unexpected key ERROR homeassistant/components/habitica/binary_sensor.py:51:9-24: Unexpected keyword argument `translation_key` in function `HabiticaBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/binary_sensor.py:87:5-23: Class member `HabiticaBinarySensorEntity.entity_description` overrides parent class `HabiticaBase` in an inconsistent manner [bad-override] ERROR homeassistant/components/habitica/binary_sensor.py:87:5-23: Class member `HabiticaBinarySensorEntity.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/habitica/binary_sensor.py:107:5-23: Class member `HabiticaPartyBinarySensorEntity.entity_description` overrides parent class `HabiticaPartyBase` in an inconsistent manner [bad-override] +ERROR homeassistant/components/habitica/binary_sensor.py:107:5-23: Class member `HabiticaPartyBinarySensorEntity.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/habitica/binary_sensor.py:108:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/binary_sensor.py:109:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/button.py:61:9-12: Unexpected keyword argument `key` in function `HabiticaButtonEntityDescription.__init__` [unexpected-keyword] @@ -8733,16 +8952,12 @@ ERROR homeassistant/components/habitica/button.py:296:5-23: Class member `Habiti ERROR homeassistant/components/habitica/button.py:296:5-23: Class member `HabiticaButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/habitica/calendar.py:58:7-29: Field `entity_description` is declared `EntityDescription` in ancestor `class HabiticaBase: ... `, which is not assignable to the type `CalendarEntityDescription` implied by multiple inheritance [inconsistent-inheritance] -ERROR homeassistant/components/habitica/calendar.py:109:5-23: Class member `HabiticaTodosCalendarEntity.entity_description` overrides parent class `HabiticaCalendarEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/habitica/calendar.py:110:9-12: Unexpected keyword argument `key` in function `homeassistant.components.calendar.CalendarEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/calendar.py:111:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.calendar.CalendarEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/habitica/calendar.py:163:5-23: Class member `HabiticaDailiesCalendarEntity.entity_description` overrides parent class `HabiticaCalendarEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/habitica/calendar.py:164:9-12: Unexpected keyword argument `key` in function `homeassistant.components.calendar.CalendarEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/calendar.py:165:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.calendar.CalendarEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/habitica/calendar.py:256:5-23: Class member `HabiticaTodoRemindersCalendarEntity.entity_description` overrides parent class `HabiticaCalendarEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/habitica/calendar.py:257:9-12: Unexpected keyword argument `key` in function `homeassistant.components.calendar.CalendarEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/calendar.py:258:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.calendar.CalendarEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/habitica/calendar.py:310:5-23: Class member `HabiticaDailyRemindersCalendarEntity.entity_description` overrides parent class `HabiticaCalendarEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/habitica/calendar.py:311:9-12: Unexpected keyword argument `key` in function `homeassistant.components.calendar.CalendarEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/calendar.py:312:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.calendar.CalendarEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/coordinator.py:66:5-17: Class member `HabiticaBaseCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] @@ -8753,10 +8968,8 @@ ERROR homeassistant/components/habitica/image.py:137:9-12: Unexpected keyword ar ERROR homeassistant/components/habitica/image.py:138:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.image.ImageEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/notify.py:95:7-31: Field `entity_description` is declared `EntityDescription` in ancestor `class HabiticaBase: ... `, which is not assignable to the type `NotifyEntityDescription` implied by multiple inheritance [inconsistent-inheritance] -ERROR homeassistant/components/habitica/notify.py:162:14-32: Class member `HabiticaPartyChatNotifyEntity.entity_description` overrides parent class `HabiticaBaseNotifyEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/habitica/notify.py:163:13-16: Unexpected keyword argument `key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/notify.py:164:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/habitica/notify.py:188:14-32: Class member `HabiticaPrivateMessageNotifyEntity.entity_description` overrides parent class `HabiticaBaseNotifyEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/habitica/notify.py:189:13-16: Unexpected keyword argument `key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/notify.py:190:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/sensor.py:124:9-12: Unexpected keyword argument `key` in function `HabiticaSensorEntityDescription.__init__` [unexpected-keyword] @@ -8844,6 +9057,21 @@ ERROR homeassistant/components/habitica/todo.py:288:22-33: `tasks_order` is unin ERROR homeassistant/components/habitica/todo.py:333:9-12: Unexpected keyword argument `key` in function `object.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/todo.py:334:9-24: Unexpected keyword argument `translation_key` in function `object.__init__` [unexpected-keyword] ERROR homeassistant/components/habitica/todo.py:374:22-33: `tasks_order` is uninitialized [unbound-name] +ERROR homeassistant/components/hanna/sensor.py:30:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:31:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:36:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:37:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:43:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:44:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:50:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:51:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:57:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:58:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:59:9-13: Unexpected keyword argument `icon` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:65:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:66:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:67:9-13: Unexpected keyword argument `icon` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/hanna/sensor.py:101:14-32: Class member `HannaSensor.entity_description` overrides parent class `HannaEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/hardkernel/hardware.py:30:12-17: `board` is uninitialized [unbound-name] ERROR homeassistant/components/hardkernel/hardware.py:40:33-38: `board` is uninitialized [unbound-name] ERROR homeassistant/components/hardkernel/hardware.py:42:23-28: `board` is uninitialized [unbound-name] @@ -8962,7 +9190,6 @@ ERROR homeassistant/components/haveibeenpwned/sensor.py:132:27-60: `int` is not ERROR homeassistant/components/hddtemp/sensor.py:68:27-41: No matching overload found for function `iter` called with arguments: (None) [no-matching-overload] ERROR homeassistant/components/hddtemp/sensor.py:100:57-85: `Literal[UnitOfTemperature.FAHRENHEIT]` is not assignable to attribute `_attr_native_unit_of_measurement` with type `Never` [bad-assignment] ERROR homeassistant/components/hddtemp/sensor.py:127:25-89: `dict[str, str]` is not assignable to attribute `data` with type `None` [bad-assignment] -ERROR homeassistant/components/hdmi_cec/__init__.py:110:29-42: `DEVICE_SCHEMA` is uninitialized [unbound-name] ERROR homeassistant/components/hdmi_cec/__init__.py:189:51-72: Argument `HassJob[[now: Unknown | None = None], Unknown]` is not assignable to parameter `action` with type `((datetime) -> Coroutine[Any, Any, None] | None) | HassJob[[datetime], Coroutine[Any, Any, None] | None]` [bad-argument-type] ERROR homeassistant/components/hdmi_cec/__init__.py:200:64-85: Argument `HassJob[[now: Unknown | None = None], Unknown]` is not assignable to parameter `action` with type `((datetime) -> Coroutine[Any, Any, None] | None) | HassJob[[datetime], Coroutine[Any, Any, None] | None]` in function `homeassistant.helpers.event.async_call_later` [bad-argument-type] ERROR homeassistant/components/hdmi_cec/__init__.py:258:49-52: Argument `Literal[''] | Unknown` is not assignable to parameter `att` with type `list[int]` in function `pycec.commands.CecCommand.__init__` [bad-argument-type] @@ -8978,21 +9205,11 @@ ERROR homeassistant/components/heatmiser/climate.py:132:36-69: `int` is not assi ERROR homeassistant/components/heos/media_player.py:168:5-29: Class member `HeosMediaPlayer._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/here_travel_time/config_flow.py:116:9-31: Class member `HERETravelTimeConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/here_travel_time/coordinator.py:67:5-17: Class member `HERERoutingDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/here_travel_time/coordinator.py:123:17-51: Object of class `FunctionType` has no attribute `total_seconds` [missing-attribute] -ERROR homeassistant/components/here_travel_time/coordinator.py:125:18-33: Class member `HERERoutingDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/here_travel_time/coordinator.py:125:36-127:14: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@HERERoutingDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/here_travel_time/coordinator.py:126:25-59: Object of class `FunctionType` has no attribute `total_seconds` [missing-attribute] -ERROR homeassistant/components/here_travel_time/coordinator.py:136:36-76: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@HERERoutingDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/here_travel_time/coordinator.py:191:5-17: Class member `HERETransitDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/here_travel_time/coordinator.py:226:30-46: Argument `str` is not assignable to parameter `latitude` with type `float` in function `here_transit.model.Place.__init__` [bad-argument-type] ERROR homeassistant/components/here_travel_time/coordinator.py:226:58-74: Argument `str` is not assignable to parameter `longitude` with type `float` in function `here_transit.model.Place.__init__` [bad-argument-type] ERROR homeassistant/components/here_travel_time/coordinator.py:229:30-51: Argument `str` is not assignable to parameter `latitude` with type `float` in function `here_transit.model.Place.__init__` [bad-argument-type] ERROR homeassistant/components/here_travel_time/coordinator.py:229:63-84: Argument `str` is not assignable to parameter `longitude` with type `float` in function `here_transit.model.Place.__init__` [bad-argument-type] -ERROR homeassistant/components/here_travel_time/coordinator.py:242:17-51: Object of class `FunctionType` has no attribute `total_seconds` [missing-attribute] -ERROR homeassistant/components/here_travel_time/coordinator.py:244:18-33: Class member `HERETransitDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/here_travel_time/coordinator.py:244:36-246:14: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@HERETransitDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/here_travel_time/coordinator.py:245:25-59: Object of class `FunctionType` has no attribute `total_seconds` [missing-attribute] -ERROR homeassistant/components/here_travel_time/coordinator.py:260:36-76: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@HERETransitDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/here_travel_time/sensor.py:54:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/here_travel_time/sensor.py:55:13-17: Unexpected keyword argument `icon` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/here_travel_time/sensor.py:56:13-16: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] @@ -9126,7 +9343,7 @@ ERROR homeassistant/components/home_connect/button.py:85:5-23: Class member `Hom ERROR homeassistant/components/home_connect/button.py:108:5-23: Class member `HomeConnectCommandButtonEntity.entity_description` overrides parent class `HomeConnectButtonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/home_connect/button.py:142:17-20: Unexpected keyword argument `key` in function `homeassistant.components.button.ButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/home_connect/button.py:143:17-32: Unexpected keyword argument `translation_key` in function `homeassistant.components.button.ButtonEntityDescription.__init__` [unexpected-keyword] - WARN homeassistant/components/home_connect/const.py:77:52-73: Redundant cast: `ProgramKey` is the same type as `ProgramKey` [redundant-cast] + WARN homeassistant/components/home_connect/const.py:79:52-73: Redundant cast: `ProgramKey` is the same type as `ProgramKey` [redundant-cast] ERROR homeassistant/components/home_connect/coordinator.py:104:5-17: Class member `HomeConnectCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/home_connect/entity.py:156:45-56: `retry_after` may be uninitialized [unbound-name] ERROR homeassistant/components/home_connect/light.py:51:9-12: Unexpected keyword argument `key` in function `HomeConnectLightEntityDescription.__init__` [unexpected-keyword] @@ -9421,15 +9638,15 @@ ERROR homeassistant/components/homeassistant_connect_zbt2/update.py:69:9-12: Une ERROR homeassistant/components/homeassistant_green/config_flow.py:47:9-31: Class member `HomeAssistantGreenConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/homeassistant_green/hardware.py:26:12-17: `board` is uninitialized [unbound-name] ERROR homeassistant/components/homeassistant_green/hardware.py:36:33-38: `board` is uninitialized [unbound-name] -ERROR homeassistant/components/homeassistant_hardware/firmware_config_flow.py:271:41-84: Argument `str | None` is not assignable to parameter `version` with type `str` in function `universal_silabs_flasher.common.Version.__init__` [bad-argument-type] -ERROR homeassistant/components/homeassistant_hardware/firmware_config_flow.py:666:5-26: Class member `BaseFirmwareOptionsFlow._probed_firmware_info` overrides parent class `BaseFirmwareInstallFlow` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homeassistant_hardware/firmware_config_flow.py:282:45-88: Argument `str | None` is not assignable to parameter `version` with type `str` in function `universal_silabs_flasher.common.Version.__init__` [bad-argument-type] +ERROR homeassistant/components/homeassistant_hardware/firmware_config_flow.py:689:5-26: Class member `BaseFirmwareOptionsFlow._probed_firmware_info` overrides parent class `BaseFirmwareInstallFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/homeassistant_hardware/helpers.py:188:41-79: Object of class `SyncHardwareFirmwareInfoModule` has no attribute `async_get_firmware_info` [missing-attribute] ERROR homeassistant/components/homeassistant_hardware/silabs_multiprotocol_addon.py:263:66-70: Function declared to return `bool` but is missing an explicit `return` [bad-return] -ERROR homeassistant/components/homeassistant_hardware/update.py:88:5-23: Class member `BaseFirmwareUpdateEntity.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homeassistant_hardware/update.py:88:5-23: Class member `BaseFirmwareUpdateEntity.entity_description` overrides parent class `UpdateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homeassistant_hardware/update.py:92:5-29: Class member `BaseFirmwareUpdateEntity._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homeassistant_hardware/update.py:233:22-52: Object of class `NoneType` has no attribute `metadata` [missing-attribute] -ERROR homeassistant/components/homeassistant_hardware/update.py:236:42-77: Object of class `NoneType` has no attribute `release_notes` [missing-attribute] +ERROR homeassistant/components/homeassistant_hardware/update.py:89:5-23: Class member `BaseFirmwareUpdateEntity.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homeassistant_hardware/update.py:89:5-23: Class member `BaseFirmwareUpdateEntity.entity_description` overrides parent class `UpdateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homeassistant_hardware/update.py:93:5-29: Class member `BaseFirmwareUpdateEntity._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homeassistant_hardware/update.py:234:22-52: Object of class `NoneType` has no attribute `metadata` [missing-attribute] +ERROR homeassistant/components/homeassistant_hardware/update.py:237:42-77: Object of class `NoneType` has no attribute `release_notes` [missing-attribute] ERROR homeassistant/components/homeassistant_sky_connect/update.py:43:9-12: Unexpected keyword argument `key` in function `homeassistant.components.homeassistant_hardware.update.FirmwareUpdateEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/homeassistant_sky_connect/update.py:54:9-12: Unexpected keyword argument `key` in function `homeassistant.components.homeassistant_hardware.update.FirmwareUpdateEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/homeassistant_sky_connect/update.py:65:9-12: Unexpected keyword argument `key` in function `homeassistant.components.homeassistant_hardware.update.FirmwareUpdateEntityDescription.__init__` [unexpected-keyword] @@ -9633,6 +9850,7 @@ ERROR homeassistant/components/homee/valve.py:23:9-12: Unexpected keyword argume ERROR homeassistant/components/homee/valve.py:66:14-32: Class member `HomeeValve.entity_description` overrides parent class `HomeeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/homekit/__init__.py:913:56-77: Argument `Accessory | None` is not assignable to parameter `accessory` with type `Accessory` in function `homeassistant.components.homekit.util.accessory_friendly_name` [bad-argument-type] ERROR homeassistant/components/homekit/__init__.py:915:13-42: Object of class `NoneType` has no attribute `xhm_uri` [missing-attribute] +ERROR homeassistant/components/homekit/__init__.py:959:25-961:14: Argument `set[tuple[str, str, str]]` is not assignable to parameter `identifiers` with type `UndefinedType | set[tuple[str, str]] | None` in function `homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create` [bad-argument-type] ERROR homeassistant/components/homekit/__init__.py:964:61-82: Argument `Accessory | None` is not assignable to parameter `accessory` with type `Accessory` in function `homeassistant.components.homekit.util.accessory_friendly_name` [bad-argument-type] ERROR homeassistant/components/homekit/__init__.py:1025:16-27: Returned type `HomeBridge` is not assignable to declared return type `HomeAccessory` [bad-return] ERROR homeassistant/components/homekit/__init__.py:1168:46-79: `current_humidity_sensor_entity_id` may be uninitialized [unbound-name] @@ -10061,20 +10279,21 @@ ERROR homeassistant/components/homematicip_cloud/alarm_control_panel.py:58:24-47 ERROR homeassistant/components/homematicip_cloud/alarm_control_panel.py:80:16-67: Returned type `FunctionalHome | None` is not assignable to declared return type `SecurityAndAlarmHome` [bad-return] ERROR homeassistant/components/homematicip_cloud/alarm_control_panel.py:118:12-27: Object of class `AsyncHome` has no attribute `name` [missing-attribute] ERROR homeassistant/components/homematicip_cloud/alarm_control_panel.py:125:16-36: Returned type `None` is not assignable to declared return type `bool` [bad-return] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:156:28-43: Object of class `AsyncHome` has no attribute `name` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:163:25-166:14: Argument `set[tuple[str, None]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:181:16-36: Returned type `None` is not assignable to declared return type `bool` [bad-return] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:192:5-23: Class member `HomematicipBaseActionSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:222:5-23: Class member `HomematicipMultiContactInterface._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:283:5-23: Class member `HomematicipMotionDetector._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:294:5-23: Class member `HomematicipPresenceDetector._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:305:5-23: Class member `HomematicipSmokeDetector._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:321:5-23: Class member `HomematicipWaterDetector._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:350:5-23: Class member `HomematicipRainSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:365:5-23: Class member `HomematicipSunshineSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:391:5-23: Class member `HomematicipBatterySensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:408:5-23: Class member `HomematicipPluggableMainsFailureSurveillanceSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:423:5-23: Class member `HomematicipSecurityZoneSensorGroup._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:160:28-43: Object of class `AsyncHome` has no attribute `name` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:167:25-170:14: Argument `set[tuple[str, None]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:185:16-36: Returned type `None` is not assignable to declared return type `bool` [bad-return] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:196:5-23: Class member `HomematicipBaseActionSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:226:5-23: Class member `HomematicipMultiContactInterface._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:249:12-31: Object of class `FunctionalChannel` has no attribute `windowState` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:290:5-23: Class member `HomematicipMotionDetector._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:301:5-23: Class member `HomematicipPresenceDetector._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:312:5-23: Class member `HomematicipSmokeDetector._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:328:5-23: Class member `HomematicipWaterDetector._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:357:5-23: Class member `HomematicipRainSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:372:5-23: Class member `HomematicipSunshineSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:398:5-23: Class member `HomematicipBatterySensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:415:5-23: Class member `HomematicipPluggableMainsFailureSurveillanceSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/binary_sensor.py:430:5-23: Class member `HomematicipSecurityZoneSensorGroup._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/homematicip_cloud/climate.py:78:5-29: Class member `HomematicipHeatingGroup._attr_supported_features` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/homematicip_cloud/climate.py:85:9-25: Object of class `HeatingGroup` has no attribute `modelType` [missing-attribute] ERROR homeassistant/components/homematicip_cloud/climate.py:89:36-67: `HeatingThermostat | HeatingThermostatCompact | HeatingThermostatEvo | None` is not assignable to attribute `_simple_heating` with type `None` [bad-assignment] @@ -10084,21 +10303,18 @@ ERROR homeassistant/components/homematicip_cloud/climate.py:296:31-44: Cannot in ERROR homeassistant/components/homematicip_cloud/cover.py:70:5-23: Class member `HomematicipBlindModule._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/homematicip_cloud/cover.py:148:5-23: Class member `HomematicipMultiCoverShutter._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/homematicip_cloud/cover.py:270:5-23: Class member `HomematicipGarageDoorModule._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/cover.py:286:16-49: Object of class `FunctionalChannel` has no attribute `doorState` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/cover.py:290:15-62: Object of class `FunctionalChannel` has no attribute `async_send_door_command` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/cover.py:294:15-62: Object of class `FunctionalChannel` has no attribute `async_send_door_command` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/cover.py:298:15-62: Object of class `FunctionalChannel` has no attribute `async_send_door_command` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/cover.py:304:5-23: Class member `HomematicipCoverShutterGroup._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/entity.py:105:29-108:18: Argument `set[tuple[str, None]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] -ERROR homeassistant/components/homematicip_cloud/entity.py:114:28-57: Argument `tuple[Literal['homematicip_cloud'], None]` is not assignable to parameter `via_device` with type `tuple[str, str]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] -ERROR homeassistant/components/homematicip_cloud/entity.py:205:21-36: Object of class `AsyncHome` has no attribute `name` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/entity.py:265:16-20: Returned type `None` is not assignable to declared return type `FunctionalChannel` [bad-return] +ERROR homeassistant/components/homematicip_cloud/cover.py:287:16-33: Object of class `FunctionalChannel` has no attribute `doorState` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/cover.py:292:15-46: Object of class `FunctionalChannel` has no attribute `async_send_door_command` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/cover.py:297:15-46: Object of class `FunctionalChannel` has no attribute `async_send_door_command` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/cover.py:302:15-46: Object of class `FunctionalChannel` has no attribute `async_send_door_command` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/cover.py:308:5-23: Class member `HomematicipCoverShutterGroup._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/entity.py:107:39-65: `FunctionalChannel` is not assignable to attribute `functional_channel` with type `None` [bad-assignment] ERROR homeassistant/components/homematicip_cloud/event.py:33:9-12: Unexpected keyword argument `key` in function `HmipEventEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/homematicip_cloud/event.py:34:9-24: Unexpected keyword argument `translation_key` in function `HmipEventEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/homematicip_cloud/event.py:71:5-23: Class member `HomematicipDoorBellEvent._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/homematicip_cloud/event.py:72:5-23: Class member `HomematicipDoorBellEvent.entity_description` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/homematicip_cloud/event.py:72:5-23: Class member `HomematicipDoorBellEvent.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/event.py:121:20-44: Returned type `str | None` is not assignable to declared return type `str` [bad-return] +ERROR homeassistant/components/homematicip_cloud/event.py:123:20-44: Returned type `str | None` is not assignable to declared return type `str` [bad-return] ERROR homeassistant/components/homematicip_cloud/hap.py:35:15-33: Module `homeassistant.util` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR homeassistant/components/homematicip_cloud/hap.py:35:15-37: Module `homeassistant.util.ssl` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR homeassistant/components/homematicip_cloud/hap.py:39:24-29: Argument `str | None` is not assignable to parameter `accesspoint_id` with type `str` in function `homematicip.connection.connection_context.ConnectionContextBuilder.build_context_async` [bad-argument-type] @@ -10106,55 +10322,55 @@ ERROR homeassistant/components/homematicip_cloud/hap.py:291:9-18: Object of clas ERROR homeassistant/components/homematicip_cloud/hap.py:293:9-19: Object of class `AsyncHome` has no attribute `label` [missing-attribute] ERROR homeassistant/components/homematicip_cloud/hap.py:294:9-23: Object of class `AsyncHome` has no attribute `modelType` [missing-attribute] ERROR homeassistant/components/homematicip_cloud/light.py:70:38-60: Argument `None` is not assignable to parameter `version` with type `str` in function `packaging.version.Version.__init__` [bad-argument-type] -ERROR homeassistant/components/homematicip_cloud/light.py:137:16-42: Object of class `FunctionalChannel` has no attribute `on` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/light.py:142:20-52: Object of class `FunctionalChannel` has no attribute `dimLevel` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/light.py:148:13-40: Object of class `FunctionalChannel` has no attribute `hue` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/light.py:149:16-55: Object of class `FunctionalChannel` has no attribute `saturationLevel` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/light.py:138:16-26: Object of class `FunctionalChannel` has no attribute `on` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/light.py:144:20-36: Object of class `FunctionalChannel` has no attribute `dimLevel` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/light.py:150:12-23: Object of class `FunctionalChannel` has no attribute `hue` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/light.py:150:35-58: Object of class `FunctionalChannel` has no attribute `saturationLevel` [missing-attribute] ERROR homeassistant/components/homematicip_cloud/light.py:152:16-155:10: Returned type `tuple[object, float]` is not assignable to declared return type `tuple[float, float] | None` [bad-return] -ERROR homeassistant/components/homematicip_cloud/light.py:154:13-60: `*` is not supported between `object` and `float` [unsupported-operation] -ERROR homeassistant/components/homematicip_cloud/light.py:166:19-46: Object of class `FunctionalChannel` has no attribute `hue` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/light.py:167:26-65: Object of class `FunctionalChannel` has no attribute `saturationLevel` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/light.py:171:25-57: Object of class `FunctionalChannel` has no attribute `dimLevel` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/light.py:173:15-73: Object of class `FunctionalChannel` has no attribute `set_hue_saturation_dim_level_async` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/light.py:179:15-61: Object of class `FunctionalChannel` has no attribute `set_switch_state_async` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/light.py:154:13-44: `*` is not supported between `object` and `float` [unsupported-operation] +ERROR homeassistant/components/homematicip_cloud/light.py:166:19-30: Object of class `FunctionalChannel` has no attribute `hue` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/light.py:167:26-49: Object of class `FunctionalChannel` has no attribute `saturationLevel` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/light.py:171:25-41: Object of class `FunctionalChannel` has no attribute `dimLevel` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/light.py:172:15-57: Object of class `FunctionalChannel` has no attribute `set_hue_saturation_dim_level_async` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/light.py:179:15-45: Object of class `FunctionalChannel` has no attribute `set_switch_state_async` [missing-attribute] ERROR homeassistant/components/homematicip_cloud/light.py:244:5-29: Class member `HomematicipNotificationLight._attr_supported_features` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/homematicip_cloud/light.py:359:16-33: Returned type `list[OpticalSignalBehaviour]` is not assignable to declared return type `list[str] | None` [bad-return] ERROR homeassistant/components/homematicip_cloud/light.py:392:36-42: Argument `str | Any | None` is not assignable to parameter `opticalSignalBehaviour` with type `OpticalSignalBehaviour` in function `homematicip.base.functionalChannels.NotificationLightChannel.async_set_optical_signal` [bad-argument-type] ERROR homeassistant/components/homematicip_cloud/lock.py:54:5-29: Class member `HomematicipDoorLockDrive._attr_supported_features` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:310:16-49: Object of class `FunctionalChannel` has no attribute `waterFlow` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:373:5-23: Class member `HomematicipTiltStateSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:498:5-23: Class member `HomematicipHumiditySensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:515:5-23: Class member `HomematicipTemperatureSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:546:5-23: Class member `HomematicipAbsoluteHumiditySensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:561:17-52: Object of class `FunctionalChannel` has no attribute `vaporAmount` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:565:13-48: Object of class `FunctionalChannel` has no attribute `vaporAmount` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:576:5-23: Class member `HomematicipIlluminanceSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:607:5-23: Class member `HomematicipPowerSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:624:5-23: Class member `HomematicipEnergySensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:641:5-23: Class member `HomematicipWindspeedSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:673:5-23: Class member `HomematicipTodayRainSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:690:5-23: Class member `HomematicpTemperatureExternalSensorCh1._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:707:5-23: Class member `HomematicpTemperatureExternalSensorCh2._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:724:5-23: Class member `HomematicpTemperatureExternalSensorDelta._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/sensor.py:788:38-69: Object of class `FunctionalChannel` has no attribute `currentPowerConsumption` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:806:38-62: Object of class `FunctionalChannel` has no attribute `energyCounterOne` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:807:37-65: Object of class `FunctionalChannel` has no attribute `energyCounterOneType` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:824:38-62: Object of class `FunctionalChannel` has no attribute `energyCounterTwo` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:825:37-65: Object of class `FunctionalChannel` has no attribute `energyCounterTwoType` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:842:38-64: Object of class `FunctionalChannel` has no attribute `energyCounterThree` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:843:37-67: Object of class `FunctionalChannel` has no attribute `energyCounterThreeType` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:860:38-60: Object of class `FunctionalChannel` has no attribute `currentGasFlow` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:878:38-55: Object of class `FunctionalChannel` has no attribute `gasVolume` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:896:38-69: Object of class `FunctionalChannel` has no attribute `currentPowerConsumption` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/sensor.py:914:38-62: Object of class `FunctionalChannel` has no attribute `energyCounterOne` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/switch.py:116:16-42: Object of class `FunctionalChannel` has no attribute `on` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/switch.py:120:15-52: Object of class `FunctionalChannel` has no attribute `async_turn_on` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/switch.py:124:15-53: Object of class `FunctionalChannel` has no attribute `async_turn_off` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:311:16-33: Object of class `FunctionalChannel` has no attribute `waterFlow` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:374:5-23: Class member `HomematicipTiltStateSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:499:5-23: Class member `HomematicipHumiditySensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:516:5-23: Class member `HomematicipTemperatureSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:547:5-23: Class member `HomematicipAbsoluteHumiditySensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:577:5-23: Class member `HomematicipIlluminanceSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:608:5-23: Class member `HomematicipPowerSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:625:5-23: Class member `HomematicipEnergySensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:642:5-23: Class member `HomematicipWindspeedSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:674:5-23: Class member `HomematicipTodayRainSensor._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:691:5-23: Class member `HomematicpTemperatureExternalSensorCh1._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:708:5-23: Class member `HomematicpTemperatureExternalSensorCh2._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:725:5-23: Class member `HomematicpTemperatureExternalSensorDelta._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/homematicip_cloud/sensor.py:766:51-74: Argument `None` is not assignable to parameter with type `FunctionalChannel` [bad-argument-type] +ERROR homeassistant/components/homematicip_cloud/sensor.py:773:35-58: Argument `None` is not assignable to parameter with type `FunctionalChannel` [bad-argument-type] +ERROR homeassistant/components/homematicip_cloud/sensor.py:789:38-69: Object of class `FunctionalChannel` has no attribute `currentPowerConsumption` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:807:38-62: Object of class `FunctionalChannel` has no attribute `energyCounterOne` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:808:37-65: Object of class `FunctionalChannel` has no attribute `energyCounterOneType` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:825:38-62: Object of class `FunctionalChannel` has no attribute `energyCounterTwo` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:826:37-65: Object of class `FunctionalChannel` has no attribute `energyCounterTwoType` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:843:38-64: Object of class `FunctionalChannel` has no attribute `energyCounterThree` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:844:37-67: Object of class `FunctionalChannel` has no attribute `energyCounterThreeType` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:861:38-60: Object of class `FunctionalChannel` has no attribute `currentGasFlow` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:879:38-55: Object of class `FunctionalChannel` has no attribute `gasVolume` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:897:38-69: Object of class `FunctionalChannel` has no attribute `currentPowerConsumption` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/sensor.py:915:38-62: Object of class `FunctionalChannel` has no attribute `energyCounterOne` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/switch.py:117:16-26: Object of class `FunctionalChannel` has no attribute `on` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/switch.py:122:15-36: Object of class `FunctionalChannel` has no attribute `async_turn_on` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/switch.py:127:15-37: Object of class `FunctionalChannel` has no attribute `async_turn_off` [missing-attribute] ERROR homeassistant/components/homematicip_cloud/valve.py:39:5-29: Class member `HomematicipWateringValve._attr_supported_features` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/homematicip_cloud/valve.py:40:5-23: Class member `HomematicipWateringValve._attr_device_class` overrides parent class `HomematicipGenericEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/homematicip_cloud/valve.py:50:15-70: Object of class `FunctionalChannel` has no attribute `set_watering_switch_state_async` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/valve.py:54:15-70: Object of class `FunctionalChannel` has no attribute `set_watering_switch_state_async` [missing-attribute] -ERROR homeassistant/components/homematicip_cloud/valve.py:59:16-54: Object of class `FunctionalChannel` has no attribute `wateringActive` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/valve.py:51:15-54: Object of class `FunctionalChannel` has no attribute `set_watering_switch_state_async` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/valve.py:56:15-54: Object of class `FunctionalChannel` has no attribute `set_watering_switch_state_async` [missing-attribute] +ERROR homeassistant/components/homematicip_cloud/valve.py:62:16-38: Object of class `FunctionalChannel` has no attribute `wateringActive` [missing-attribute] ERROR homeassistant/components/homematicip_cloud/weather.py:127:9-27: Object of class `AsyncHome` has no attribute `modelType` [missing-attribute] ERROR homeassistant/components/homematicip_cloud/weather.py:133:16-36: Returned type `None` is not assignable to declared return type `bool` [bad-return] ERROR homeassistant/components/homematicip_cloud/weather.py:138:27-51: Object of class `NoneType` has no attribute `city` [missing-attribute] @@ -10405,7 +10621,6 @@ ERROR homeassistant/components/http/auth.py:238:17-26: `auth_type` may be uninit ERROR homeassistant/components/http/ban.py:38:26-40: Expected a type form, got instance of `Literal['IpBanManager']` [not-a-type] ERROR homeassistant/components/http/ban.py:218:59-220:14: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[str, Secrets | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/http/security_filter.py:53:16-24: `unquoted` may be uninitialized [unbound-name] -ERROR homeassistant/components/http/static.py:42:37-84: `str` is not assignable to attribute `content_type` with type `(self: FileResponse, value: str) -> None` [bad-assignment] ERROR homeassistant/components/http/web_runner.py:58:15-28: Method `start` inherited from class `BaseSite` has no implementation and cannot be accessed via `super()` [missing-attribute] ERROR homeassistant/components/huawei_lte/__init__.py:485:73-76: `url` may be uninitialized [unbound-name] ERROR homeassistant/components/huawei_lte/binary_sensor.py:137:17-32: Cannot index into `dict[str, str]` [bad-index] @@ -10887,7 +11102,7 @@ Object of class `TamperController` has no attribute `get_parent` [missing-attrib ERROR homeassistant/components/hue/v2/binary_sensor.py:92:24-34: `HueBridgeV1` is not assignable to `HueBridgeV2` [bad-assignment] ERROR homeassistant/components/hue/v2/binary_sensor.py:96:45-57: Argument `CameraMotion | Contact | EntertainmentConfiguration | GroupedMotion | Motion | SecurityAreaMotion | Tamper` is not assignable to parameter `func` with type `(...) -> @_` in function `functools.partial.__new__` [bad-argument-type] ERROR homeassistant/components/hue/v2/binary_sensor.py:109:32-38: Argument `type` is not assignable to parameter `resource` with type `CameraMotion | Contact | EntertainmentConfiguration | GroupedMotion | Motion | SecurityAreaMotion | Tamper` in function `_resource_valid` [bad-argument-type] -ERROR homeassistant/components/hue/v2/binary_sensor.py:115:17-33: Argument `(event_type: EventType, resource: CameraMotion | Contact | EntertainmentConfiguration | GroupedMotion | Motion | SecurityAreaMotion | Tamper) -> None` is not assignable to parameter `callback` with type `(EventType, dict[Unknown, Unknown] | None) -> None` in function `aiohue.v2.controllers.base.BaseResourcesController.subscribe` [bad-argument-type] +ERROR homeassistant/components/hue/v2/binary_sensor.py:115:17-33: Argument `(event_type: EventType, resource: SensorType) -> None` is not assignable to parameter `callback` with type `(EventType, dict[Unknown, Unknown] | None) -> None` in function `aiohue.v2.controllers.base.BaseResourcesController.subscribe` [bad-argument-type] ERROR homeassistant/components/hue/v2/binary_sensor.py:120:47-62: Argument `type[HueMotionSensor]` is not assignable to parameter `sensor_class` with type `CameraMotion | Contact | EntertainmentConfiguration | GroupedMotion | Motion | SecurityAreaMotion | Tamper` in function `register_items` [bad-argument-type] ERROR homeassistant/components/hue/v2/binary_sensor.py:121:40-55: Argument `type[HueMotionSensor]` is not assignable to parameter `sensor_class` with type `CameraMotion | Contact | EntertainmentConfiguration | GroupedMotion | Motion | SecurityAreaMotion | Tamper` in function `register_items` [bad-argument-type] ERROR homeassistant/components/hue/v2/binary_sensor.py:122:60-88: Argument `type[HueEntertainmentActiveSensor]` is not assignable to parameter `sensor_class` with type `CameraMotion | Contact | EntertainmentConfiguration | GroupedMotion | Motion | SecurityAreaMotion | Tamper` in function `register_items` [bad-argument-type] @@ -10982,7 +11197,7 @@ Object of class `Temperature` has no attribute `metadata` Object of class `ZigbeeConnectivity` has no attribute `metadata` [missing-attribute] ERROR homeassistant/components/hue/v2/entity.py:63:39-63: Object of class `Config` has no attribute `bridge` Object of class `NoneType` has no attribute `bridge` [missing-attribute] -ERROR homeassistant/components/hue/v2/entity.py:79:17-35: Argument `BoundMethod[Self@HueBaseEntity, (self: Self@HueBaseEntity, event_type: EventType, resource: DevicePower | GroupedLight | Light | LightLevel | Motion) -> None]` is not assignable to parameter `callback` with type `(EventType, dict[Unknown, Unknown] | None) -> None` in function `aiohue.v2.controllers.base.BaseResourcesController.subscribe` [bad-argument-type] +ERROR homeassistant/components/hue/v2/entity.py:79:17-35: Argument `BoundMethod[Self@HueBaseEntity, (self: Self@HueBaseEntity, event_type: EventType, resource: HueResource) -> None]` is not assignable to parameter `callback` with type `(EventType, dict[Unknown, Unknown] | None) -> None` in function `aiohue.v2.controllers.base.BaseResourcesController.subscribe` [bad-argument-type] ERROR homeassistant/components/hue/v2/entity.py:81:17-73: Argument `tuple[Literal[EventType.RESOURCE_UPDATED], Literal[EventType.RESOURCE_DELETED]]` is not assignable to parameter `event_filter` with type `EventType | tuple[EventType] | None` in function `aiohue.v2.controllers.base.BaseResourcesController.subscribe` [bad-argument-type] ERROR homeassistant/components/hue/v2/entity.py:88:13-36: Object of class `HueBridgeV1` has no attribute `devices` [missing-attribute] ERROR homeassistant/components/hue/v2/entity.py:95:22-45: Object of class `HueBridgeV1` has no attribute `devices` [missing-attribute] @@ -10994,6 +11209,8 @@ ERROR homeassistant/components/hue/v2/entity.py:154:41-45: `Literal[True]` is no ERROR homeassistant/components/hue/v2/entity.py:163:41-46: `Literal[False]` is not assignable to attribute `_ignore_availability` with type `None` [bad-assignment] ERROR homeassistant/components/hue/v2/entity.py:199:45-50: `Literal[False]` is not assignable to attribute `_ignore_availability` with type `Never` [bad-assignment] ERROR homeassistant/components/hue/v2/group.py:49:24-34: `HueBridgeV1` is not assignable to `HueBridgeV2` [bad-assignment] +ERROR homeassistant/components/hue/v2/group.py:62:12-17: `group` may be uninitialized [unbound-name] +ERROR homeassistant/components/hue/v2/group.py:65:51-56: `group` may be uninitialized [unbound-name] ERROR homeassistant/components/hue/v2/group.py:70:12-22: Object of class `type` has no attribute `owner` [missing-attribute] ERROR homeassistant/components/hue/v2/group.py:74:61-65: Argument `type` is not assignable to parameter `resource` with type `GroupedLight` in function `async_add_light` [bad-argument-type] ERROR homeassistant/components/hue/v2/group.py:79:13-28: Argument `(event_type: EventType, resource: GroupedLight) -> Coroutine[Unknown, Unknown, None]` is not assignable to parameter `callback` with type `(EventType, dict[Unknown, Unknown] | None) -> None` in function `aiohue.v2.controllers.base.BaseResourcesController.subscribe` [bad-argument-type] @@ -11005,9 +11222,9 @@ ERROR homeassistant/components/hue/v2/group.py:92:9-13: Unexpected keyword argum ERROR homeassistant/components/hue/v2/group.py:99:22-53: Object of class `Groups` has no attribute `grouped_light` Object of class `NoneType` has no attribute `grouped_light` [missing-attribute] ERROR homeassistant/components/hue/v2/group.py:104:33-43: `HueBridgeV1` is not assignable to attribute `api` with type `HueBridgeV2` [bad-assignment] -ERROR homeassistant/components/hue/v2/group.py:123:39-57: Argument `BoundMethod[Self@GroupedHueLight, (self: Self@GroupedHueLight, event_type: EventType, resource: DevicePower | GroupedLight | Light | LightLevel | Motion) -> None]` is not assignable to parameter `callback` with type `(EventType, dict[Unknown, Unknown] | None) -> None` in function `aiohue.v2.controllers.base.GroupedControllerBase.subscribe` [bad-argument-type] +ERROR homeassistant/components/hue/v2/group.py:123:39-57: Argument `BoundMethod[Self@GroupedHueLight, (self: Self@GroupedHueLight, event_type: EventType, resource: HueResource) -> None]` is not assignable to parameter `callback` with type `(EventType, dict[Unknown, Unknown] | None) -> None` in function `aiohue.v2.controllers.base.GroupedControllerBase.subscribe` [bad-argument-type] ERROR homeassistant/components/hue/v2/group.py:129:31-57: Object of class `BaseResourcesController` has no attribute `get_lights` [missing-attribute] -ERROR homeassistant/components/hue/v2/group.py:132:43-61: Argument `BoundMethod[Self@GroupedHueLight, (self: Self@GroupedHueLight, event_type: EventType, resource: DevicePower | GroupedLight | Light | LightLevel | Motion) -> None]` is not assignable to parameter `callback` with type `(EventType, dict[Unknown, Unknown] | None) -> None` in function `aiohue.v2.controllers.base.BaseResourcesController.subscribe` [bad-argument-type] +ERROR homeassistant/components/hue/v2/group.py:132:43-61: Argument `BoundMethod[Self@GroupedHueLight, (self: Self@GroupedHueLight, event_type: EventType, resource: HueResource) -> None]` is not assignable to parameter `callback` with type `(EventType, dict[Unknown, Unknown] | None) -> None` in function `aiohue.v2.controllers.base.BaseResourcesController.subscribe` [bad-argument-type] ERROR homeassistant/components/hue/v2/group.py:138:16-32: Object of class `DevicePower` has no attribute `on` Object of class `LightLevel` has no attribute `on` Object of class `Motion` has no attribute `on` [missing-attribute] @@ -11101,7 +11318,7 @@ Object of class `MotionAreaConfiguration` has no attribute `children` [missing-a ERROR homeassistant/components/hue/v2/sensor.py:84:24-34: `HueBridgeV1` is not assignable to `HueBridgeV2` [bad-assignment] ERROR homeassistant/components/hue/v2/sensor.py:89:38-50: Argument `DevicePower | GroupedLightLevel | LightLevel | Temperature | ZigbeeConnectivity` is not assignable to parameter `func` with type `(...) -> @_` in function `functools.partial.__new__` [bad-argument-type] ERROR homeassistant/components/hue/v2/sensor.py:102:32-38: Argument `type` is not assignable to parameter `resource` with type `DevicePower | GroupedLightLevel | LightLevel | Temperature | ZigbeeConnectivity` in function `_resource_valid` [bad-argument-type] -ERROR homeassistant/components/hue/v2/sensor.py:108:17-33: Argument `(event_type: EventType, resource: DevicePower | GroupedLightLevel | LightLevel | Temperature | ZigbeeConnectivity) -> None` is not assignable to parameter `callback` with type `(EventType, dict[Unknown, Unknown] | None) -> None` in function `aiohue.v2.controllers.base.BaseResourcesController.subscribe` [bad-argument-type] +ERROR homeassistant/components/hue/v2/sensor.py:108:17-33: Argument `(event_type: EventType, resource: SensorType) -> None` is not assignable to parameter `callback` with type `(EventType, dict[Unknown, Unknown] | None) -> None` in function `aiohue.v2.controllers.base.BaseResourcesController.subscribe` [bad-argument-type] ERROR homeassistant/components/hue/v2/sensor.py:113:43-63: Argument `type[HueTemperatureSensor]` is not assignable to parameter `sensor_class` with type `DevicePower | GroupedLightLevel | LightLevel | Temperature | ZigbeeConnectivity` in function `register_items` [bad-argument-type] ERROR homeassistant/components/hue/v2/sensor.py:114:43-62: Argument `type[HueLightLevelSensor]` is not assignable to parameter `sensor_class` with type `DevicePower | GroupedLightLevel | LightLevel | Temperature | ZigbeeConnectivity` in function `register_items` [bad-argument-type] ERROR homeassistant/components/hue/v2/sensor.py:115:44-60: Argument `type[HueBatterySensor]` is not assignable to parameter `sensor_class` with type `DevicePower | GroupedLightLevel | LightLevel | Temperature | ZigbeeConnectivity` in function `register_items` [bad-argument-type] @@ -11162,6 +11379,7 @@ Object of class `GroupedLight` has no attribute `mac_address` Object of class `LightLevel` has no attribute `mac_address` Object of class `Light` has no attribute `mac_address` Object of class `Motion` has no attribute `mac_address` [missing-attribute] +ERROR homeassistant/components/hue_ble/config_flow.py:73:15-20: `light` may be uninitialized [unbound-name] ERROR homeassistant/components/huisbaasje/coordinator.py:36:5-17: Class member `EnergyFlipUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/huisbaasje/sensor.py:56:9-24: Unexpected keyword argument `translation_key` in function `EnergyFlipSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/huisbaasje/sensor.py:60:9-12: Unexpected keyword argument `key` in function `EnergyFlipSensorEntityDescription.__init__` [unexpected-keyword] @@ -11316,10 +11534,6 @@ ERROR homeassistant/components/husqvarna_automower/button.py:63:9-24: Unexpected ERROR homeassistant/components/husqvarna_automower/button.py:95:5-23: Class member `AutomowerButtonEntity.entity_description` overrides parent class `AutomowerControlEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/husqvarna_automower/button.py:95:5-23: Class member `AutomowerButtonEntity.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/husqvarna_automower/coordinator.py:41:5-17: Class member `AutomowerDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/husqvarna_automower/coordinator.py:119:22-37: Class member `AutomowerDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/husqvarna_automower/coordinator.py:119:40-44: `None` is not assignable to attribute `update_interval` with type `(self: Self@AutomowerDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/husqvarna_automower/coordinator.py:124:40-53: `timedelta` is not assignable to attribute `update_interval` with type `Never` [bad-assignment] -ERROR homeassistant/components/husqvarna_automower/coordinator.py:210:48-61: `timedelta` is not assignable to attribute `update_interval` with type `Never` [bad-assignment] ERROR homeassistant/components/husqvarna_automower/diagnostics.py:46:47-55: `mower_id` may be uninitialized [unbound-name] ERROR homeassistant/components/husqvarna_automower/event.py:79:5-23: Class member `AutomowerMessageEventEntity.entity_description` overrides parent class `AutomowerBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/husqvarna_automower/lawn_mower.py:96:5-29: Class member `AutomowerLawnMowerEntity._attr_supported_features` overrides parent class `AutomowerBaseEntity` in an inconsistent manner [bad-override] @@ -11402,8 +11616,8 @@ ERROR homeassistant/components/huum/climate.py:59:16-59: Object of class `NoneTy ERROR homeassistant/components/huum/climate.py:64:16-59: Object of class `NoneType` has no attribute `max_temp` [missing-attribute] ERROR homeassistant/components/huum/coordinator.py:29:5-17: Class member `HuumDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/huum/number.py:50:16-46: Returned type `int | None` is not assignable to declared return type `float` [bad-return] -ERROR homeassistant/components/hvv_departures/binary_sensor.py:131:5-23: Class member `HvvDepartureBinarySensor._attr_device_class` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/hvv_departures/binary_sensor.py:143:25-150:14: Argument `set[tuple[str, Unknown, Unknown, Unknown]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/hvv_departures/binary_sensor.py:132:5-23: Class member `HvvDepartureBinarySensor._attr_device_class` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/hvv_departures/binary_sensor.py:144:25-151:14: Argument `set[tuple[str, Unknown, Unknown, Unknown]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/hvv_departures/config_flow.py:134:9-31: Class member `HVVDeparturesConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/hvv_departures/sensor.py:79:25-86:14: Argument `set[tuple[str, Unknown, Unknown, Unknown]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/hvv_departures/sensor.py:121:36-47: `type[InvalidAuth]` is not assignable to attribute `_last_error` with type `None` [bad-assignment] @@ -11586,9 +11800,7 @@ ERROR homeassistant/components/iaqualink/light.py:87:16-41: `*` is not supported ERROR homeassistant/components/iaqualink/light.py:87:16-47: Returned type `float` is not assignable to declared return type `int` [bad-return] ERROR homeassistant/components/iaqualink/light.py:92:16-31: Returned type `str | None` is not assignable to declared return type `str` [bad-return] ERROR homeassistant/components/iaqualink/sensor.py:39:14-32: Class member `HassAqualinkSensor._attr_device_class` overrides parent class `AqualinkEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/iaqualink/switch.py:38:21-31: Class member `HassAqualinkSwitch._attr_name` overrides parent class `AqualinkEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/iaqualink/switch.py:38:21-31: Class member `HassAqualinkSwitch._attr_name` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/ibeacon/device_tracker.py:51:7-27: Field `_attr_device_info` is declared `TypedDict[DeviceInfo] | None` in ancestor `class IBeaconEntity: ... +ERROR homeassistant/components/ibeacon/device_tracker.py:51:7-27: Field `_attr_device_info` is declared `DeviceInfo | None` in ancestor `class IBeaconEntity: ... `, which is not assignable to the type `None` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/ibeacon/sensor.py:36:9-12: Unexpected keyword argument `key` in function `IBeaconSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ibeacon/sensor.py:39:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `IBeaconSensorEntityDescription.__init__` [unexpected-keyword] @@ -11603,7 +11815,7 @@ ERROR homeassistant/components/ibeacon/sensor.py:63:9-40: Unexpected keyword arg ERROR homeassistant/components/ibeacon/sensor.py:103:5-23: Class member `IBeaconSensorEntity.entity_description` overrides parent class `IBeaconEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/ibeacon/sensor.py:103:5-23: Class member `IBeaconSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/icloud/account.py:148:35-69: Object of class `NoneType` has no attribute `items` [missing-attribute] -ERROR homeassistant/components/icloud/account.py:223:26-76: Unpacked argument `tuple[HomeAssistant]` is not assignable to parameter `*args` with type `tuple[HomeAssistant, TypedDict[ConfigFlowContext] | None, dict[str, Any] | None]` in function `homeassistant.core.HomeAssistant.add_job` [bad-argument-type] +ERROR homeassistant/components/icloud/account.py:223:26-76: Unpacked argument `tuple[HomeAssistant]` is not assignable to parameter `*args` with type `tuple[HomeAssistant, ConfigFlowContext | None, dict[str, Any] | None]` in function `homeassistant.core.HomeAssistant.add_job` [bad-argument-type] ERROR homeassistant/components/icloud/account.py:450:54-58: Argument `None` is not assignable to parameter `newpasscode` with type `str` in function `pyicloud.services.findmyiphone.AppleDevice.lost_device` [bad-argument-type] ERROR homeassistant/components/icloud/config_flow.py:118:24-126:14: `PyiCloudService` is not assignable to attribute `api` with type `None` [bad-assignment] ERROR homeassistant/components/icloud/config_flow.py:118:62-126:14: Unpacked argument `tuple[Unknown, Unknown, Unknown, Literal[True], None, Unknown]` is not assignable to parameter `*args` with type `tuple[str, str | None, str | None, bool, str | None, bool, bool, bool]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] @@ -11611,7 +11823,7 @@ ERROR homeassistant/components/icloud/config_flow.py:133:12-33: Object of class ERROR homeassistant/components/icloud/config_flow.py:136:12-33: Object of class `NoneType` has no attribute `requires_2sa` [missing-attribute] ERROR homeassistant/components/icloud/config_flow.py:163:53-58: Argument `ConfigEntry[Any] | None` is not assignable to parameter `entry` with type `ConfigEntry[Any]` in function `homeassistant.config_entries.ConfigEntries.async_update_entry` [bad-argument-type] ERROR homeassistant/components/icloud/config_flow.py:164:53-67: Object of class `NoneType` has no attribute `entry_id` [missing-attribute] -ERROR homeassistant/components/icloud/config_flow.py:176:51-81: Unpacked argument `tuple[Unknown]` is not assignable to parameter `*args` with type `tuple[PathLike[bytes] | PathLike[str] | bytes | str, int, bool]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/icloud/config_flow.py:176:51-81: Unpacked argument `tuple[Unknown]` is not assignable to parameter `*args` with type `tuple[StrOrBytesPath, int, bool]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/icloud/config_flow.py:234:36-40: `None` is not assignable to attribute `_trusted_device` with type `Never` [bad-assignment] ERROR homeassistant/components/icloud/config_flow.py:292:36-40: `None` is not assignable to attribute `_trusted_device` with type `Never` [bad-assignment] ERROR homeassistant/components/icloud/config_flow.py:293:39-43: `None` is not assignable to attribute `_verification_code` with type `Never` [bad-assignment] @@ -11641,6 +11853,8 @@ ERROR homeassistant/components/iglo/light.py:8:1-33: Could not find import of `i ERROR homeassistant/components/igloohome/lock.py:52:5-29: Class member `IgloohomeLockEntity._attr_supported_features` overrides parent class `IgloohomeBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/igloohome/sensor.py:46:5-23: Class member `IgloohomeBatteryEntity._attr_device_class` overrides parent class `IgloohomeBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/ign_sismologia/geo_location.py:203:23-39: `str | None` is not assignable to attribute `_title` with type `None` [bad-assignment] +ERROR homeassistant/components/ign_sismologia/geo_location.py:205:31-56: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/components/ign_sismologia/geo_location.py:206:32-57: `None` is not subscriptable [unsupported-operation] ERROR homeassistant/components/ign_sismologia/geo_location.py:208:24-41: `float | None` is not assignable to attribute `_region` with type `None` [bad-assignment] ERROR homeassistant/components/ign_sismologia/geo_location.py:209:27-47: `float` is not assignable to attribute `_magnitude` with type `None` [bad-assignment] ERROR homeassistant/components/ign_sismologia/geo_location.py:210:34-54: `datetime | None` is not assignable to attribute `_publication_date` with type `None` [bad-assignment] @@ -11656,12 +11870,12 @@ ERROR homeassistant/components/ihc/sensor.py:5:1-47: Could not find import of `i ERROR homeassistant/components/ihc/sensor.py:57:18-36: Class member `IHCSensor._attr_device_class` overrides parent class `IHCEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/ihc/switch.py:7:1-47: Could not find import of `ihcsdk.ihccontroller` [missing-import] ERROR homeassistant/components/ihc/util.py:5:1-47: Could not find import of `ihcsdk.ihccontroller` [missing-import] -ERROR homeassistant/components/image/__init__.py:187:5-16: Class member `ImageEntity._attr_state` overrides parent class `Entity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/image/__init__.py:206:5-16: Class member `ImageEntity._attr_state` overrides parent class `Entity` in an inconsistent manner [bad-override] ERROR homeassistant/components/image/media_source.py:29:5-9: Class member `ImageMediaSource.name` overrides parent class `MediaSource` in an inconsistent manner [bad-override] ERROR homeassistant/components/image_processing/__init__.py:125:5-17: Class member `ImageProcessingEntityDescription.device_class` overrides parent class `EntityDescription` in an inconsistent manner [bad-override] ERROR homeassistant/components/image_processing/__init__.py:133:5-23: Class member `ImageProcessingEntity.entity_description` overrides parent class `Entity` in an inconsistent manner [bad-override] ERROR homeassistant/components/image_processing/__init__.py:134:5-23: Class member `ImageProcessingEntity._attr_device_class` overrides parent class `Entity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/image_upload/__init__.py:152:47-88: Unpacked argument `tuple[Path]` is not assignable to parameter `*args` with type `tuple[PathLike[bytes] | PathLike[str] | bytes | str, bool, (((...) -> Any, str, tuple[type[BaseException], BaseException, TracebackType]) -> object) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/image_upload/__init__.py:152:47-88: Unpacked argument `tuple[Path]` is not assignable to parameter `*args` with type `tuple[StrOrBytesPath, bool, (((...) -> Any, str, tuple[type[BaseException], BaseException, TracebackType]) -> object) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/image_upload/__init__.py:223:54-73: Argument `BoundMethod[Path, (self: Path, *, follow_symlinks: bool = True) -> bool]` is not assignable to parameter `target` with type `(**tuple[*@_]) -> @_` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/image_upload/media_source.py:30:5-9: Class member `ImageUploadMediaSource.name` overrides parent class `MediaSource` in an inconsistent manner [bad-override] ERROR homeassistant/components/imap/__init__.py:169:17-40: Object of class `NoneType` has no attribute `expunge` [missing-attribute] @@ -11673,7 +11887,7 @@ ERROR homeassistant/components/imap/config_flow.py:210:9-31: Class member `IMAPC ERROR homeassistant/components/imap/coordinator.py:84:8-29: Object of class `NoneType` has no attribute `state` [missing-attribute] ERROR homeassistant/components/imap/coordinator.py:156:48-56: `date_str` is uninitialized [unbound-name] ERROR homeassistant/components/imap/coordinator.py:159:77-85: `date_str` is uninitialized [unbound-name] -ERROR homeassistant/components/imap/coordinator.py:218:34-55: Argument `Message[str, str] | list[Message[str, str] | str] | str | Any` is not assignable to parameter `iterable` with type `Iterable[str]` in function `enumerate.__new__` [bad-argument-type] +ERROR homeassistant/components/imap/coordinator.py:218:34-55: Argument `Message[str, str] | list[_PayloadType] | str | Any` is not assignable to parameter `iterable` with type `Iterable[str]` in function `enumerate.__new__` [bad-argument-type] ERROR homeassistant/components/imap/coordinator.py:237:5-17: Class member `ImapDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/imap/coordinator.py:277:32-79: `IMAP4_SSL` is not assignable to attribute `imap_client` with type `Never` [bad-assignment] ERROR homeassistant/components/imap/coordinator.py:288:37-47: `message_id` may be uninitialized [unbound-name] @@ -12062,9 +12276,9 @@ ERROR homeassistant/components/intellifire/switch.py:42:9-12: Unexpected keyword ERROR homeassistant/components/intellifire/switch.py:43:9-24: Unexpected keyword argument `translation_key` in function `IntellifireSwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/intellifire/switch.py:68:5-23: Class member `IntellifireSwitch.entity_description` overrides parent class `IntellifireEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/intellifire/switch.py:68:5-23: Class member `IntellifireSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/intent/__init__.py:114:28-48: Argument `set[type[ButtonDeviceClass] | type[CoverDeviceClass] | type[MediaPlayerDeviceClass] | type[SwitchDeviceClass] | type[ValveDeviceClass]]` is not assignable to parameter `device_classes` with type `set[type[StrEnum]] | None` in function `homeassistant.helpers.intent.ServiceIntentHandler.__init__` [bad-argument-type] -ERROR homeassistant/components/intent/__init__.py:124:28-48: Argument `set[type[ButtonDeviceClass] | type[CoverDeviceClass] | type[MediaPlayerDeviceClass] | type[SwitchDeviceClass] | type[ValveDeviceClass]]` is not assignable to parameter `device_classes` with type `set[type[StrEnum]] | None` in function `homeassistant.helpers.intent.ServiceIntentHandler.__init__` [bad-argument-type] -ERROR homeassistant/components/intent/__init__.py:134:28-48: Argument `set[type[ButtonDeviceClass] | type[CoverDeviceClass] | type[MediaPlayerDeviceClass] | type[SwitchDeviceClass] | type[ValveDeviceClass]]` is not assignable to parameter `device_classes` with type `set[type[StrEnum]] | None` in function `homeassistant.helpers.intent.ServiceIntentHandler.__init__` [bad-argument-type] +ERROR homeassistant/components/intent/__init__.py:116:28-48: Argument `set[type[ButtonDeviceClass] | type[CoverDeviceClass] | type[MediaPlayerDeviceClass] | type[SwitchDeviceClass] | type[ValveDeviceClass]]` is not assignable to parameter `device_classes` with type `set[type[StrEnum]] | None` in function `homeassistant.helpers.intent.ServiceIntentHandler.__init__` [bad-argument-type] +ERROR homeassistant/components/intent/__init__.py:126:28-48: Argument `set[type[ButtonDeviceClass] | type[CoverDeviceClass] | type[MediaPlayerDeviceClass] | type[SwitchDeviceClass] | type[ValveDeviceClass]]` is not assignable to parameter `device_classes` with type `set[type[StrEnum]] | None` in function `homeassistant.helpers.intent.ServiceIntentHandler.__init__` [bad-argument-type] +ERROR homeassistant/components/intent/__init__.py:136:28-48: Argument `set[type[ButtonDeviceClass] | type[CoverDeviceClass] | type[MediaPlayerDeviceClass] | type[SwitchDeviceClass] | type[ValveDeviceClass]]` is not assignable to parameter `device_classes` with type `set[type[StrEnum]] | None` in function `homeassistant.helpers.intent.ServiceIntentHandler.__init__` [bad-argument-type] ERROR homeassistant/components/intent/timers.py:299:27-42: Cannot index into `dict[str, (TimerEventType, TimerInfo) -> None]` [bad-index] ERROR homeassistant/components/intent/timers.py:338:27-42: Cannot index into `dict[str, (TimerEventType, TimerInfo) -> None]` [bad-index] ERROR homeassistant/components/intent/timers.py:367:27-42: Cannot index into `dict[str, (TimerEventType, TimerInfo) -> None]` [bad-index] @@ -12121,7 +12335,7 @@ ERROR homeassistant/components/iometer/sensor.py:102:9-12: Unexpected keyword ar ERROR homeassistant/components/iometer/sensor.py:106:18-63: Argument `(data: IOmeterData) -> float | None` is not assignable to parameter `value_fn` with type `(IOmeterData) -> float | int | str` in function `IOmeterEntityDescription.__init__` [bad-argument-type] ERROR homeassistant/components/iometer/sensor.py:131:5-23: Class member `IOmeterSensor.entity_description` overrides parent class `IOmeterEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/iometer/sensor.py:131:5-23: Class member `IOmeterSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/ios/__init__.py:254:51-256:6: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None]]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/ios/__init__.py:254:51-256:6: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, dict[str, JsonValueType]]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/ios/__init__.py:264:29-38: `conf_user` may be uninitialized [unbound-name] ERROR homeassistant/components/ios/notify.py:97:23-30: `targets` may be uninitialized [unbound-name] ERROR homeassistant/components/ios/notify.py:99:78-85: `targets` may be uninitialized [unbound-name] @@ -12229,8 +12443,8 @@ ERROR homeassistant/components/irm_kmi/coordinator.py:91:59-61: Argument `ZoneIn ERROR homeassistant/components/irm_kmi/coordinator.py:92:57-59: Argument `ZoneInfo | None` is not assignable to parameter `tz` with type `ZoneInfo` in function `irm_kmi_api.api.IrmKmiApiClientHa.get_daily_forecast` [bad-argument-type] ERROR homeassistant/components/irm_kmi/coordinator.py:93:59-61: Argument `ZoneInfo | None` is not assignable to parameter `tz` with type `ZoneInfo` in function `irm_kmi_api.api.IrmKmiApiClientHa.get_hourly_forecast` [bad-argument-type] ERROR homeassistant/components/irm_kmi/coordinator.py:94:21-44: Argument `str | None` is not assignable to parameter `country` with type `str` in function `homeassistant.components.irm_kmi.data.ProcessedCoordinatorData.__init__` [bad-argument-type] -ERROR homeassistant/components/irm_kmi/weather.py:107:16-52: Returned type `list[TypedDict[ExtendedForecast]]` is not assignable to declared return type `list[TypedDict[Forecast]] | None` [bad-return] -ERROR homeassistant/components/irm_kmi/weather.py:119:32-68: `list[TypedDict[ExtendedForecast]]` is not assignable to `list[TypedDict[Forecast]]` [bad-assignment] +ERROR homeassistant/components/irm_kmi/weather.py:107:16-52: Returned type `list[ExtendedForecast]` is not assignable to declared return type `list[Forecast] | None` [bad-return] +ERROR homeassistant/components/irm_kmi/weather.py:119:32-68: `list[ExtendedForecast]` is not assignable to `list[Forecast]` [bad-assignment] ERROR homeassistant/components/iron_os/binary_sensor.py:38:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/iron_os/binary_sensor.py:39:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/iron_os/binary_sensor.py:46:7-31: Field `entity_description` is declared `EntityDescription` in ancestor `class IronOSBaseEntity: ... @@ -12602,7 +12816,7 @@ ERROR homeassistant/components/isy994/climate.py:122:30-55: Object of class `Pro Object of class `Variable` has no attribute `aux_properties` [missing-attribute] ERROR homeassistant/components/isy994/climate.py:142:23-48: Object of class `Program` has no attribute `aux_properties` Object of class `Variable` has no attribute `aux_properties` [missing-attribute] -ERROR homeassistant/components/isy994/climate.py:153:13-30: Argument `((self: Node, value: float) -> float) | ((self: Program, value: int) -> int) | object | None` is not assignable to parameter `value` with type `float | None` in function `homeassistant.components.isy994.helpers.convert_isy_value_to_hass` [bad-argument-type] +ERROR homeassistant/components/isy994/climate.py:153:13-30: Argument `float | int | object | None` is not assignable to parameter `value` with type `float | None` in function `homeassistant.components.isy994.helpers.convert_isy_value_to_hass` [bad-argument-type] ERROR homeassistant/components/isy994/climate.py:153:43-58: Object of class `Program` has no attribute `prec` [missing-attribute] ERROR homeassistant/components/isy994/climate.py:168:18-43: Object of class `Program` has no attribute `aux_properties` Object of class `Variable` has no attribute `aux_properties` [missing-attribute] @@ -12624,7 +12838,7 @@ ERROR homeassistant/components/isy994/cover.py:32:41-60: No matching overload fo ERROR homeassistant/components/isy994/cover.py:47:5-29: Class member `ISYCoverEntity._attr_supported_features` overrides parent class `ISYNodeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/isy994/cover.py:58:12-26: Object of class `Program` has no attribute `uom` Object of class `Variable` has no attribute `uom` [missing-attribute] -ERROR homeassistant/components/isy994/cover.py:60:19-59: No matching overload found for function `int.__new__` called with arguments: (type[int], Literal[0, 100] | ((self: Node, value: float) -> float) | ((self: Program, value: int) -> int) | object | None) [no-matching-overload] +ERROR homeassistant/components/isy994/cover.py:60:19-59: No matching overload found for function `int.__new__` called with arguments: (type[int], float | int | object | None) [no-matching-overload] ERROR homeassistant/components/isy994/cover.py:71:22-40: Object of class `Program` has no attribute `turn_on` Object of class `Variable` has no attribute `turn_on` [missing-attribute] ERROR homeassistant/components/isy994/cover.py:76:22-41: Object of class `Program` has no attribute `turn_off` @@ -12660,14 +12874,13 @@ ERROR homeassistant/components/isy994/entity.py:252:38-72: Object of class `None WARN homeassistant/components/isy994/entity.py:269:20-46: Redundant cast: `bool` is the same type as `bool` [redundant-cast] ERROR homeassistant/components/isy994/fan.py:36:39-58: No matching overload found for function `dict.get` called with arguments: (str | None) [no-matching-overload] ERROR homeassistant/components/isy994/fan.py:51:5-29: Class member `ISYFanEntity._attr_supported_features` overrides parent class `ISYNodeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/isy994/fan.py:62:56-73: Argument `((self: Node, value: float) -> float) | ((self: Program, value: int) -> int) | object | None` is not assignable to parameter `value` with type `float` in function `homeassistant.util.percentage.ranged_value_to_percentage` [bad-argument-type] +ERROR homeassistant/components/isy994/fan.py:62:56-73: Argument `float | int | object | None` is not assignable to parameter `value` with type `float` in function `homeassistant.util.percentage.ranged_value_to_percentage` [bad-argument-type] ERROR homeassistant/components/isy994/fan.py:81:19-38: Object of class `Program` has no attribute `turn_off` Object of class `Variable` has no attribute `turn_off` [missing-attribute] ERROR homeassistant/components/isy994/fan.py:86:15-33: Object of class `Program` has no attribute `turn_on` Object of class `Variable` has no attribute `turn_on` [missing-attribute] ERROR homeassistant/components/isy994/fan.py:99:15-34: Object of class `Program` has no attribute `turn_off` Object of class `Variable` has no attribute `turn_off` [missing-attribute] -ERROR homeassistant/components/isy994/fan.py:110:56-73: Argument `(self: Program, value: int) -> int` is not assignable to parameter `value` with type `float` in function `homeassistant.util.percentage.ranged_value_to_percentage` [bad-argument-type] ERROR homeassistant/components/isy994/helpers.py:287:26-42: Cannot index into `dict[str, str]` [bad-index] ERROR homeassistant/components/isy994/helpers.py:298:22-41: Object of class `NoneType` has no attribute `title` [missing-attribute] ERROR homeassistant/components/isy994/helpers.py:336:9-19: Type `Node` is not iterable [not-iterable] @@ -12707,26 +12920,24 @@ ERROR homeassistant/components/isy994/helpers.py:417:35-51: Object of class `Pro ERROR homeassistant/components/isy994/helpers.py:429:48-54: Argument `tuple[str, Folder | Program | Programs, Folder | Program | Programs | None]` is not assignable to parameter `object` with type `tuple[str, Program, Program]` in function `list.append` [bad-argument-type] ERROR homeassistant/components/isy994/light.py:37:24-28: Argument `Group | Node` is not assignable to parameter `node` with type `Node` in function `ISYLightEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/light.py:37:62-81: No matching overload found for function `dict.get` called with arguments: (str | None) [no-matching-overload] -ERROR homeassistant/components/isy994/light.py:64:19-38: No matching overload found for function `int.__new__` called with arguments: (type[int], ((self: Node, value: float) -> float) | ((self: Program, value: int) -> int) | object | None) [no-matching-overload] +ERROR homeassistant/components/isy994/light.py:64:19-38: No matching overload found for function `int.__new__` called with arguments: (type[int], float | int | object | None) [no-matching-overload] ERROR homeassistant/components/isy994/light.py:72:12-26: Object of class `Program` has no attribute `uom` Object of class `Variable` has no attribute `uom` [missing-attribute] -ERROR homeassistant/components/isy994/light.py:74:19-38: No matching overload found for function `int.__new__` called with arguments: (type[int], ((self: Node, value: float) -> float) | ((self: Program, value: int) -> int) | object | None) [no-matching-overload] +ERROR homeassistant/components/isy994/light.py:74:19-38: No matching overload found for function `int.__new__` called with arguments: (type[int], float | int | object | None) [no-matching-overload] ERROR homeassistant/components/isy994/light.py:79:22-41: Object of class `Program` has no attribute `turn_off` Object of class `Variable` has no attribute `turn_off` [missing-attribute] -ERROR homeassistant/components/isy994/light.py:86:37-54: `((self: Node, value: float) -> float) | ((self: Program, value: int) -> int) | object | None` is not assignable to attribute `_last_brightness` with type `int | None` [bad-assignment] +ERROR homeassistant/components/isy994/light.py:86:37-54: `float | int | object | None` is not assignable to attribute `_last_brightness` with type `int | None` [bad-assignment] ERROR homeassistant/components/isy994/light.py:87:16-30: Object of class `Program` has no attribute `uom` Object of class `Variable` has no attribute `uom` [missing-attribute] -ERROR homeassistant/components/isy994/light.py:88:47-72: `*` is not supported between `(self: Node, value: float) -> float` and `float` [unsupported-operation] -ERROR homeassistant/components/isy994/light.py:88:47-72: `*` is not supported between `(self: Program, value: int) -> int` and `float` [unsupported-operation] ERROR homeassistant/components/isy994/light.py:88:47-72: `*` is not supported between `object` and `float` [unsupported-operation] ERROR homeassistant/components/isy994/light.py:88:47-72: `*` is not supported between `None` and `float` [unsupported-operation] -ERROR homeassistant/components/isy994/light.py:90:41-58: `((self: Node, value: float) -> float) | ((self: Program, value: int) -> int) | object | None` is not assignable to attribute `_last_brightness` with type `int | None` [bad-assignment] +ERROR homeassistant/components/isy994/light.py:90:41-58: `float | int | object | None` is not assignable to attribute `_last_brightness` with type `int | None` [bad-assignment] ERROR homeassistant/components/isy994/light.py:98:39-53: Object of class `Program` has no attribute `uom` Object of class `Variable` has no attribute `uom` [missing-attribute] ERROR homeassistant/components/isy994/light.py:100:22-40: Object of class `Program` has no attribute `turn_on` Object of class `Variable` has no attribute `turn_on` [missing-attribute] ERROR homeassistant/components/isy994/lock.py:56:40-59: No matching overload found for function `dict.get` called with arguments: (str | None) [no-matching-overload] -ERROR homeassistant/components/isy994/lock.py:77:34-53: No matching overload found for function `dict.get` called with arguments: (((self: Node, value: float) -> float) | ((self: Program, value: int) -> int) | object | None) [no-matching-overload] +ERROR homeassistant/components/isy994/lock.py:77:34-53: No matching overload found for function `dict.get` called with arguments: (float | int | object | None) [no-matching-overload] ERROR homeassistant/components/isy994/lock.py:81:22-44: Object of class `Program` has no attribute `secure_lock` Object of class `Variable` has no attribute `secure_lock` [missing-attribute] ERROR homeassistant/components/isy994/lock.py:86:22-46: Object of class `Program` has no attribute `secure_unlock` @@ -12748,12 +12959,12 @@ ERROR homeassistant/components/isy994/number.py:133:54-72: Unpacked keyword argu ERROR homeassistant/components/isy994/number.py:133:54-72: Unpacked keyword argument `Node | NumberEntityDescription | str` is not assignable to parameter `control` with type `str` in function `ISYBacklightNumberEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/number.py:133:54-72: Unpacked keyword argument `Node | NumberEntityDescription | str` is not assignable to parameter `unique_id` with type `str` in function `ISYBacklightNumberEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/number.py:133:54-72: Unpacked keyword argument `Node | NumberEntityDescription | str` is not assignable to parameter `description` with type `NumberEntityDescription` in function `ISYBacklightNumberEntity.__init__` [bad-argument-type] -ERROR homeassistant/components/isy994/number.py:133:54-72: Unpacked keyword argument `Node | NumberEntityDescription | str` is not assignable to parameter `device_info` with type `TypedDict[DeviceInfo] | None` in function `ISYBacklightNumberEntity.__init__` [bad-argument-type] +ERROR homeassistant/components/isy994/number.py:133:54-72: Unpacked keyword argument `Node | NumberEntityDescription | str` is not assignable to parameter `device_info` with type `DeviceInfo | None` in function `ISYBacklightNumberEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/number.py:135:51-69: Unpacked keyword argument `Node | NumberEntityDescription | str` is not assignable to parameter `node` with type `Node` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/number.py:135:51-69: Unpacked keyword argument `Node | NumberEntityDescription | str` is not assignable to parameter `control` with type `str` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/number.py:135:51-69: Unpacked keyword argument `Node | NumberEntityDescription | str` is not assignable to parameter `unique_id` with type `str` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/number.py:135:51-69: Unpacked keyword argument `Node | NumberEntityDescription | str` is not assignable to parameter `description` with type `EntityDescription` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] -ERROR homeassistant/components/isy994/number.py:135:51-69: Unpacked keyword argument `Node | NumberEntityDescription | str` is not assignable to parameter `device_info` with type `TypedDict[DeviceInfo] | None` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] +ERROR homeassistant/components/isy994/number.py:135:51-69: Unpacked keyword argument `Node | NumberEntityDescription | str` is not assignable to parameter `device_info` with type `DeviceInfo | None` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/number.py:139:7-32: Field `entity_description` is declared `EntityDescription` in ancestor `class ISYAuxControlEntity: ... `, which is not assignable to the type `NumberEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/isy994/number.py:152:13-63: Object of class `EntityDescription` has no attribute `native_unit_of_measurement` [missing-attribute] @@ -12771,17 +12982,17 @@ ERROR homeassistant/components/isy994/select.py:98:53-68: Unpacked keyword argum ERROR homeassistant/components/isy994/select.py:98:53-68: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `control` with type `str` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/select.py:98:53-68: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `unique_id` with type `str` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/select.py:98:53-68: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `description` with type `EntityDescription` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] -ERROR homeassistant/components/isy994/select.py:98:53-68: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `device_info` with type `TypedDict[DeviceInfo] | None` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] +ERROR homeassistant/components/isy994/select.py:98:53-68: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `device_info` with type `DeviceInfo | None` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/select.py:101:54-69: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `node` with type `Node` in function `ISYBacklightSelectEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/select.py:101:54-69: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `control` with type `str` in function `ISYBacklightSelectEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/select.py:101:54-69: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `unique_id` with type `str` in function `ISYBacklightSelectEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/select.py:101:54-69: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `description` with type `SelectEntityDescription` in function `ISYBacklightSelectEntity.__init__` [bad-argument-type] -ERROR homeassistant/components/isy994/select.py:101:54-69: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `device_info` with type `TypedDict[DeviceInfo] | None` in function `ISYBacklightSelectEntity.__init__` [bad-argument-type] +ERROR homeassistant/components/isy994/select.py:101:54-69: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `device_info` with type `DeviceInfo | None` in function `ISYBacklightSelectEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/select.py:104:60-75: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `node` with type `Node` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/select.py:104:60-75: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `control` with type `str` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/select.py:104:60-75: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `unique_id` with type `str` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/select.py:104:60-75: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `description` with type `EntityDescription` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] -ERROR homeassistant/components/isy994/select.py:104:60-75: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `device_info` with type `TypedDict[DeviceInfo] | None` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] +ERROR homeassistant/components/isy994/select.py:104:60-75: Unpacked keyword argument `Node | SelectEntityDescription | str` is not assignable to parameter `device_info` with type `DeviceInfo | None` in function `homeassistant.components.isy994.entity.ISYAuxControlEntity.__init__` [bad-argument-type] ERROR homeassistant/components/isy994/select.py:113:7-30: Field `entity_description` is declared `EntityDescription` in ancestor `class ISYAuxControlEntity: ... `, which is not assignable to the type `SelectEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/isy994/select.py:131:7-37: Field `entity_description` is declared `EntityDescription` in ancestor `class ISYAuxControlEntity: ... @@ -12857,6 +13068,7 @@ ERROR homeassistant/components/ituran/sensor.py:96:9-12: Unexpected keyword argu ERROR homeassistant/components/ituran/sensor.py:123:5-23: Class member `IturanSensor.entity_description` overrides parent class `IturanBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/ituran/sensor.py:123:5-23: Class member `IturanSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/izone/climate.py:367:16-44: Returned type `float | None` is not assignable to declared return type `float` [bad-return] +ERROR homeassistant/components/izone/climate.py:469:25-471:14: Argument `set[tuple[str, str, int]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/izone/climate.py:539:16-39: Returned type `float | None` is not assignable to declared return type `float` [bad-return] ERROR homeassistant/components/jellyfin/config_flow.py:140:9-31: Class member `JellyfinConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/jellyfin/coordinator.py:22:5-17: Class member `JellyfinDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] @@ -12971,9 +13183,6 @@ ERROR homeassistant/components/justnimbus/sensor.py:128:14-32: Class member `Jus ERROR homeassistant/components/justnimbus/sensor.py:128:14-32: Class member `JustNimbusSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/jvc_projector/__init__.py:62:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/jvc_projector/coordinator.py:35:5-17: Class member `JvcProjectorDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/jvc_projector/coordinator.py:64:18-33: Class member `JvcProjectorDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/jvc_projector/coordinator.py:64:36-49: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@JvcProjectorDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/jvc_projector/coordinator.py:66:36-49: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@JvcProjectorDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/jvc_projector/select.py:32:9-12: Unexpected keyword argument `key` in function `JvcProjectorSelectDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/jvc_projector/select.py:33:9-24: Unexpected keyword argument `translation_key` in function `JvcProjectorSelectDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/jvc_projector/select.py:56:5-23: Class member `JvcProjectorSelectEntity.entity_description` overrides parent class `JvcProjectorEntity` in an inconsistent manner [bad-override] @@ -13147,8 +13356,10 @@ ERROR homeassistant/components/knx/config_flow.py:846:30-36: `_local` may be uni ERROR homeassistant/components/knx/cover.py:190:5-12: Class member `KnxYamlCover._device` overrides parent class `KnxYamlEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/knx/cover.py:225:18-36: Class member `KnxYamlCover._attr_device_class` overrides parent class `KnxYamlEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/knx/cover.py:255:5-12: Class member `KnxUiCover._device` overrides parent class `KnxUiEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/knx/date.py:66:5-12: Class member `KNXDateEntity._device` overrides parent class `KnxYamlEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/knx/datetime.py:67:5-12: Class member `KNXDateTimeEntity._device` overrides parent class `KnxYamlEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/knx/date.py:104:5-12: Class member `KnxYamlDate._device` overrides parent class `KnxYamlEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/knx/date.py:127:5-12: Class member `KnxUiDate._device` overrides parent class `KnxUiEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/knx/datetime.py:109:5-12: Class member `KnxYamlDateTime._device` overrides parent class `KnxYamlEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/knx/datetime.py:132:5-12: Class member `KnxUiDateTime._device` overrides parent class `KnxUiEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/knx/entity.py:102:5-20: Class member `KnxUiEntity._attr_unique_id` overrides parent class `_KnxEntityBase` in an inconsistent manner [bad-override] ERROR homeassistant/components/knx/expose.py:114:46-57: Argument `bool | float | int | str | None` is not assignable to parameter `value` with type `bool | None` in function `xknx.remote_value.remote_value.RemoteValue.value` [bad-argument-type] ERROR homeassistant/components/knx/expose.py:218:23-38: `xknx_device_cls` may be uninitialized [unbound-name] @@ -13201,7 +13412,8 @@ ERROR homeassistant/components/knx/switch.py:106:5-12: Class member `KnxYamlSwit ERROR homeassistant/components/knx/switch.py:122:14-32: Class member `KnxYamlSwitch._attr_device_class` overrides parent class `KnxYamlEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/knx/switch.py:129:5-12: Class member `KnxUiSwitch._device` overrides parent class `KnxUiEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/knx/text.py:57:5-12: Class member `KNXText._device` overrides parent class `KnxYamlEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/knx/time.py:66:5-12: Class member `KNXTimeEntity._device` overrides parent class `KnxYamlEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/knx/time.py:104:5-12: Class member `KnxYamlTime._device` overrides parent class `KnxYamlEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/knx/time.py:127:5-12: Class member `KnxUiTime._device` overrides parent class `KnxUiEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/knx/weather.py:81:5-12: Class member `KNXWeather._device` overrides parent class `KnxYamlEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/knx/websocket.py:135:13-51: Type `None` is not awaitable [not-async] ERROR homeassistant/components/knx/websocket.py:139:16-20: Argument `((HomeAssistant, KNXModule, ActiveConnection, dict[str, Any]) -> Awaitable[None]) | ((HomeAssistant, KNXModule, ActiveConnection, dict[str, Any]) -> None)` is not assignable to parameter `wrapped` with type `(HomeAssistant, KNXModule, ActiveConnection, dict[str, Any]) -> Awaitable[None]` in function `functools.wraps` [bad-argument-type] @@ -13259,7 +13471,7 @@ ERROR homeassistant/components/kostal_plenticore/coordinator.py:61:24-63:10: `Ex ERROR homeassistant/components/kostal_plenticore/coordinator.py:65:19-37: Object of class `NoneType` has no attribute `login` [missing-attribute] ERROR homeassistant/components/kostal_plenticore/coordinator.py:85:45-57: Argument `None` is not assignable to parameter `client` with type `ApiClient` in function `homeassistant.components.kostal_plenticore.helper.get_hostname_id` [bad-argument-type] ERROR homeassistant/components/kostal_plenticore/coordinator.py:86:26-57: Object of class `NoneType` has no attribute `get_setting_values` [missing-attribute] -ERROR homeassistant/components/kostal_plenticore/coordinator.py:103:28-113:10: `TypedDict[DeviceInfo]` is not assignable to attribute `device_info` with type `dict[Unknown, Unknown]` [bad-assignment] +ERROR homeassistant/components/kostal_plenticore/coordinator.py:103:28-113:10: `DeviceInfo` is not assignable to attribute `device_info` with type `dict[Unknown, Unknown]` [bad-assignment] ERROR homeassistant/components/kostal_plenticore/coordinator.py:128:15-34: Object of class `NoneType` has no attribute `logout` [missing-attribute] ERROR homeassistant/components/kostal_plenticore/coordinator.py:171:5-17: Class member `PlenticoreUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/kostal_plenticore/coordinator.py:262:5-17: Class member `PlenticoreSelectUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] @@ -13272,12 +13484,12 @@ ERROR homeassistant/components/kostal_plenticore/number.py:56:9-12: Unexpected k ERROR homeassistant/components/kostal_plenticore/number.py:58:9-24: Unexpected keyword argument `entity_category` in function `PlenticoreNumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/kostal_plenticore/number.py:59:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PlenticoreNumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/kostal_plenticore/number.py:60:9-13: Unexpected keyword argument `name` in function `PlenticoreNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/kostal_plenticore/number.py:114:17-39: Argument `dict[Unknown, Unknown]` is not assignable to parameter `device_info` with type `TypedDict[DeviceInfo]` in function `PlenticoreDataNumber.__init__` [bad-argument-type] +ERROR homeassistant/components/kostal_plenticore/number.py:114:17-39: Argument `dict[Unknown, Unknown]` is not assignable to parameter `device_info` with type `DeviceInfo` in function `PlenticoreDataNumber.__init__` [bad-argument-type] ERROR homeassistant/components/kostal_plenticore/number.py:128:5-23: Class member `PlenticoreDataNumber.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/kostal_plenticore/number.py:128:5-23: Class member `PlenticoreDataNumber.entity_description` overrides parent class `NumberEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/kostal_plenticore/select.py:31:9-12: Unexpected keyword argument `key` in function `PlenticoreSelectEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/kostal_plenticore/select.py:32:9-13: Unexpected keyword argument `name` in function `PlenticoreSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/kostal_plenticore/select.py:74:29-51: Argument `dict[Unknown, Unknown]` is not assignable to parameter `device_info` with type `TypedDict[DeviceInfo]` in function `PlenticoreDataSelect.__init__` [bad-argument-type] +ERROR homeassistant/components/kostal_plenticore/select.py:74:29-51: Argument `dict[Unknown, Unknown]` is not assignable to parameter `device_info` with type `DeviceInfo` in function `PlenticoreDataSelect.__init__` [bad-argument-type] ERROR homeassistant/components/kostal_plenticore/select.py:87:5-23: Class member `PlenticoreDataSelect.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/kostal_plenticore/select.py:87:5-23: Class member `PlenticoreDataSelect.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/kostal_plenticore/sensor.py:48:9-12: Unexpected keyword argument `key` in function `PlenticoreSensorEntityDescription.__init__` [unexpected-keyword] @@ -13469,15 +13681,15 @@ ERROR homeassistant/components/kostal_plenticore/sensor.py:788:9-12: Unexpected ERROR homeassistant/components/kostal_plenticore/sensor.py:789:9-13: Unexpected keyword argument `name` in function `PlenticoreSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/kostal_plenticore/sensor.py:797:9-12: Unexpected keyword argument `key` in function `PlenticoreSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/kostal_plenticore/sensor.py:798:9-13: Unexpected keyword argument `name` in function `PlenticoreSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/kostal_plenticore/sensor.py:839:17-39: Argument `dict[Unknown, Unknown]` is not assignable to parameter `device_info` with type `TypedDict[DeviceInfo]` in function `PlenticoreDataSensor.__init__` [bad-argument-type] +ERROR homeassistant/components/kostal_plenticore/sensor.py:839:17-39: Argument `dict[Unknown, Unknown]` is not assignable to parameter `device_info` with type `DeviceInfo` in function `PlenticoreDataSensor.__init__` [bad-argument-type] ERROR homeassistant/components/kostal_plenticore/sensor.py:851:5-23: Class member `PlenticoreDataSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/kostal_plenticore/sensor.py:851:5-23: Class member `PlenticoreDataSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/kostal_plenticore/switch.py:40:9-12: Unexpected keyword argument `key` in function `PlenticoreSwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/kostal_plenticore/switch.py:41:9-13: Unexpected keyword argument `name` in function `PlenticoreSwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/kostal_plenticore/switch.py:50:9-12: Unexpected keyword argument `key` in function `PlenticoreSwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/kostal_plenticore/switch.py:51:9-13: Unexpected keyword argument `name` in function `PlenticoreSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/kostal_plenticore/switch.py:103:17-39: Argument `dict[Unknown, Unknown]` is not assignable to parameter `device_info` with type `TypedDict[DeviceInfo]` in function `PlenticoreDataSwitch.__init__` [bad-argument-type] -ERROR homeassistant/components/kostal_plenticore/switch.py:148:21-43: Argument `dict[Unknown, Unknown]` is not assignable to parameter `device_info` with type `TypedDict[DeviceInfo]` in function `PlenticoreShadowMgmtSwitch.__init__` [bad-argument-type] +ERROR homeassistant/components/kostal_plenticore/switch.py:103:17-39: Argument `dict[Unknown, Unknown]` is not assignable to parameter `device_info` with type `DeviceInfo` in function `PlenticoreDataSwitch.__init__` [bad-argument-type] +ERROR homeassistant/components/kostal_plenticore/switch.py:148:21-43: Argument `dict[Unknown, Unknown]` is not assignable to parameter `device_info` with type `DeviceInfo` in function `PlenticoreShadowMgmtSwitch.__init__` [bad-argument-type] ERROR homeassistant/components/kostal_plenticore/switch.py:167:5-23: Class member `PlenticoreDataSwitch.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/kostal_plenticore/switch.py:167:5-23: Class member `PlenticoreDataSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/kostal_plenticore/switch.py:258:5-23: Class member `PlenticoreShadowMgmtSwitch.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] @@ -13554,55 +13766,57 @@ ERROR homeassistant/components/lacrosse_view/sensor.py:140:9-12: Unexpected keyw ERROR homeassistant/components/lacrosse_view/sensor.py:141:9-24: Unexpected keyword argument `translation_key` in function `LaCrosseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lacrosse_view/sensor.py:217:5-23: Class member `LaCrosseViewSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lacrosse_view/sensor.py:217:5-23: Class member `LaCrosseViewSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lamarzocco/__init__.py:109:27-54: Object of class `NoneType` has no attribute `disconnect` [missing-attribute] ERROR homeassistant/components/lamarzocco/binary_sensor.py:39:9-12: Unexpected keyword argument `key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lamarzocco/binary_sensor.py:40:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:43:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:46:9-12: Unexpected keyword argument `key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:47:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:56:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:59:9-12: Unexpected keyword argument `key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:60:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:71:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:77:9-12: Unexpected keyword argument `key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:78:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:81:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:82:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:105:5-23: Class member `LaMarzoccoBinarySensorEntity.entity_description` overrides parent class `LaMarzoccoEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lamarzocco/binary_sensor.py:105:5-23: Class member `LaMarzoccoBinarySensorEntity.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:49:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:53:9-12: Unexpected keyword argument `key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:54:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:63:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:66:9-12: Unexpected keyword argument `key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:67:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:78:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:84:9-12: Unexpected keyword argument `key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:85:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:88:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:89:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `LaMarzoccoBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:114:5-23: Class member `LaMarzoccoBinarySensorEntity.entity_description` overrides parent class `LaMarzoccoEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lamarzocco/binary_sensor.py:114:5-23: Class member `LaMarzoccoBinarySensorEntity.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lamarzocco/button.py:46:9-12: Unexpected keyword argument `key` in function `LaMarzoccoButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lamarzocco/button.py:47:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lamarzocco/button.py:71:5-23: Class member `LaMarzoccoButtonEntity.entity_description` overrides parent class `LaMarzoccoEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lamarzocco/button.py:71:5-23: Class member `LaMarzoccoButtonEntity.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lamarzocco/config_flow.py:368:9-31: Class member `LmConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lamarzocco/coordinator.py:46:5-17: Class member `LaMarzoccoUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lamarzocco/coordinator.py:90:5-17: Class member `LaMarzoccoConfigUpdateCoordinator.cloud_client` overrides parent class `LaMarzoccoUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lamarzocco/entity.py:88:5-23: Class member `LaMarzoccoEntity.entity_description` overrides parent class `LaMarzoccoBaseEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lamarzocco/coordinator.py:53:5-17: Class member `LaMarzoccoUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lamarzocco/entity.py:101:5-23: Class member `LaMarzoccoEntity.entity_description` overrides parent class `LaMarzoccoBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lamarzocco/number.py:48:9-12: Unexpected keyword argument `key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lamarzocco/number.py:49:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:63:9-12: Unexpected keyword argument `key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:64:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:70:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:81:9-12: Unexpected keyword argument `key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:82:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:88:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:119:9-12: Unexpected keyword argument `key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:120:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:126:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:158:9-12: Unexpected keyword argument `key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:159:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:165:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/number.py:221:5-23: Class member `LaMarzoccoNumberEntity.entity_description` overrides parent class `LaMarzoccoEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lamarzocco/number.py:221:5-23: Class member `LaMarzoccoNumberEntity.entity_description` overrides parent class `NumberEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lamarzocco/number.py:64:9-12: Unexpected keyword argument `key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:65:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:85:9-12: Unexpected keyword argument `key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:86:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:92:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:104:9-12: Unexpected keyword argument `key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:105:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:111:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:142:9-12: Unexpected keyword argument `key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:143:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:149:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:181:9-12: Unexpected keyword argument `key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:182:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:188:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/number.py:245:5-23: Class member `LaMarzoccoNumberEntity.entity_description` overrides parent class `LaMarzoccoEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lamarzocco/number.py:245:5-23: Class member `LaMarzoccoNumberEntity.entity_description` overrides parent class `NumberEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lamarzocco/select.py:67:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lamarzocco/select.py:68:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/select.py:85:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/select.py:86:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/select.py:87:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/select.py:106:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/select.py:107:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/select.py:108:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/select.py:140:5-23: Class member `LaMarzoccoSelectEntity.entity_description` overrides parent class `LaMarzoccoEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lamarzocco/select.py:140:5-23: Class member `LaMarzoccoSelectEntity.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lamarzocco/select.py:86:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/select.py:87:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/select.py:88:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/select.py:107:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/select.py:108:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/select.py:109:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/select.py:143:5-23: Class member `LaMarzoccoSelectEntity.entity_description` overrides parent class `LaMarzoccoEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lamarzocco/select.py:143:5-23: Class member `LaMarzoccoSelectEntity.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lamarzocco/sensor.py:51:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lamarzocco/sensor.py:52:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lamarzocco/sensor.py:66:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoSensorEntityDescription.__init__` [unexpected-keyword] @@ -13629,15 +13843,15 @@ ERROR homeassistant/components/lamarzocco/sensor.py:195:5-23: Class member `LaMa ERROR homeassistant/components/lamarzocco/switch.py:43:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lamarzocco/switch.py:44:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lamarzocco/switch.py:45:9-13: Unexpected keyword argument `name` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/switch.py:55:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/switch.py:56:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/switch.py:70:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/switch.py:71:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/switch.py:85:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/switch.py:86:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/switch.py:87:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lamarzocco/switch.py:125:5-23: Class member `LaMarzoccoSwitchEntity.entity_description` overrides parent class `LaMarzoccoEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lamarzocco/switch.py:125:5-23: Class member `LaMarzoccoSwitchEntity.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lamarzocco/switch.py:56:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/switch.py:57:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/switch.py:72:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/switch.py:73:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/switch.py:88:9-12: Unexpected keyword argument `key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/switch.py:89:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/switch.py:90:9-24: Unexpected keyword argument `entity_category` in function `LaMarzoccoSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/lamarzocco/switch.py:131:5-23: Class member `LaMarzoccoSwitchEntity.entity_description` overrides parent class `LaMarzoccoEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lamarzocco/switch.py:131:5-23: Class member `LaMarzoccoSwitchEntity.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lamarzocco/update.py:41:9-12: Unexpected keyword argument `key` in function `LaMarzoccoUpdateEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lamarzocco/update.py:42:9-24: Unexpected keyword argument `translation_key` in function `LaMarzoccoUpdateEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lamarzocco/update.py:48:9-12: Unexpected keyword argument `key` in function `LaMarzoccoUpdateEntityDescription.__init__` [unexpected-keyword] @@ -13795,8 +14009,8 @@ ERROR homeassistant/components/lastfm/config_flow.py:83:9-31: Class member `Last ERROR homeassistant/components/lastfm/coordinator.py:41:5-17: Class member `LastFMDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/launch_library/__init__.py:44:29-73: Argument `dict[str, int | str]` is not assignable to parameter `filters` with type `Mapping[str, str] | None` in function `pylaunches.api.PyLaunches.launch_upcoming` [bad-argument-type] ERROR homeassistant/components/launch_library/__init__.py:73:12-21: `unload_ok` may be uninitialized [unbound-name] -ERROR homeassistant/components/launch_library/diagnostics.py:30:16-23: Returned type `TypedDict[Event] | TypedDict[Launch]` is not assignable to declared return type `dict[str, Any] | None` [bad-return] -ERROR homeassistant/components/launch_library/diagnostics.py:33:39-76: Argument `list[TypedDict[Launch]]` is not assignable to parameter `data` with type `list[TypedDict[Event] | TypedDict[Launch]]` in function `_first_element` [bad-argument-type] +ERROR homeassistant/components/launch_library/diagnostics.py:30:16-23: Returned type `Event | Launch` is not assignable to declared return type `dict[str, Any] | None` [bad-return] +ERROR homeassistant/components/launch_library/diagnostics.py:33:39-76: Argument `list[Launch]` is not assignable to parameter `data` with type `list[Event | Launch]` in function `_first_element` [bad-argument-type] ERROR homeassistant/components/launch_library/diagnostics.py:35:13-57: Object of class `StarshipResponse` has no attribute `upcoming` [missing-attribute] ERROR homeassistant/components/launch_library/diagnostics.py:38:13-57: Object of class `StarshipResponse` has no attribute `upcoming` [missing-attribute] ERROR homeassistant/components/launch_library/sensor.py:44:9-12: Unexpected keyword argument `key` in function `LaunchLibrarySensorEntityDescription.__init__` [unexpected-keyword] @@ -13862,50 +14076,17 @@ ERROR homeassistant/components/laundrify/sensor.py:97:40-55: Object of class `La ERROR homeassistant/components/laundrify/sensor.py:98:22-40: Object of class `LaundrifyDevice` has no attribute `totalEnergy` [missing-attribute] ERROR homeassistant/components/lawn_mower/__init__.py:83:5-23: Class member `LawnMowerEntity.entity_description` overrides parent class `Entity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lawn_mower/__init__.py:85:5-29: Class member `LawnMowerEntity._attr_supported_features` overrides parent class `Entity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lcn/__init__.py:279:65-68: Argument `ModStatusAccessControl` is not assignable to parameter `inp` with type `type[Input]` in function `_async_fire_access_control_event` [bad-argument-type] -ERROR homeassistant/components/lcn/__init__.py:281:60-63: Argument `ModSendKeysHost` is not assignable to parameter `inp` with type `type[Input]` in function `_async_fire_send_keys_event` [bad-argument-type] -ERROR homeassistant/components/lcn/__init__.py:294:17-25: Class `Input` has no class attribute `code` [missing-attribute] -ERROR homeassistant/components/lcn/__init__.py:298:26-55: No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[str, str]) [no-matching-overload] -ERROR homeassistant/components/lcn/__init__.py:300:8-21: Class `Input` has no class attribute `periphery` [missing-attribute] -ERROR homeassistant/components/lcn/__init__.py:302:23-32: Class `Input` has no class attribute `level` [missing-attribute] -ERROR homeassistant/components/lcn/__init__.py:302:41-48: Class `Input` has no class attribute `key` [missing-attribute] -ERROR homeassistant/components/lcn/__init__.py:302:60-70: Class `Input` has no class attribute `action` [missing-attribute] -ERROR homeassistant/components/lcn/__init__.py:305:25-44: Object of class `object` has no attribute `value` [missing-attribute] -ERROR homeassistant/components/lcn/__init__.py:316:36-47: Class `Input` has no class attribute `actions` [missing-attribute] -ERROR homeassistant/components/lcn/__init__.py:320:40-48: Class `Input` has no class attribute `keys` [missing-attribute] -ERROR homeassistant/components/lcn/binary_sensor.py:76:15-67: Object of class `GroupConnection` has no attribute `request_status_binary_sensors` [missing-attribute] -ERROR homeassistant/components/lcn/climate.py:110:14-38: Class member `LcnClimate._attr_supported_features` overrides parent class `LcnEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lcn/climate.py:187:13-59: Object of class `GroupConnection` has no attribute `request_status_variable` [missing-attribute] -ERROR homeassistant/components/lcn/climate.py:190:13-59: Object of class `GroupConnection` has no attribute `request_status_variable` [missing-attribute] -ERROR homeassistant/components/lcn/climate.py:201:41-85: `float | int` is not assignable to attribute `_current_temperature` with type `None` [bad-assignment] -ERROR homeassistant/components/lcn/climate.py:205:44-88: `float | int` is not assignable to attribute `_target_temperature` with type `None` [bad-assignment] -ERROR homeassistant/components/lcn/cover.py:97:33-37: `None` is not assignable to attribute `reverse_time` with type `MotorReverseTime` [bad-assignment] -ERROR homeassistant/components/lcn/cover.py:135:17-61: Object of class `GroupConnection` has no attribute `request_status_output` [missing-attribute] -ERROR homeassistant/components/lcn/cover.py:138:17-61: Object of class `GroupConnection` has no attribute `request_status_output` [missing-attribute] -ERROR homeassistant/components/lcn/cover.py:175:5-29: Class member `LcnRelayCover._attr_supported_features` overrides parent class `LcnEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lcn/cover.py:192:13-77: `|=` is not supported between `None` and `Literal[CoverEntityFeature.SET_POSITION]` [unsupported-operation] -ERROR homeassistant/components/lcn/cover.py:258:18-62: Object of class `GroupConnection` has no attribute `request_status_relays` [missing-attribute] -ERROR homeassistant/components/lcn/cover.py:261:17-69: Object of class `GroupConnection` has no attribute `request_status_motor_position` [missing-attribute] -ERROR homeassistant/components/lcn/cover.py:286:49-67: `float` is not assignable to attribute `_attr_current_cover_position` with type `int | None` [bad-assignment] -ERROR homeassistant/components/lcn/entity.py:72:39-81: Object of class `GroupConnection` has no attribute `register_for_inputs` [missing-attribute] -ERROR homeassistant/components/lcn/helpers.py:254:15-46: Object of class `GroupConnection` has no attribute `serials_known` [missing-attribute] +ERROR homeassistant/components/lcn/__init__.py:301:26-307:10: No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[str, int | str | None]) [no-matching-overload] +ERROR homeassistant/components/lcn/climate.py:108:14-38: Class member `LcnClimate._attr_supported_features` overrides parent class `LcnEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lcn/cover.py:179:5-29: Class member `LcnRelayCover._attr_supported_features` overrides parent class `LcnEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lcn/cover.py:196:13-77: `|=` is not supported between `None` and `Literal[CoverEntityFeature.SET_POSITION]` [unsupported-operation] ERROR homeassistant/components/lcn/helpers.py:273:12-20: `is_group` may be uninitialized [unbound-name] -ERROR homeassistant/components/lcn/helpers.py:274:29-59: Object of class `GroupConnection` has no attribute `request_name` [missing-attribute] ERROR homeassistant/components/lcn/helpers.py:275:8-16: `is_group` may be uninitialized [unbound-name] ERROR homeassistant/components/lcn/helpers.py:276:34-42: `is_group` may be uninitialized [unbound-name] ERROR homeassistant/components/lcn/light.py:84:5-29: Class member `LcnOutputLight._attr_supported_features` overrides parent class `LcnEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lcn/light.py:152:15-59: Object of class `GroupConnection` has no attribute `request_status_output` [missing-attribute] -ERROR homeassistant/components/lcn/light.py:203:15-59: Object of class `GroupConnection` has no attribute `request_status_relays` [missing-attribute] ERROR homeassistant/components/lcn/scene.py:87:31-89:14: `int` is not assignable to attribute `transition` with type `None` [bad-assignment] ERROR homeassistant/components/lcn/schemas.py:66:9-34: Argument `Literal[UnitOfTemperature.CELSIUS]` is not assignable to parameter `container` with type `Container[Unknown]` in function `voluptuous.validators.In.__init__` [bad-argument-type] ERROR homeassistant/components/lcn/sensor.py:132:14-32: Class member `LcnVariableSensor._attr_device_class` overrides parent class `LcnEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lcn/sensor.py:136:15-61: Object of class `GroupConnection` has no attribute `request_status_variable` [missing-attribute] -ERROR homeassistant/components/lcn/sensor.py:166:27-168:14: `LogicOpPort` is not assignable to attribute `source` with type `LedPort` [bad-assignment] -ERROR homeassistant/components/lcn/sensor.py:172:15-70: Object of class `GroupConnection` has no attribute `request_status_led_and_logic_ops` [missing-attribute] -ERROR homeassistant/components/lcn/switch.py:98:15-59: Object of class `GroupConnection` has no attribute `request_status_output` [missing-attribute] -ERROR homeassistant/components/lcn/switch.py:145:15-59: Object of class `GroupConnection` has no attribute `request_status_relays` [missing-attribute] -ERROR homeassistant/components/lcn/switch.py:186:15-61: Object of class `GroupConnection` has no attribute `request_status_variable` [missing-attribute] -ERROR homeassistant/components/lcn/switch.py:239:15-64: Object of class `GroupConnection` has no attribute `request_status_locked_keys` [missing-attribute] ERROR homeassistant/components/ld2410_ble/__init__.py:65:38-56: Expected 0 positional arguments, got 1 in function `homeassistant.components.bluetooth.match.BluetoothCallbackMatcher.__init__` [bad-argument-count] ERROR homeassistant/components/ld2410_ble/__init__.py:98:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/ld2410_ble/binary_sensor.py:19:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -14580,7 +14761,7 @@ ERROR homeassistant/components/lg_thinq/water_heater.py:61:50-86: No matching ov ERROR homeassistant/components/lg_thinq/water_heater.py:79:7-29: Field `entity_description` is declared `EntityDescription` in ancestor `class ThinQEntity: ... `, which is not assignable to the type `WaterHeaterEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/lg_thinq/water_heater.py:90:14-38: Class member `ThinQWaterHeaterEntity._attr_supported_features` overrides parent class `ThinQEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/libre_hardware_monitor/coordinator.py:38:5-17: Class member `LibreHardwareMonitorCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/libre_hardware_monitor/coordinator.py:37:5-17: Class member `LibreHardwareMonitorCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/libre_hardware_monitor/sensor.py:55:14-24: Class member `LibreHardwareMonitorSensor._attr_name` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/libre_hardware_monitor/sensor.py:55:14-24: Class member `LibreHardwareMonitorSensor._attr_name` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/libre_hardware_monitor/sensor.py:56:14-32: Class member `LibreHardwareMonitorSensor._attr_native_value` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] @@ -14591,7 +14772,6 @@ ERROR homeassistant/components/lidarr/sensor.py:76:9-12: Unexpected keyword argu ERROR homeassistant/components/lidarr/sensor.py:77:9-24: Unexpected keyword argument `translation_key` in function `LidarrSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lidarr/sensor.py:85:9-12: Unexpected keyword argument `key` in function `LidarrSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lidarr/sensor.py:86:9-24: Unexpected keyword argument `translation_key` in function `LidarrSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lidarr/sensor.py:90:46-55: `queue_str` is uninitialized [unbound-name] ERROR homeassistant/components/lidarr/sensor.py:93:9-12: Unexpected keyword argument `key` in function `LidarrSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lidarr/sensor.py:94:9-24: Unexpected keyword argument `translation_key` in function `LidarrSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lidarr/sensor.py:98:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `LidarrSensorEntityDescription.__init__` [unexpected-keyword] @@ -14676,7 +14856,6 @@ ERROR homeassistant/components/limitlessled/light.py:14:1-48: Could not find imp ERROR homeassistant/components/limitlessled/light.py:15:1-48: Could not find import of `limitlessled.group.white` [missing-import] ERROR homeassistant/components/limitlessled/light.py:16:1-43: Could not find import of `limitlessled.pipeline` [missing-import] ERROR homeassistant/components/limitlessled/light.py:17:1-43: Could not find import of `limitlessled.presets` [missing-import] -ERROR homeassistant/components/limitlessled/light.py:203:51-74: `Kwargs[_P]` is not subscriptable [unsupported-operation] ERROR homeassistant/components/limitlessled/light.py:229:18-42: Class member `LimitlessLEDGroup._attr_supported_features` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/limitlessled/light.py:246:38-76: `ColorMode | str` is not assignable to attribute `_fixed_color_mode` with type `None` [bad-assignment] ERROR homeassistant/components/limitlessled/light.py:362:26-42: No matching overload found for function `min` called with arguments: (Literal[1], float) [no-matching-overload] @@ -14867,6 +15046,8 @@ ERROR homeassistant/components/logbook/websocket_api.py:288:60-70: `start_time` ERROR homeassistant/components/logbook/websocket_api.py:311:13-23: `start_time` may be uninitialized [unbound-name] ERROR homeassistant/components/logbook/websocket_api.py:377:9-19: `start_time` may be uninitialized [unbound-name] ERROR homeassistant/components/logbook/websocket_api.py:424:29-39: `start_time` may be uninitialized [unbound-name] +ERROR homeassistant/components/logger/websocket_api.py:42:12-31: Object of class `object` has no attribute `get` [missing-attribute] +ERROR homeassistant/components/logger/websocket_api.py:43:30-45: Argument `_HandlerT` is not assignable to parameter `element` with type `str` in function `set.add` [bad-argument-type] ERROR homeassistant/components/london_air/sensor.py:141:26-84: Cannot set item in `dict[str, None]` [unsupported-operation] ERROR homeassistant/components/london_underground/config_flow.py:36:9-31: Class member `LondonUndergroundConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-param-name-override] ERROR homeassistant/components/lookin/__init__.py:81:78-82: Argument `None` is not assignable to parameter `device_id` with type `str` in function `aiolookin.protocol.start_lookin_udp` [bad-argument-type] @@ -14899,15 +15080,15 @@ ERROR homeassistant/components/loqed/sensor.py:30:9-40: Unexpected keyword argum ERROR homeassistant/components/loqed/sensor.py:33:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/loqed/sensor.py:36:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/loqed/sensor.py:61:14-32: Class member `LoqedSensor.entity_description` overrides parent class `LoqedEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/loqed/sensor.py:67:16-37: Returned type `Lock` is not assignable to declared return type `TypedDict[StatusMessage]` [bad-return] -ERROR homeassistant/components/lovelace/__init__.py:333:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `sidebar_title` with type `str | None` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] -ERROR homeassistant/components/lovelace/__init__.py:333:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `sidebar_icon` with type `str | None` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] -ERROR homeassistant/components/lovelace/__init__.py:333:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `sidebar_default_visible` with type `bool` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] -ERROR homeassistant/components/lovelace/__init__.py:333:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `frontend_url_path` with type `str | None` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] -ERROR homeassistant/components/lovelace/__init__.py:333:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `config` with type `dict[str, Any] | None` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] -ERROR homeassistant/components/lovelace/__init__.py:333:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `require_admin` with type `bool` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] -ERROR homeassistant/components/lovelace/__init__.py:333:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `update` with type `bool` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] -ERROR homeassistant/components/lovelace/__init__.py:333:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `config_panel_domain` with type `str | None` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] +ERROR homeassistant/components/loqed/sensor.py:67:16-37: Returned type `Lock` is not assignable to declared return type `StatusMessage` [bad-return] +ERROR homeassistant/components/lovelace/__init__.py:340:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `sidebar_title` with type `str | None` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] +ERROR homeassistant/components/lovelace/__init__.py:340:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `sidebar_icon` with type `str | None` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] +ERROR homeassistant/components/lovelace/__init__.py:340:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `sidebar_default_visible` with type `bool` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] +ERROR homeassistant/components/lovelace/__init__.py:340:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `frontend_url_path` with type `str | None` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] +ERROR homeassistant/components/lovelace/__init__.py:340:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `config` with type `dict[str, Any] | None` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] +ERROR homeassistant/components/lovelace/__init__.py:340:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `require_admin` with type `bool` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] +ERROR homeassistant/components/lovelace/__init__.py:340:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `update` with type `bool` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] +ERROR homeassistant/components/lovelace/__init__.py:340:58-66: Unpacked keyword argument `bool | dict[str, str] | str | Unknown | None` is not assignable to parameter `config_panel_domain` with type `str | None` in function `homeassistant.components.frontend.async_register_built_in_panel` [bad-argument-type] ERROR homeassistant/components/lovelace/resources.py:153:15-27: Class member `ResourceStorageCollectionWebsocket.ws_list_item` overrides parent class `DictStorageCollectionWebsocket` in an inconsistent manner [bad-override] ERROR homeassistant/components/lovelace/websocket.py:61:43-49: `result` may be uninitialized [unbound-name] ERROR homeassistant/components/luci/device_tracker.py:7:1-40: Could not find import of `openwrt_luci_rpc` [missing-import] @@ -14966,21 +15147,19 @@ ERROR homeassistant/components/lutron_caseta/__init__.py:292:35-41: `keypad` may ERROR homeassistant/components/lutron_caseta/__init__.py:303:9-15: `keypad` may be uninitialized [unbound-name] ERROR homeassistant/components/lutron_caseta/__init__.py:483:13-485:14: Argument `(event_type: str, button_id: Unknown) -> Unknown` is not assignable to parameter `callback_` with type `(str) -> None` in function `pylutron_caseta.smartbridge.Smartbridge.add_button_subscriber` [bad-argument-type] ERROR homeassistant/components/lutron_caseta/binary_sensor.py:43:5-23: Class member `LutronOccupancySensor._attr_device_class` overrides parent class `LutronCasetaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lutron_caseta/binary_sensor.py:50:14-24: Class member `LutronOccupancySensor._attr_name` overrides parent class `LutronCasetaEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lutron_caseta/binary_sensor.py:55:18-27: Argument `UndefinedType | str | None` is not assignable to parameter `name` with type `str | None` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/lutron_caseta/button.py:56:57-68: `device_name` may be uninitialized [unbound-name] -ERROR homeassistant/components/lutron_caseta/button.py:82:14-24: Class member `LutronCasetaButton._attr_name` overrides parent class `LutronCasetaEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lutron_caseta/cover.py:32:5-29: Class member `LutronCasetaShade._attr_supported_features` overrides parent class `LutronCasetaUpdatableEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lutron_caseta/cover.py:38:5-23: Class member `LutronCasetaShade._attr_device_class` overrides parent class `LutronCasetaUpdatableEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lutron_caseta/cover.py:107:5-29: Class member `LutronCasetaTiltOnlyBlind._attr_supported_features` overrides parent class `LutronCasetaUpdatableEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lutron_caseta/cover.py:113:5-23: Class member `LutronCasetaTiltOnlyBlind._attr_device_class` overrides parent class `LutronCasetaUpdatableEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/lutron_caseta/entity.py:43:14-24: Class member `LutronCasetaEntity._attr_name` overrides parent class `Entity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lutron_caseta/entity.py:50:25-55:14: Argument `set[tuple[str, int | str]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/lutron_caseta/fan.py:47:5-29: Class member `LutronCasetaFan._attr_supported_features` overrides parent class `LutronCasetaUpdatableEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lutron_caseta/light.py:87:5-29: Class member `LutronCasetaLight._attr_supported_features` overrides parent class `LutronCasetaUpdatableEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/lutron_caseta/light.py:169:29-39: Argument `Unknown | None` is not assignable to parameter `enabled` with type `bool` in function `pylutron_caseta.smartbridge.Smartbridge.set_warm_dim` [bad-argument-type] ERROR homeassistant/components/lutron_caseta/light.py:185:36-47: Argument `float` is not assignable to parameter `hue` with type `int` in function `pylutron_caseta.color_value.FullColorValue.__init__` [bad-argument-type] ERROR homeassistant/components/lutron_caseta/light.py:185:49-60: Argument `float` is not assignable to parameter `saturation` with type `int` in function `pylutron_caseta.color_value.FullColorValue.__init__` [bad-argument-type] -ERROR homeassistant/components/lutron_caseta/switch.py:47:14-24: Class member `LutronCasetaLight._attr_name` overrides parent class `LutronCasetaUpdatableEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/lutron_caseta/switch.py:101:53-79: Argument `BoundMethod[Self@LutronCasetaSmartAwaySwitch, (self: Self@LutronCasetaSmartAwaySwitch) -> None]` is not assignable to parameter `callback_` with type `(str) -> None` in function `pylutron_caseta.smartbridge.Smartbridge.add_smart_away_subscriber` [bad-argument-type] ERROR homeassistant/components/lw12wifi/light.py:8:8-12: Could not find import of `lw12` [missing-import] ERROR homeassistant/components/lw12wifi/light.py:124:31-81: `tuple[int, int, int]` is not assignable to attribute `_rgb_color` with type `list[int]` [bad-assignment] ERROR homeassistant/components/lw12wifi/light.py:145:23-27: `Literal[True]` is not assignable to attribute `_state` with type `None` [bad-assignment] @@ -15000,10 +15179,8 @@ ERROR homeassistant/components/lyric/sensor.py:86:9-12: Unexpected keyword argum ERROR homeassistant/components/lyric/sensor.py:87:9-24: Unexpected keyword argument `translation_key` in function `LyricSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lyric/sensor.py:95:9-12: Unexpected keyword argument `key` in function `LyricSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lyric/sensor.py:96:9-24: Unexpected keyword argument `translation_key` in function `LyricSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lyric/sensor.py:98:33-62: `get_datetime_from_future_time` is uninitialized [unbound-name] ERROR homeassistant/components/lyric/sensor.py:106:9-12: Unexpected keyword argument `key` in function `LyricSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lyric/sensor.py:107:9-24: Unexpected keyword argument `translation_key` in function `LyricSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/lyric/sensor.py:108:33-52: `get_setpoint_status` is uninitialized [unbound-name] ERROR homeassistant/components/lyric/sensor.py:121:9-12: Unexpected keyword argument `key` in function `LyricSensorAccessoryEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lyric/sensor.py:122:9-24: Unexpected keyword argument `translation_key` in function `LyricSensorAccessoryEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/lyric/sensor.py:129:9-12: Unexpected keyword argument `key` in function `LyricSensorAccessoryEntityDescription.__init__` [unexpected-keyword] @@ -15110,7 +15287,7 @@ ERROR homeassistant/components/matrix/__init__.py:79:50-60: Cannot extend final ERROR homeassistant/components/matrix/__init__.py:208:44-76: Argument `tuple[type[ReactionEvent], type[RoomMessageText]]` is not assignable to parameter `filter` with type `tuple[type[Event], None] | type[Event]` in function `nio.client.base_client.Client.add_event_callback` [bad-argument-type] ERROR homeassistant/components/matrix/__init__.py:259:71-81: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] ERROR homeassistant/components/matrix/__init__.py:348:35-42: `room_id` may be uninitialized [unbound-name] -ERROR homeassistant/components/matrix/__init__.py:387:58-389:14: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None]]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/matrix/__init__.py:387:58-389:14: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, dict[str, JsonValueType]]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/matrix/__init__.py:422:27-49: Argument `str | None` is not assignable to parameter `device_id` with type `str` in function `nio.client.base_client.Client.restore_login` [bad-argument-type] ERROR homeassistant/components/matrix/__init__.py:423:30-35: Argument `bool | dict[str, Unknown] | float | int | list[Unknown] | str` is not assignable to parameter `access_token` with type `str` in function `nio.client.base_client.Client.restore_login` [bad-argument-type] ERROR homeassistant/components/matrix/__init__.py:507:55-79: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[IO[bytes] | PathLike[bytes] | PathLike[str] | bytes | str, Literal['r'], list[str] | tuple[str, ...] | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] @@ -15181,6 +15358,8 @@ ERROR homeassistant/components/matter/binary_sensor.py:461:13-28: Unexpected key ERROR homeassistant/components/matter/binary_sensor.py:476:13-16: Unexpected keyword argument `key` in function `MatterBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/binary_sensor.py:477:13-28: Unexpected keyword argument `translation_key` in function `MatterBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/binary_sensor.py:479:13-28: Unexpected keyword argument `entity_category` in function `MatterBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/binary_sensor.py:491:13-16: Unexpected keyword argument `key` in function `MatterBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/binary_sensor.py:493:13-28: Unexpected keyword argument `entity_category` in function `MatterBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/button.py:46:5-23: Class member `MatterCommandButton.entity_description` overrides parent class `MatterEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/matter/button.py:46:5-23: Class member `MatterCommandButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/matter/button.py:60:13-16: Unexpected keyword argument `key` in function `MatterButtonEntityDescription.__init__` [unexpected-keyword] @@ -15253,7 +15432,6 @@ ERROR homeassistant/components/matter/light.py:182:23-28: Argument `int` is not ERROR homeassistant/components/matter/light.py:184:32-52: Argument `int` is not assignable to parameter `transitionTime` with type `Nullable | uint` in function `chip.clusters.Objects.MoveToLevelWithOnOff.__init__` [bad-argument-type] ERROR homeassistant/components/matter/light.py:271:17-43: Argument `Nullable | uint` is not assignable to parameter `number` with type `float` in function `homeassistant.components.matter.util.renormalize` [bad-argument-type] ERROR homeassistant/components/matter/light.py:272:17-77: Argument `tuple[Literal[1] | uint, Literal[254] | uint]` is not assignable to parameter `from_range` with type `tuple[float, float]` in function `homeassistant.components.matter.util.renormalize` [bad-argument-type] -ERROR homeassistant/components/matter/light.py:427:18-34: Class member `MatterLight._attr_color_mode` overrides parent class `LightEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/matter/light.py:468:13-16: Unexpected keyword argument `key` in function `MatterLightEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/light.py:469:13-17: Unexpected keyword argument `name` in function `MatterLightEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/light.py:497:13-16: Unexpected keyword argument `key` in function `MatterLightEntityDescription.__init__` [unexpected-keyword] @@ -15324,70 +15502,72 @@ ERROR homeassistant/components/matter/number.py:444:13-28: Unexpected keyword ar ERROR homeassistant/components/matter/number.py:456:13-16: Unexpected keyword argument `key` in function `MatterNumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/number.py:457:13-28: Unexpected keyword argument `entity_category` in function `MatterNumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/number.py:458:13-28: Unexpected keyword argument `translation_key` in function `MatterNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:96:5-23: Class member `MatterAttributeSelectEntity.entity_description` overrides parent class `MatterEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/matter/select.py:96:5-23: Class member `MatterAttributeSelectEntity.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/matter/select.py:121:5-23: Class member `MatterMapSelectEntity.entity_description` overrides parent class `MatterAttributeSelectEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/matter/select.py:146:34-148:10: `None` is not assignable to `DeviceEnergyManagementMode | DishwasherMode | EnergyEvseMode | LaundryWasherMode | ModeSelect | OvenMode | RefrigeratorAndTemperatureControlledCabinetMode | RvcCleanMode | RvcRunMode | WaterHeaterMode` [bad-assignment] -ERROR homeassistant/components/matter/select.py:163:34-165:10: `None` is not assignable to `DeviceEnergyManagementMode | DishwasherMode | EnergyEvseMode | LaundryWasherMode | ModeSelect | OvenMode | RefrigeratorAndTemperatureControlledCabinetMode | RvcCleanMode | RvcRunMode | WaterHeaterMode` [bad-assignment] -ERROR homeassistant/components/matter/select.py:177:5-23: Class member `MatterListSelectEntity.entity_description` overrides parent class `MatterEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/matter/select.py:177:5-23: Class member `MatterListSelectEntity.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/matter/select.py:223:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:224:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:225:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:238:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:239:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:252:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:253:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:266:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:267:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:280:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:281:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:294:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:295:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:308:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:309:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:322:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:323:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:336:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:337:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:338:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:361:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:362:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:363:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:382:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:383:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:384:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:403:13-16: Unexpected keyword argument `key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:404:13-28: Unexpected keyword argument `translation_key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:406:40-54: Argument `int` is not assignable to parameter `targetTemperatureLevel` with type `uint | None` in function `chip.clusters.Objects.SetTemperature.__init__` [bad-argument-type] -ERROR homeassistant/components/matter/select.py:421:13-16: Unexpected keyword argument `key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:422:13-28: Unexpected keyword argument `translation_key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:436:13-16: Unexpected keyword argument `key` in function `MatterMapSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:437:13-28: Unexpected keyword argument `translation_key` in function `MatterMapSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:453:13-16: Unexpected keyword argument `key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:454:13-28: Unexpected keyword argument `translation_key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:456:34-48: Argument `int` is not assignable to parameter `wattSettingIndex` with type `uint | None` in function `chip.clusters.Objects.SetCookingParameters.__init__` [bad-argument-type] -ERROR homeassistant/components/matter/select.py:471:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:472:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:473:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:494:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:495:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:508:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:509:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:510:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:533:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:534:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:535:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:561:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:562:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/matter/select.py:563:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:108:5-23: Class member `MatterAttributeSelectEntity.entity_description` overrides parent class `MatterEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/matter/select.py:108:5-23: Class member `MatterAttributeSelectEntity.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/matter/select.py:133:5-23: Class member `MatterMapSelectEntity.entity_description` overrides parent class `MatterAttributeSelectEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/matter/select.py:158:34-160:10: `None` is not assignable to `DeviceEnergyManagementMode | DishwasherMode | EnergyEvseMode | LaundryWasherMode | ModeSelect | OvenMode | RefrigeratorAndTemperatureControlledCabinetMode | RvcCleanMode | RvcRunMode | WaterHeaterMode` [bad-assignment] +ERROR homeassistant/components/matter/select.py:175:34-177:10: `None` is not assignable to `DeviceEnergyManagementMode | DishwasherMode | EnergyEvseMode | LaundryWasherMode | ModeSelect | OvenMode | RefrigeratorAndTemperatureControlledCabinetMode | RvcCleanMode | RvcRunMode | WaterHeaterMode` [bad-assignment] +ERROR homeassistant/components/matter/select.py:189:5-23: Class member `MatterListSelectEntity.entity_description` overrides parent class `MatterEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/matter/select.py:189:5-23: Class member `MatterListSelectEntity.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/matter/select.py:235:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:236:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:237:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:250:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:251:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:264:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:265:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:278:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:279:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:292:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:293:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:306:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:307:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:320:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:321:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:334:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:335:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:348:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:349:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:350:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:373:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:374:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:375:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:394:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:395:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:396:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:415:13-16: Unexpected keyword argument `key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:416:13-28: Unexpected keyword argument `translation_key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:418:40-54: Argument `int` is not assignable to parameter `targetTemperatureLevel` with type `uint | None` in function `chip.clusters.Objects.SetTemperature.__init__` [bad-argument-type] +ERROR homeassistant/components/matter/select.py:433:13-16: Unexpected keyword argument `key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:434:13-28: Unexpected keyword argument `translation_key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:448:13-16: Unexpected keyword argument `key` in function `MatterMapSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:449:13-28: Unexpected keyword argument `translation_key` in function `MatterMapSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:465:13-16: Unexpected keyword argument `key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:466:13-28: Unexpected keyword argument `translation_key` in function `MatterListSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:468:34-48: Argument `int` is not assignable to parameter `wattSettingIndex` with type `uint | None` in function `chip.clusters.Objects.SetCookingParameters.__init__` [bad-argument-type] +ERROR homeassistant/components/matter/select.py:483:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:484:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:485:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:506:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:507:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:520:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:521:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:522:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:545:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:546:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:547:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:573:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:574:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:575:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:598:13-16: Unexpected keyword argument `key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:599:13-28: Unexpected keyword argument `entity_category` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/select.py:600:13-28: Unexpected keyword argument `translation_key` in function `MatterSelectEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/sensor.py:232:5-23: Class member `MatterSensor.entity_description` overrides parent class `MatterEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/matter/sensor.py:232:5-23: Class member `MatterSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/matter/sensor.py:249:5-23: Class member `MatterDraftElectricalMeasurementSensor.entity_description` overrides parent class `MatterEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/matter/sensor.py:249:5-23: Class member `MatterDraftElectricalMeasurementSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/matter/sensor.py:278:5-23: Class member `MatterOperationalStateSensor.entity_description` overrides parent class `MatterSensor` in an inconsistent manner [bad-override] ERROR homeassistant/components/matter/sensor.py:316:5-23: Class member `MatterListSensor.entity_description` overrides parent class `MatterSensor` in an inconsistent manner [bad-override] -ERROR homeassistant/components/matter/sensor.py:322:14-27: Class member `MatterListSensor._attr_options` overrides parent class `MatterSensor` in an inconsistent manner [bad-override] ERROR homeassistant/components/matter/sensor.py:340:13-16: Unexpected keyword argument `key` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/sensor.py:352:13-16: Unexpected keyword argument `key` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/sensor.py:364:13-16: Unexpected keyword argument `key` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] @@ -15562,6 +15742,14 @@ ERROR homeassistant/components/matter/sensor.py:1467:13-16: Unexpected keyword a ERROR homeassistant/components/matter/sensor.py:1468:13-28: Unexpected keyword argument `translation_key` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/sensor.py:1482:13-16: Unexpected keyword argument `key` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/sensor.py:1483:13-28: Unexpected keyword argument `translation_key` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/sensor.py:1494:13-16: Unexpected keyword argument `key` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/sensor.py:1495:13-28: Unexpected keyword argument `translation_key` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/sensor.py:1496:13-28: Unexpected keyword argument `entity_category` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/sensor.py:1497:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/sensor.py:1507:13-16: Unexpected keyword argument `key` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/sensor.py:1508:13-28: Unexpected keyword argument `translation_key` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/sensor.py:1509:13-28: Unexpected keyword argument `entity_category` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/matter/sensor.py:1510:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `MatterSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/matter/switch.py:50:7-19: Field `entity_description` is declared `EntityDescription` in ancestor `class MatterEntity: ... `, which is not assignable to the type `SwitchEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/matter/switch.py:78:5-23: Class member `MatterGenericCommandSwitch.entity_description` overrides parent class `MatterSwitch` in an inconsistent manner [bad-override] @@ -15942,6 +16130,10 @@ ERROR homeassistant/components/miele/light.py:74:13-16: Unexpected keyword argum ERROR homeassistant/components/miele/light.py:77:13-28: Unexpected keyword argument `translation_key` in function `MieleLightDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/miele/light.py:111:5-23: Class member `MieleLight.entity_description` overrides parent class `MieleEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/miele/light.py:111:5-23: Class member `MieleLight.entity_description` overrides parent class `LightEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/miele/select.py:60:13-16: Unexpected keyword argument `key` in function `MieleSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/miele/select.py:62:13-28: Unexpected keyword argument `translation_key` in function `MieleSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/miele/select.py:96:5-23: Class member `MieleSelectMode.entity_description` overrides parent class `MieleEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/miele/select.py:96:5-23: Class member `MieleSelectMode.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/miele/sensor.py:122:31-39: `duration` may be uninitialized [unbound-name] ERROR homeassistant/components/miele/sensor.py:194:13-16: Unexpected keyword argument `key` in function `MieleSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/miele/sensor.py:195:13-28: Unexpected keyword argument `translation_key` in function `MieleSensorDescription.__init__` [unexpected-keyword] @@ -16039,8 +16231,6 @@ ERROR homeassistant/components/mill/climate.py:195:15-75: Object of class `Mill` ERROR homeassistant/components/mill/climate.py:203:19-96: Object of class `Mill` has no attribute `set_operation_mode_control_individually` [missing-attribute] ERROR homeassistant/components/mill/climate.py:206:19-79: Object of class `Mill` has no attribute `set_operation_mode_off` [missing-attribute] ERROR homeassistant/components/mill/coordinator.py:40:5-17: Class member `MillDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mill/coordinator.py:85:14-29: Class member `MillHistoricDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mill/coordinator.py:86:13-71: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@MillHistoricDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/mill/entity.py:33:25-58: Argument `set[tuple[str, str | None]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/mill/entity.py:43:49-57: Cannot index into `dict[str, Any]` [bad-index] ERROR homeassistant/components/mill/number.py:39:5-23: Class member `MillNumber._attr_device_class` overrides parent class `MillBaseEntity` in an inconsistent manner [bad-override] @@ -16125,7 +16315,7 @@ ERROR homeassistant/components/moat/sensor.py:62:9-12: Unexpected keyword argume ERROR homeassistant/components/moat/sensor.py:66:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/moat/sensor.py:123:7-32: Field `entity_description` is declared `EntityDescription` in ancestor `class PassiveBluetoothProcessorEntity: ... `, which is not assignable to the type `SensorEntityDescription` implied by multiple inheritance [inconsistent-inheritance] -ERROR homeassistant/components/mobile_app/__init__.py:74:27-37: `app_config` may be uninitialized [unbound-name] +ERROR homeassistant/components/mobile_app/__init__.py:76:27-37: `app_config` may be uninitialized [unbound-name] ERROR homeassistant/components/mobile_app/binary_sensor.py:73:7-28: Field `_attr_device_class` is declared `str | None` in ancestor `class MobileAppEntity: ... `, which is not assignable to the type `BinarySensorDeviceClass | None` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/mobile_app/device_tracker.py:70:16-30: Object of class `NoneType` has no attribute `get` [missing-attribute] @@ -16135,13 +16325,13 @@ ERROR homeassistant/components/mobile_app/device_tracker.py:90:20-34: Object of ERROR homeassistant/components/mobile_app/device_tracker.py:98:20-34: Object of class `NoneType` has no attribute `get` [missing-attribute] ERROR homeassistant/components/mobile_app/device_tracker.py:106:29-43: Object of class `NoneType` has no attribute `get` [missing-attribute] ERROR homeassistant/components/mobile_app/device_tracker.py:129:32-133:10: `() -> None` is not assignable to attribute `_dispatch_unsub` with type `None` [bad-assignment] -ERROR homeassistant/components/mobile_app/entity.py:83:28-46: Argument `MappingProxyType[str, Any]` is not assignable to parameter `registration` with type `dict[Unknown, Unknown]` in function `homeassistant.components.mobile_app.helpers.device_info` [bad-argument-type] +ERROR homeassistant/components/mobile_app/entity.py:100:28-46: Argument `MappingProxyType[str, Any]` is not assignable to parameter `registration` with type `dict[Unknown, Unknown]` in function `homeassistant.components.mobile_app.helpers.device_info` [bad-argument-type] ERROR homeassistant/components/mobile_app/notify.py:70:20-71: `-` is not supported between `None` and `datetime` [unsupported-operation] ERROR homeassistant/components/mobile_app/notify.py:128:23-30: `targets` may be uninitialized [unbound-name] ERROR homeassistant/components/mobile_app/push_notification.py:85:28-32: `None` is not assignable to attribute `on_teardown` with type `() -> None` [bad-assignment] -ERROR homeassistant/components/mobile_app/webhook.py:171:23-35: Module `voluptuous.humanize` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/mobile_app/webhook.py:212:15-27: Module `voluptuous.humanize` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/components/mobile_app/webhook.py:674:23-35: Module `voluptuous.humanize` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/mobile_app/webhook.py:170:23-35: Module `voluptuous.humanize` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/mobile_app/webhook.py:211:15-27: Module `voluptuous.humanize` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/components/mobile_app/webhook.py:675:23-35: Module `voluptuous.humanize` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR homeassistant/components/mochad/light.py:72:14-24: Class member `MochadLight._attr_name` overrides parent class `LightEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mochad/switch.py:60:14-24: Class member `MochadSwitch._attr_name` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/modbus/binary_sensor.py:62:7-25: Field `_attr_device_class` is declared `str | None` in ancestor `class ModbusBaseEntity: ... @@ -16180,7 +16370,8 @@ ERROR homeassistant/components/modbus/modbus.py:336:62-79: Unpacked keyword argu ERROR homeassistant/components/modbus/modbus.py:336:62-79: Unpacked keyword argument `int | Any` is not assignable to parameter `trace_packet` with type `((bool, bytes) -> bytes) | None` in function `pymodbus.client.udp.AsyncModbusUdpClient.__init__` [bad-argument-type] ERROR homeassistant/components/modbus/modbus.py:336:62-79: Unpacked keyword argument `int | Any` is not assignable to parameter `trace_pdu` with type `((bool, ModbusPDU) -> ModbusPDU) | None` in function `pymodbus.client.udp.AsyncModbusUdpClient.__init__` [bad-argument-type] ERROR homeassistant/components/modbus/modbus.py:336:62-79: Unpacked keyword argument `int | Any` is not assignable to parameter `trace_connect` with type `((bool) -> None) | None` in function `pymodbus.client.udp.AsyncModbusUdpClient.__init__` [bad-argument-type] -ERROR homeassistant/components/modbus/sensor.py:88:14-32: Class member `ModbusRegisterSensor._attr_device_class` overrides parent class `ModbusStructEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/modbus/sensor.py:88:14-32: Class member `ModbusRegisterSensor._attr_device_class` overrides parent class `RestoreSensor` in an inconsistent manner [bad-override] +ERROR homeassistant/components/modbus/sensor.py:88:14-32: Class member `ModbusRegisterSensor._attr_device_class` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/modbus/sensor.py:186:14-32: Class member `SlaveSensor._attr_device_class` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/modbus/validators.py:72:9-16: Class member `PARM_IS_LEGAL.count` overrides parent class `NamedTupleFallback` in an inconsistent manner [bad-override] ERROR homeassistant/components/modern_forms/coordinator.py:26:5-17: Class member `ModernFormsDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] @@ -16252,9 +16443,6 @@ ERROR homeassistant/components/motion_blinds/button.py:57:52-84: Object of class ERROR homeassistant/components/motion_blinds/button.py:77:52-85: Object of class `MotionGateway` has no attribute `Set_favorite_position` [missing-attribute] ERROR homeassistant/components/motion_blinds/config_flow.py:81:9-31: Class member `MotionBlindsFlowHandler.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/motion_blinds/coordinator.py:29:5-17: Class member `DataUpdateCoordinatorMotionBlinds.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/motion_blinds/coordinator.py:94:18-33: Class member `DataUpdateCoordinatorMotionBlinds.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/motion_blinds/coordinator.py:94:36-70: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@DataUpdateCoordinatorMotionBlinds, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/motion_blinds/coordinator.py:96:36-75: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@DataUpdateCoordinatorMotionBlinds, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/motion_blinds/cover.py:181:14-32: Class member `MotionBaseDevice._attr_device_class` overrides parent class `MotionCoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/motion_blinds/cover.py:201:12-32: Object of class `MotionGateway` has no attribute `position` [missing-attribute] ERROR homeassistant/components/motion_blinds/cover.py:203:16-42: `-` is not supported between `Literal[100]` and `object` [unsupported-operation] @@ -16465,33 +16653,33 @@ ERROR homeassistant/components/mqtt/binary_sensor.py:152:14-32: Class member `Mq ERROR homeassistant/components/mqtt/button.py:71:9-22: Class member `MqttButton.config_schema` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mqtt/button.py:80:14-32: Class member `MqttButton._attr_device_class` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mqtt/camera.py:97:9-22: Class member `MqttCamera.config_schema` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/client.py:319:23-32: `client_id` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/client.py:359:12-23: `certificate` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/client.py:361:17-28: `certificate` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/client.py:822:50-57: `max_qos` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/client.py:356:23-32: `client_id` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/client.py:396:12-23: `certificate` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/client.py:398:17-28: `certificate` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/client.py:863:50-57: `max_qos` may be uninitialized [unbound-name] ERROR homeassistant/components/mqtt/climate.py:667:14-38: Class member `MqttClimate._attr_supported_features` overrides parent class `MqttTemperatureControlEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mqtt/climate.py:807:15-44: Method `async_set_temperature` inherited from class `MqttTemperatureControlEntity` has no implementation and cannot be accessed via `super()` [missing-attribute] -ERROR homeassistant/components/mqtt/config_flow.py:846:12-16: `code` is uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:924:64-75: Cannot index into `dict[SensorStateClass | str, set[str | type[StrEnum] | None]]` [bad-index] -ERROR homeassistant/components/mqtt/config_flow.py:1129:9-21: `device_class` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:1138:9-21: `device_class` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:1139:13-25: `device_class` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:1140:59-71: `device_class` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:3457:60-84: Expected 0 positional arguments, got 1 in function `homeassistant.data_entry_flow.SectionConfig.__init__` [bad-argument-count] -ERROR homeassistant/components/mqtt/config_flow.py:3591:9-31: Class member `FlowHandler.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/config_flow.py:3847:13-30: `reconfigure_entry` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:3847:39-53: `is_reconfigure` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:3852:16-30: `is_reconfigure` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:3854:21-38: `reconfigure_entry` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:3863:20-34: `is_reconfigure` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:3865:25-42: `reconfigure_entry` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:4219:76-84: `reconfig` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:4890:17-40: Expected a type form, got instance of `*Unknown` [not-a-type] -ERROR homeassistant/components/mqtt/config_flow.py:4890:18-40: Expected a type form, got instance of `tuple[type[JSONDecodeError]]` [not-a-type] -ERROR homeassistant/components/mqtt/config_flow.py:5129:8-26: `client_certificate` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:5129:31-42: `private_key` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:5131:37-55: `client_certificate` may be uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/config_flow.py:5131:57-68: `private_key` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:887:12-16: `code` is uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:965:64-75: Cannot index into `dict[SensorStateClass | str, set[str | type[StrEnum] | None]]` [bad-index] +ERROR homeassistant/components/mqtt/config_flow.py:1170:9-21: `device_class` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:1179:9-21: `device_class` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:1180:13-25: `device_class` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:1181:59-71: `device_class` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:3843:60-84: Expected 0 positional arguments, got 1 in function `homeassistant.data_entry_flow.SectionConfig.__init__` [bad-argument-count] +ERROR homeassistant/components/mqtt/config_flow.py:3976:9-31: Class member `FlowHandler.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] +ERROR homeassistant/components/mqtt/config_flow.py:4232:13-30: `reconfigure_entry` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:4232:39-53: `is_reconfigure` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:4237:16-30: `is_reconfigure` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:4239:21-38: `reconfigure_entry` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:4248:20-34: `is_reconfigure` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:4250:25-42: `reconfigure_entry` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:4604:76-84: `reconfig` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:5275:17-40: Expected a type form, got instance of `*Unknown` [not-a-type] +ERROR homeassistant/components/mqtt/config_flow.py:5275:18-40: Expected a type form, got instance of `tuple[type[JSONDecodeError]]` [not-a-type] +ERROR homeassistant/components/mqtt/config_flow.py:5514:8-26: `client_certificate` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:5514:31-42: `private_key` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:5516:37-55: `client_certificate` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/config_flow.py:5516:57-68: `private_key` may be uninitialized [unbound-name] ERROR homeassistant/components/mqtt/cover.py:331:14-32: Class member `MqttCover._attr_device_class` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mqtt/cover.py:348:14-38: Class member `MqttCover._attr_supported_features` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mqtt/device_tracker.py:155:9-47: Class member `MqttDeviceTracker._process_update_extra_state_attributes` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] @@ -16503,9 +16691,9 @@ ERROR homeassistant/components/mqtt/discovery.py:448:17-34: `discovery_payload` ERROR homeassistant/components/mqtt/discovery.py:456:25-42: `discovery_payload` may be uninitialized [unbound-name] ERROR homeassistant/components/mqtt/entity.py:1330:5-20: `device_registry` is uninitialized [unbound-name] ERROR homeassistant/components/mqtt/entity.py:1425:31-48: `default_entity_id` is uninitialized [unbound-name] -ERROR homeassistant/components/mqtt/entity.py:1642:9-26: Class member `MqttEntity._message_callback` overrides parent class `MqttAttributesMixin` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/entity.py:1642:9-26: Class member `MqttEntity._message_callback` overrides parent class `MqttAvailabilityMixin` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/entity.py:1667:64-78: `attrs_snapshot` may be uninitialized [unbound-name] +ERROR homeassistant/components/mqtt/entity.py:1643:9-26: Class member `MqttEntity._message_callback` overrides parent class `MqttAttributesMixin` in an inconsistent manner [bad-override] +ERROR homeassistant/components/mqtt/entity.py:1643:9-26: Class member `MqttEntity._message_callback` overrides parent class `MqttAvailabilityMixin` in an inconsistent manner [bad-override] +ERROR homeassistant/components/mqtt/entity.py:1668:64-78: `attrs_snapshot` may be uninitialized [unbound-name] ERROR homeassistant/components/mqtt/event.py:105:14-32: Class member `MqttEvent._attr_device_class` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mqtt/fan.py:292:14-38: Class member `MqttFan._attr_supported_features` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mqtt/humidifier.py:223:14-32: Class member `MqttHumidifier._attr_device_class` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] @@ -16520,13 +16708,6 @@ ERROR homeassistant/components/mqtt/lock.py:144:9-22: Class member `MqttLock.con ERROR homeassistant/components/mqtt/lock.py:155:28-38: `optimistic` may be uninitialized [unbound-name] ERROR homeassistant/components/mqtt/lock.py:156:41-51: `optimistic` may be uninitialized [unbound-name] ERROR homeassistant/components/mqtt/lock.py:172:14-38: Class member `MqttLock._attr_supported_features` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/lock.py:191:41-57: Class member `MqttLock._attr_is_locking` overrides parent class `LockEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/lock.py:193:18-31: Class member `MqttLock._attr_is_open` overrides parent class `LockEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/lock.py:193:39-55: Class member `MqttLock._attr_is_opening` overrides parent class `LockEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/lock.py:197:37-80: `bool` is not assignable to attribute `_attr_is_locking` with type `None` [bad-assignment] -ERROR homeassistant/components/mqtt/lock.py:198:34-74: `bool` is not assignable to attribute `_attr_is_open` with type `None` [bad-assignment] -ERROR homeassistant/components/mqtt/lock.py:199:37-80: `bool` is not assignable to attribute `_attr_is_opening` with type `None` [bad-assignment] -ERROR homeassistant/components/mqtt/lock.py:265:34-38: `Literal[True]` is not assignable to attribute `_attr_is_open` with type `None` [bad-assignment] ERROR homeassistant/components/mqtt/models.py:140:5-13: Class member `MqttCommandTemplateException._message` overrides parent class `ServiceValidationError` in an inconsistent manner [bad-override] ERROR homeassistant/components/mqtt/models.py:228:5-13: Class member `MqttValueTemplateException._message` overrides parent class `TemplateError` in an inconsistent manner [bad-override] ERROR homeassistant/components/mqtt/notify.py:63:9-22: Class member `MqttNotify.config_schema` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] @@ -16550,10 +16731,10 @@ ERROR homeassistant/components/mqtt/tag.py:185:22-36: Cannot index into `dict[st ERROR homeassistant/components/mqtt/update.py:117:14-32: Class member `MqttUpdate._attr_device_class` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mqtt/update.py:117:14-32: Class member `MqttUpdate._attr_device_class` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mqtt/vacuum.py:235:14-38: Class member `MqttStateVacuum._attr_supported_features` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/valve.py:199:14-32: Class member `MqttValve._attr_device_class` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/valve.py:213:14-38: Class member `MqttValve._attr_supported_features` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/water_heater.py:260:14-38: Class member `MqttWaterHeater._attr_supported_features` overrides parent class `MqttTemperatureControlEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mqtt/water_heater.py:303:15-44: Method `async_set_temperature` inherited from class `MqttTemperatureControlEntity` has no implementation and cannot be accessed via `super()` [missing-attribute] +ERROR homeassistant/components/mqtt/valve.py:202:14-32: Class member `MqttValve._attr_device_class` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/mqtt/valve.py:216:14-38: Class member `MqttValve._attr_supported_features` overrides parent class `MqttEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/mqtt/water_heater.py:261:14-38: Class member `MqttWaterHeater._attr_supported_features` overrides parent class `MqttTemperatureControlEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/mqtt/water_heater.py:304:15-44: Method `async_set_temperature` inherited from class `MqttTemperatureControlEntity` has no implementation and cannot be accessed via `super()` [missing-attribute] ERROR homeassistant/components/mqtt_room/sensor.py:138:29-45: `datetime` is not assignable to attribute `_updated` with type `None` [bad-assignment] ERROR homeassistant/components/msteams/notify.py:7:8-17: Could not find import of `pymsteams` [missing-import] ERROR homeassistant/components/mullvad/binary_sensor.py:21:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -16562,11 +16743,11 @@ ERROR homeassistant/components/mullvad/binary_sensor.py:55:14-32: Class member ` ERROR homeassistant/components/music_assistant/button.py:39:5-23: Class member `MusicAssistantFavoriteButton.entity_description` overrides parent class `MusicAssistantEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/music_assistant/button.py:40:9-12: Unexpected keyword argument `key` in function `homeassistant.components.button.ButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/music_assistant/button.py:41:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.button.ButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/music_assistant/media_player.py:197:14-32: Class member `MusicAssistantPlayer._attr_device_class` overrides parent class `MusicAssistantEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/music_assistant/media_player.py:260:18-29: Class member `MusicAssistantPlayer._attr_state` overrides parent class `MusicAssistantEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/music_assistant/media_player.py:734:14-38: Class member `MusicAssistantPlayer._attr_supported_features` overrides parent class `MusicAssistantEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/music_assistant/services.py:80:8-13: `entry` is uninitialized [unbound-name] -ERROR homeassistant/components/music_assistant/services.py:82:12-17: `entry` is uninitialized [unbound-name] +ERROR homeassistant/components/music_assistant/helpers.py:46:8-13: `entry` is uninitialized [unbound-name] +ERROR homeassistant/components/music_assistant/helpers.py:48:12-17: `entry` is uninitialized [unbound-name] +ERROR homeassistant/components/music_assistant/media_player.py:140:14-32: Class member `MusicAssistantPlayer._attr_device_class` overrides parent class `MusicAssistantEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/music_assistant/media_player.py:203:18-29: Class member `MusicAssistantPlayer._attr_state` overrides parent class `MusicAssistantEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/music_assistant/media_player.py:677:14-38: Class member `MusicAssistantPlayer._attr_supported_features` overrides parent class `MusicAssistantEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mutesync/config_flow.py:41:12-17: Returned type `str` is not assignable to declared return type `dict[str, Any]` [bad-return] ERROR homeassistant/components/mvglive/sensor.py:11:1-51: Could not find import of `mvg` [missing-import] ERROR homeassistant/components/mycroft/notify.py:7:1-34: Could not find import of `mycroftapi` [missing-import] @@ -16643,13 +16824,18 @@ ERROR homeassistant/components/mysensors/sensor.py:200:9-12: Unexpected keyword ERROR homeassistant/components/mysensors/sensor.py:204:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/mysensors/sensor.py:256:5-23: Class member `MyBatterySensor._attr_device_class` overrides parent class `MySensorNodeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/mysensors/sensor.py:287:18-36: Class member `MySensorsSensor.entity_description` overrides parent class `MySensorsChildEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mystrom/sensor.py:34:9-12: Unexpected keyword argument `key` in function `MyStromSwitchSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/mystrom/sensor.py:35:9-24: Unexpected keyword argument `translation_key` in function `MyStromSwitchSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/mystrom/sensor.py:41:9-12: Unexpected keyword argument `key` in function `MyStromSwitchSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/mystrom/sensor.py:48:9-12: Unexpected keyword argument `key` in function `MyStromSwitchSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/mystrom/sensor.py:63:29-54: `MyStromBulb | MyStromSwitch` is not assignable to `MyStromSwitch` [bad-assignment] -ERROR homeassistant/components/mystrom/sensor.py:75:5-23: Class member `MyStromSwitchSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/mystrom/sensor.py:91:25-47: Argument `set[tuple[str, str | None]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/mystrom/sensor.py:42:9-12: Unexpected keyword argument `key` in function `MyStromSwitchSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/mystrom/sensor.py:43:9-24: Unexpected keyword argument `translation_key` in function `MyStromSwitchSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/mystrom/sensor.py:49:9-12: Unexpected keyword argument `key` in function `MyStromSwitchSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/mystrom/sensor.py:56:9-12: Unexpected keyword argument `key` in function `MyStromSwitchSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/mystrom/sensor.py:57:9-24: Unexpected keyword argument `translation_key` in function `MyStromSwitchSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/mystrom/sensor.py:65:9-12: Unexpected keyword argument `key` in function `MyStromSwitchSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/mystrom/sensor.py:80:29-54: `MyStromBulb | MyStromSwitch` is not assignable to `MyStromSwitch` [bad-assignment] +ERROR homeassistant/components/mystrom/sensor.py:108:25-47: Argument `set[tuple[str, str | None]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/mystrom/sensor.py:118:5-23: Class member `MyStromSwitchSensor.entity_description` overrides parent class `MyStromSensorBase` in an inconsistent manner [bad-override] +ERROR homeassistant/components/mystrom/sensor.py:141:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/mystrom/sensor.py:143:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/mystrom/sensor.py:144:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/myuplink/binary_sensor.py:22:13-16: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/myuplink/binary_sensor.py:23:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/myuplink/binary_sensor.py:28:13-16: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -16795,8 +16981,8 @@ ERROR homeassistant/components/nam/sensor.py:404:5-23: Class member `NAMSensor.e ERROR homeassistant/components/nanoleaf/__init__.py:73:28-48: `touch_event_callback` may be uninitialized [unbound-name] ERROR homeassistant/components/nanoleaf/__init__.py:73:52-66: `supports_touch` may be uninitialized [unbound-name] ERROR homeassistant/components/nanoleaf/button.py:25:5-23: Class member `NanoleafIdentifyButton._attr_device_class` overrides parent class `NanoleafEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/nanoleaf/config_flow.py:142:69-144:10: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None]]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/components/nanoleaf/config_flow.py:223:55-225:18: Unpacked argument `tuple[str, dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None]]` is not assignable to parameter `*args` with type `tuple[str, dict[Unknown, Unknown] | list[Unknown], bool]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/nanoleaf/config_flow.py:142:69-144:10: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, dict[str, JsonValueType]]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/nanoleaf/config_flow.py:223:55-225:18: Unpacked argument `tuple[str, dict[str, JsonValueType]]` is not assignable to parameter `*args` with type `tuple[str, dict[Unknown, Unknown] | list[Unknown], bool]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/nanoleaf/coordinator.py:21:5-17: Class member `NanoleafCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/nanoleaf/light.py:40:5-29: Class member `NanoleafLight._attr_supported_features` overrides parent class `NanoleafEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/nasweb/__init__.py:129:12-21: `unload_ok` may be uninitialized [unbound-name] @@ -16805,7 +16991,7 @@ ERROR homeassistant/components/nasweb/coordinator.py:176:13-22: Argument `HassJo ERROR homeassistant/components/nasweb/sensor.py:126:5-18: Class member `InputStateSensor._attr_options` overrides parent class `BaseSensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/nasweb/sensor.py:143:14-32: Class member `InputStateSensor._attr_native_value` overrides parent class `BaseSensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/nasweb/switch.py:115:53-71: Cannot index into `dict[str | None, bool | None]` [bad-index] -ERROR homeassistant/components/neato/__init__.py:58:43-60: Argument `BoundMethod[NeatoHub, (...) -> Unknown]` is not assignable to parameter `target` with type `(**tuple[*@_]) -> @_` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/neato/__init__.py:64:43-60: Argument `BoundMethod[NeatoHub, (...) -> Unknown]` is not assignable to parameter `target` with type `(**tuple[*@_]) -> @_` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/neato/api.py:31:9-23: Class member `ConfigEntryAuth.refresh_tokens` overrides parent class `OAuthSession` in an inconsistent manner [bad-override] ERROR homeassistant/components/neato/camera.py:94:26-34: `map_data` may be uninitialized [unbound-name] ERROR homeassistant/components/neato/camera.py:114:30-38: `map_data` may be uninitialized [unbound-name] @@ -16814,16 +17000,70 @@ ERROR homeassistant/components/neato/sensor.py:48:5-23: Class member `NeatoSenso ERROR homeassistant/components/neato/vacuum.py:98:5-29: Class member `NeatoConnectedVacuum._attr_supported_features` overrides parent class `NeatoEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/neato/vacuum.py:125:14-29: Class member `NeatoConnectedVacuum._attr_unique_id` overrides parent class `NeatoEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/neato/vacuum.py:125:14-29: Class member `NeatoConnectedVacuum._attr_unique_id` overrides parent class `StateVacuumEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:132:5-23: Class member `NSDepartureSensor._attr_device_class` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:44:9-12: Unexpected keyword argument `key` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:45:9-24: Unexpected keyword argument `translation_key` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:46:9-24: Unexpected keyword argument `entity_category` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:50:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:53:9-12: Unexpected keyword argument `key` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:54:9-24: Unexpected keyword argument `translation_key` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:55:9-24: Unexpected keyword argument `entity_category` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:59:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:62:9-12: Unexpected keyword argument `key` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:63:9-24: Unexpected keyword argument `translation_key` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:64:9-24: Unexpected keyword argument `entity_category` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:66:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:95:5-23: Class member `NSBinarySensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:95:5-23: Class member `NSBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:100:5-20: Class member `NSSensorEntityDescription.entity_category` overrides parent class `SensorEntityDescription` in an inconsistent manner [bad-override] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:106:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:107:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:113:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:114:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:118:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:122:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:123:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:125:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:128:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:129:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:131:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:134:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:135:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:137:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:140:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:141:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:143:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:146:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:147:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:150:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:153:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:154:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:157:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:160:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:161:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:164:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:167:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:168:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:171:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:175:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:176:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:180:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:183:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:184:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:186:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:190:9-12: Unexpected keyword argument `key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:191:9-24: Unexpected keyword argument `translation_key` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:193:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `NSSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:271:5-23: Class member `NSSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/nederlandse_spoorwegen/sensor.py:271:5-23: Class member `NSSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/ness_alarm/alarm_control_panel.py:74:35-39: Argument `str | None` is not assignable to parameter `code` with type `str` in function `nessclient.client.Client.disarm` [bad-argument-type] ERROR homeassistant/components/ness_alarm/alarm_control_panel.py:86:34-38: Argument `str | None` is not assignable to parameter `code` with type `str` in function `nessclient.client.Client.panic` [bad-argument-type] ERROR homeassistant/components/ness_alarm/alarm_control_panel.py:101:62-103:14: No matching overload found for function `dict.get` called with arguments: (ArmingMode | None, Literal[AlarmControlPanelState.ARMED_AWAY]) [no-matching-overload] -ERROR homeassistant/components/nest/__init__.py:175:41-51: Cannot set item in `dict[str, datetime | str]` [unsupported-operation] -ERROR homeassistant/components/nest/__init__.py:177:36-53: Cannot set item in `dict[str, datetime | str]` [unsupported-operation] -ERROR homeassistant/components/nest/__init__.py:286:49-66: `subscription_name` may be uninitialized [unbound-name] -ERROR homeassistant/components/nest/__init__.py:288:48-65: `subscription_name` may be uninitialized [unbound-name] -ERROR homeassistant/components/nest/__init__.py:295:13-30: `subscription_name` may be uninitialized [unbound-name] -ERROR homeassistant/components/nest/__init__.py:407:57-69: `content_type` may be uninitialized [unbound-name] +ERROR homeassistant/components/nest/__init__.py:176:41-51: Cannot set item in `dict[str, datetime | str]` [unsupported-operation] +ERROR homeassistant/components/nest/__init__.py:178:36-53: Cannot set item in `dict[str, datetime | str]` [unsupported-operation] +ERROR homeassistant/components/nest/__init__.py:306:49-66: `subscription_name` may be uninitialized [unbound-name] +ERROR homeassistant/components/nest/__init__.py:308:48-65: `subscription_name` may be uninitialized [unbound-name] +ERROR homeassistant/components/nest/__init__.py:315:13-30: `subscription_name` may be uninitialized [unbound-name] +ERROR homeassistant/components/nest/__init__.py:427:57-69: `content_type` may be uninitialized [unbound-name] ERROR homeassistant/components/nest/api.py:70:24-76: `datetime` is not assignable to attribute `expiry` with type `None` [bad-assignment] ERROR homeassistant/components/nest/api.py:132:68-85: `subscription_name` may be uninitialized [unbound-name] ERROR homeassistant/components/nest/camera.py:315:27-45: Object of class `NoneType` has no attribute `stop_stream` [missing-attribute] @@ -17139,7 +17379,7 @@ ERROR homeassistant/components/nexia/config_flow.py:105:54-58: `info` may be uni ERROR homeassistant/components/nexia/coordinator.py:23:5-17: Class member `NexiaDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/nexia/coordinator.py:44:16-46: Returned type `dict[str, Any] | None` is not assignable to declared return type `dict[str, Any]` [bad-return] ERROR homeassistant/components/nexia/entity.py:59:25-50: Argument `set[tuple[str, int | str]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] -ERROR homeassistant/components/nexia/entity.py:110:9-31: `dict[str, object]` is not assignable to attribute `_attr_device_info` with type `TypedDict[DeviceInfo] | None` [bad-assignment] +ERROR homeassistant/components/nexia/entity.py:110:9-31: `dict[str, object]` is not assignable to attribute `_attr_device_info` with type `DeviceInfo | None` [bad-assignment] ERROR homeassistant/components/nexia/scene.py:45:39-63: Argument `int` is not assignable to parameter `unique_id` with type `str` in function `homeassistant.components.nexia.entity.NexiaEntity.__init__` [bad-argument-type] ERROR homeassistant/components/nexia/sensor.py:211:14-32: Class member `NexiaThermostatSensor._attr_device_class` overrides parent class `NexiaThermostatEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/nexia/sensor.py:251:14-32: Class member `NexiaThermostatZoneSensor._attr_device_class` overrides parent class `NexiaThermostatZoneEntity` in an inconsistent manner [bad-override] @@ -17888,7 +18128,6 @@ ERROR homeassistant/components/nice_go/__init__.py:51:12-21: `unload_ok` may be ERROR homeassistant/components/nice_go/coordinator.py:63:5-17: Class member `NiceGOUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/nice_go/cover.py:42:5-29: Class member `NiceGOCoverEntity._attr_supported_features` overrides parent class `NiceGOEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/nice_go/switch.py:54:5-23: Class member `NiceGOSwitchEntity._attr_device_class` overrides parent class `NiceGOEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/nice_go/util.py:34:24-31: `Args[P]` is not subscriptable [unsupported-operation] ERROR homeassistant/components/nightscout/__init__.py:39:14-25: Object of class `ServerStatus` has no attribute `name` [missing-attribute] ERROR homeassistant/components/nightscout/__init__.py:40:20-34: Object of class `ServerStatus` has no attribute `version` [missing-attribute] ERROR homeassistant/components/nightscout/config_flow.py:29:12-27: Object of class `ServerStatus` has no attribute `settings` [missing-attribute] @@ -17899,7 +18138,6 @@ ERROR homeassistant/components/niko_home_control/climate.py:97:55-73: Cannot ind ERROR homeassistant/components/niko_home_control/cover.py:35:5-29: Class member `NikoHomeControlCover._attr_supported_features` overrides parent class `NikoHomeControlEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/niko_home_control/cover.py:35:5-29: Class member `NikoHomeControlCover._attr_supported_features` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/niko_home_control/cover.py:38:5-12: Class member `NikoHomeControlCover._action` overrides parent class `NikoHomeControlEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/niko_home_control/entity.py:26:14-29: Class member `NikoHomeControlEntity._attr_unique_id` overrides parent class `Entity` in an inconsistent manner [bad-override] ERROR homeassistant/components/niko_home_control/light.py:40:5-12: Class member `NikoHomeControlLight._action` overrides parent class `NikoHomeControlEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/niko_home_control/light.py:52:37-49: `int | str` is not assignable to attribute `_attr_brightness` with type `int | None` [bad-assignment] ERROR homeassistant/components/niko_home_control/light.py:65:28-37: `>` is not supported between `str` and `Literal[0]` [unsupported-operation] @@ -17907,7 +18145,7 @@ ERROR homeassistant/components/niko_home_control/light.py:67:37-42: `int | str` ERROR homeassistant/components/niko_home_control/scene.py:36:15-36: Object of class `NHCAction` has no attribute `activate` [missing-attribute] ERROR homeassistant/components/nilu/air_quality.py:8:1-23:2: Could not find import of `niluclient` [missing-import] ERROR homeassistant/components/nina/binary_sensor.py:61:5-23: Class member `NINAMessage._attr_device_class` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/nina/config_flow.py:176:9-31: Class member `NinaConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] +ERROR homeassistant/components/nina/config_flow.py:179:9-31: Class member `NinaConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/nina/coordinator.py:53:5-17: Class member `NINADataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/nintendo_parental_controls/coordinator.py:30:5-17: Class member `NintendoUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/nintendo_parental_controls/number.py:41:9-12: Unexpected keyword argument `key` in function `NintendoParentalControlsNumberEntityDescription.__init__` [unexpected-keyword] @@ -17962,8 +18200,6 @@ ERROR homeassistant/components/nmap_tracker/__init__.py:418:16-50: `in` is not s ERROR homeassistant/components/nmap_tracker/__init__.py:430:50-56: Argument `str | Unknown | None` is not assignable to parameter `vendor` with type `str` in function `human_readable_name` [bad-argument-type] ERROR homeassistant/components/nmap_tracker/__init__.py:432:54-60: Argument `str | Unknown | None` is not assignable to parameter `manufacturer` with type `str` in function `NmapDevice.__init__` [bad-argument-type] ERROR homeassistant/components/nmap_tracker/config_flow.py:262:9-31: Class member `NmapTrackerConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/nmbs/sensor.py:118:14-45: Class member `NMBSLiveBoard.entity_registry_enabled_default` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/nmbs/sensor.py:118:48-53: `Literal[False]` is not assignable to attribute `entity_registry_enabled_default` with type `(self: Self@NMBSLiveBoard) -> bool` [bad-assignment] ERROR homeassistant/components/nmbs/sensor.py:261:34-38: Cannot set item in `dict[str, Never]` [unsupported-operation] ERROR homeassistant/components/nmbs/sensor.py:262:42-46: Cannot set item in `dict[str, Never]` [unsupported-operation] ERROR homeassistant/components/nmbs/sensor.py:264:34-59: Cannot set item in `dict[str, Never]` [unsupported-operation] @@ -18087,11 +18323,11 @@ ERROR homeassistant/components/ntfy/event.py:56:5-23: Class member `NtfyEventEnt ERROR homeassistant/components/ntfy/event.py:57:9-12: Unexpected keyword argument `key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ntfy/event.py:58:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ntfy/event.py:59:9-13: Unexpected keyword argument `name` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/ntfy/notify.py:90:5-23: Class member `NtfyNotifyEntity.entity_description` overrides parent class `NtfyBaseEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/ntfy/notify.py:91:9-12: Unexpected keyword argument `key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/ntfy/notify.py:92:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/ntfy/notify.py:93:9-13: Unexpected keyword argument `name` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/ntfy/notify.py:95:5-29: Class member `NtfyNotifyEntity._attr_supported_features` overrides parent class `NtfyBaseEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/ntfy/notify.py:93:5-23: Class member `NtfyNotifyEntity.entity_description` overrides parent class `NtfyBaseEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/ntfy/notify.py:94:9-12: Unexpected keyword argument `key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/ntfy/notify.py:95:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/ntfy/notify.py:96:9-13: Unexpected keyword argument `name` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/ntfy/notify.py:98:5-29: Class member `NtfyNotifyEntity._attr_supported_features` overrides parent class `NtfyBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/ntfy/sensor.py:64:9-12: Unexpected keyword argument `key` in function `NtfySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ntfy/sensor.py:65:9-24: Unexpected keyword argument `translation_key` in function `NtfySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ntfy/sensor.py:69:9-12: Unexpected keyword argument `key` in function `NtfySensorEntityDescription.__init__` [unexpected-keyword] @@ -18797,19 +19033,19 @@ ERROR homeassistant/components/octoprint/config_flow.py:158:40-59: Object of cla ERROR homeassistant/components/octoprint/coordinator.py:29:5-17: Class member `OctoprintDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/octoprint/number.py:93:5-23: Class member `OctoPrintTemperatureNumber._attr_device_class` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/octoprint/sensor.py:31:9-34:41: Returned type `OctoprintPrinterInfo | PrinterFlags | PrinterState | bool` is not assignable to declared return type `bool` [bad-return] -ERROR homeassistant/components/octoprint/sensor.py:285:16-33: Object of class `NoneType` has no attribute `name` [missing-attribute] -ERROR homeassistant/components/octoprint/sensor.py:293:16-41: Returned type `OctoprintJobInfo | Unknown` is not assignable to declared return type `bool` [bad-return] -ERROR homeassistant/components/octoprint/sensor.py:293:24-41: Object of class `NoneType` has no attribute `name` [missing-attribute] -ERROR homeassistant/components/octoprint/sensor.py:316:16-33: Object of class `NoneType` has no attribute `size` [missing-attribute] -ERROR homeassistant/components/octoprint/sensor.py:324:16-41: Returned type `OctoprintJobInfo | Unknown` is not assignable to declared return type `bool` [bad-return] -ERROR homeassistant/components/octoprint/sensor.py:324:24-41: Object of class `NoneType` has no attribute `size` [missing-attribute] +ERROR homeassistant/components/octoprint/sensor.py:290:16-33: Object of class `NoneType` has no attribute `name` [missing-attribute] +ERROR homeassistant/components/octoprint/sensor.py:298:16-41: Returned type `OctoprintJobInfo | Unknown` is not assignable to declared return type `bool` [bad-return] +ERROR homeassistant/components/octoprint/sensor.py:298:24-41: Object of class `NoneType` has no attribute `name` [missing-attribute] +ERROR homeassistant/components/octoprint/sensor.py:321:16-33: Object of class `NoneType` has no attribute `size` [missing-attribute] +ERROR homeassistant/components/octoprint/sensor.py:329:16-41: Returned type `OctoprintJobInfo | Unknown` is not assignable to declared return type `bool` [bad-return] +ERROR homeassistant/components/octoprint/sensor.py:329:24-41: Object of class `NoneType` has no attribute `size` [missing-attribute] ERROR homeassistant/components/oem/climate.py:7:1-37: Could not find import of `oemthermostat` [missing-import] ERROR homeassistant/components/ohmconnect/sensor.py:88:60-63: `url` is uninitialized [unbound-name] ERROR homeassistant/components/ohme/button.py:32:9-12: Unexpected keyword argument `key` in function `OhmeButtonDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ohme/button.py:33:9-24: Unexpected keyword argument `translation_key` in function `OhmeButtonDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ohme/button.py:59:5-23: Class member `OhmeButton.entity_description` overrides parent class `OhmeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/ohme/button.py:59:5-23: Class member `OhmeButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/ohme/coordinator.py:36:5-17: Class member `OhmeBaseCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/ohme/coordinator.py:35:5-17: Class member `OhmeBaseCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/ohme/entity.py:28:5-23: Class member `OhmeEntity.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/ohme/number.py:32:9-12: Unexpected keyword argument `key` in function `OhmeNumberDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ohme/number.py:33:9-24: Unexpected keyword argument `translation_key` in function `OhmeNumberDescription.__init__` [unexpected-keyword] @@ -18833,11 +19069,8 @@ ERROR homeassistant/components/ohme/sensor.py:79:9-12: Unexpected keyword argume ERROR homeassistant/components/ohme/sensor.py:80:9-24: Unexpected keyword argument `translation_key` in function `OhmeSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ohme/sensor.py:87:9-12: Unexpected keyword argument `key` in function `OhmeSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ohme/sensor.py:88:9-24: Unexpected keyword argument `translation_key` in function `OhmeSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/ohme/sensor.py:96:9-12: Unexpected keyword argument `key` in function `OhmeSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/ohme/sensor.py:97:9-24: Unexpected keyword argument `translation_key` in function `OhmeSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/ohme/sensor.py:102:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `OhmeSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/ohme/sensor.py:130:5-23: Class member `OhmeSensor.entity_description` overrides parent class `OhmeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/ohme/sensor.py:130:5-23: Class member `OhmeSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/ohme/sensor.py:113:5-23: Class member `OhmeSensor.entity_description` overrides parent class `OhmeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/ohme/sensor.py:113:5-23: Class member `OhmeSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/ohme/switch.py:40:9-12: Unexpected keyword argument `key` in function `OhmeConfigSwitchDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ohme/switch.py:41:9-24: Unexpected keyword argument `translation_key` in function `OhmeConfigSwitchDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ohme/switch.py:42:9-24: Unexpected keyword argument `entity_category` in function `OhmeConfigSwitchDescription.__init__` [unexpected-keyword] @@ -18892,8 +19125,6 @@ ERROR homeassistant/components/onboarding/__init__.py:122:12-16: `data` may be u ERROR homeassistant/components/onboarding/__init__.py:125:51-55: `data` may be uninitialized [unbound-name] ERROR homeassistant/components/onboarding/__init__.py:127:35-39: `data` may be uninitialized [unbound-name] ERROR homeassistant/components/ondilo_ico/coordinator.py:47:5-17: Class member `OndiloIcoPoolsCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/ondilo_ico/coordinator.py:174:18-33: Class member `OndiloIcoMeasuresCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/ondilo_ico/coordinator.py:174:36-54: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@OndiloIcoMeasuresCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/ondilo_ico/coordinator.py:181:55-68: Argument `str` is not assignable to parameter `pool_id` with type `int` in function `ondilo.ondilo.Ondilo.get_last_pool_measures` [bad-argument-type] ERROR homeassistant/components/ondilo_ico/sensor.py:34:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/ondilo_ico/sensor.py:40:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] @@ -19100,10 +19331,11 @@ ERROR homeassistant/components/onvif/switch.py:84:5-23: Class member `ONVIFSwitc ERROR homeassistant/components/open_meteo/coordinator.py:30:5-17: Class member `OpenMeteoDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/open_router/ai_task.py:61:16-44: Object of class `ToolResultContent` has no attribute `content` [missing-attribute] ERROR homeassistant/components/open_router/entity.py:293:62-76: No matching overload found for function `openai.resources.chat.completions.completions.AsyncCompletions.create` called with arguments: (**dict[str, dict[str, bool] | dict[str, str] | str | Any]) [no-matching-overload] -ERROR homeassistant/components/openai_conversation/__init__.py:181:63-77: No matching overload found for function `openai.resources.responses.responses.AsyncResponses.create` called with arguments: (**dict[str, bool | list[TypedDict[ApplyPatchCall] | TypedDict[ApplyPatchCallOutput] | TypedDict[ComputerCallOutput] | TypedDict[EasyInputMessageParam] | TypedDict[FunctionCallOutput] | TypedDict[ImageGenerationCall] | TypedDict[ItemReference] | TypedDict[LocalShellCall] | TypedDict[LocalShellCallOutput] | TypedDict[McpApprovalRequest] | TypedDict[McpApprovalResponse] | TypedDict[McpCall] | TypedDict[McpListTools] | TypedDict[Message] | TypedDict[ResponseCodeInterpreterToolCallParam] | TypedDict[ResponseComputerToolCallParam] | TypedDict[ResponseCustomToolCallOutputParam] | TypedDict[ResponseCustomToolCallParam] | TypedDict[ResponseFileSearchToolCallParam] | TypedDict[ResponseFunctionToolCallParam] | TypedDict[ResponseFunctionWebSearchParam] | TypedDict[ResponseOutputMessageParam] | TypedDict[ResponseReasoningItemParam] | TypedDict[ShellCall] | TypedDict[ShellCallOutput]] | str | Any | None]) [no-matching-overload] +ERROR homeassistant/components/openai_conversation/__init__.py:181:63-77: No matching overload found for function `openai.resources.responses.responses.AsyncResponses.create` called with arguments: (**dict[str, bool | list[ResponseInputItemParam] | str | Any | None]) [no-matching-overload] ERROR homeassistant/components/openai_conversation/__init__.py:246:43-88: Argument `BoundMethod[AsyncModels, (self: AsyncModels, *, extra_headers: Mapping[str, Omit | str] | None = None, extra_query: Mapping[str, object] | None = None, extra_body: object | None = None, timeout: NotGiven | Timeout | float | None = ...) -> AsyncPaginator[Model, AsyncPage[Model]]]` is not assignable to parameter `target` with type `(**tuple[*@_]) -> @_` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/openai_conversation/ai_task.py:82:16-44: Object of class `ToolResultContent` has no attribute `content` [missing-attribute] ERROR homeassistant/components/openai_conversation/config_flow.py:101:39-84: Argument `BoundMethod[AsyncModels, (self: AsyncModels, *, extra_headers: Mapping[str, Omit | str] | None = None, extra_query: Mapping[str, object] | None = None, extra_body: object | None = None, timeout: NotGiven | Timeout | float | None = ...) -> AsyncPaginator[Model, AsyncPage[Model]]]` is not assignable to parameter `target` with type `(**tuple[*@_]) -> @_` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/openai_conversation/entity.py:273:5-452:80: `int | None` is not assignable to `None` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR homeassistant/components/openai_conversation/entity.py:390:13-30: `current_tool_call` is uninitialized [unbound-name] ERROR homeassistant/components/openai_conversation/entity.py:392:13-30: `current_tool_call` is uninitialized [unbound-name] ERROR homeassistant/components/openevse/sensor.py:7:8-20: Could not find import of `openevsewifi` [missing-import] @@ -19821,8 +20053,6 @@ ERROR homeassistant/components/otbr/websocket_api.py:234:52-74: `thread_dataset_ ERROR homeassistant/components/otp/config_flow.py:93:54-95:14: Unpacked argument `tuple[Any]` is not assignable to parameter `*args` with type `tuple[str, datetime | None, int]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/otp/config_flow.py:106:66-110:10: Unpacked argument `tuple[Any, Literal['Home Assistant']]` is not assignable to parameter `*args` with type `tuple[str | None, str | None, str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/otp/sensor.py:41:5-23: Class member `TOTPSensor._attr_native_value` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/otp/sensor.py:51:14-25: Class member `TOTPSensor.device_info` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/otp/sensor.py:51:28-55:10: `TypedDict[DeviceInfo]` is not assignable to attribute `device_info` with type `(self: Self@TOTPSensor) -> TypedDict[DeviceInfo] | None` [bad-assignment] ERROR homeassistant/components/ourgroceries/__init__.py:47:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/ourgroceries/coordinator.py:25:5-17: Class member `OurGroceriesDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/overkiz/alarm_control_panel.py:143:9-12: Unexpected keyword argument `key` in function `OverkizAlarmDescription.__init__` [unexpected-keyword] @@ -19929,10 +20159,6 @@ ERROR homeassistant/components/overkiz/climate/somfy_heating_temperature_interfa ERROR homeassistant/components/overkiz/climate/somfy_thermostat.py:59:5-29: Class member `SomfyThermostat._attr_supported_features` overrides parent class `OverkizEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/overkiz/climate/valve_heating_temperature_interface.py:54:5-29: Class member `ValveHeatingTemperatureInterface._attr_supported_features` overrides parent class `OverkizEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/overkiz/coordinator.py:42:5-17: Class member `OverkizDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/overkiz/coordinator.py:116:18-33: Class member `OverkizDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/overkiz/coordinator.py:116:36-65: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@OverkizDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/overkiz/coordinator.py:139:32-47: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@OverkizDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/overkiz/coordinator.py:215:39-59: `timedelta` is not assignable to attribute `update_interval` with type `(self: OverkizDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/overkiz/coordinator.py:227:36-49: Cannot delete item in `dict[str, dict[str, str]]` [unsupported-operation] ERROR homeassistant/components/overkiz/light.py:47:14-41: Class member `OverkizLight._attr_supported_color_modes` overrides parent class `LightEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/overkiz/number.py:79:9-12: Unexpected keyword argument `key` in function `OverkizNumberDescription.__init__` [unexpected-keyword] @@ -20581,9 +20807,9 @@ ERROR homeassistant/components/philips_js/light.py:201:45-68: Argument `str | No ERROR homeassistant/components/philips_js/light.py:219:47-58: Argument `str | None` is not assignable to parameter `effect_string` with type `str` in function `AmbilightEffect.from_str` [bad-argument-type] ERROR homeassistant/components/philips_js/light.py:237:43-60: Argument `str | None` is not assignable to parameter `effect_string` with type `str` in function `AmbilightEffect.from_str` [bad-argument-type] ERROR homeassistant/components/philips_js/light.py:252:37-58: `float` is not assignable to attribute `_attr_brightness` with type `int | None` [bad-assignment] -ERROR homeassistant/components/philips_js/light.py:306:39-46: `dict[str, dict[str, int] | str | None]` is not assignable to TypedDict key `colorSettings` with type `TypedDict[AmbilightColorSettingsType]` [bad-typed-dict-key] +ERROR homeassistant/components/philips_js/light.py:306:39-46: `dict[str, dict[str, int] | str | None]` is not assignable to TypedDict key `colorSettings` with type `AmbilightColorSettingsType` [bad-typed-dict-key] ERROR homeassistant/components/philips_js/light.py:307:20-27: TypedDict `AmbilightCurrentConfiguration` does not have key `speed` [bad-typed-dict-key] -ERROR homeassistant/components/philips_js/light.py:310:39-46: `dict[str, dict[str, int] | str | None]` is not assignable to TypedDict key `audioSettings` with type `TypedDict[AmbilightAudioSettingsType]` [bad-typed-dict-key] +ERROR homeassistant/components/philips_js/light.py:310:39-46: `dict[str, dict[str, int] | str | None]` is not assignable to TypedDict key `audioSettings` with type `AmbilightAudioSettingsType` [bad-typed-dict-key] ERROR homeassistant/components/philips_js/light.py:311:20-28: TypedDict `AmbilightCurrentConfiguration` does not have key `tuning` [bad-typed-dict-key] ERROR homeassistant/components/philips_js/light.py:321:28-44: `str | None` is not assignable to TypedDict key `menuSetting` with type `str` [bad-typed-dict-key] ERROR homeassistant/components/philips_js/media_player.py:68:5-23: Class member `PhilipsTVMediaPlayer._attr_device_class` overrides parent class `PhilipsJsEntity` in an inconsistent manner [bad-override] @@ -20764,12 +20990,10 @@ ERROR homeassistant/components/playstation_network/media_player.py:91:5-23: Clas ERROR homeassistant/components/playstation_network/notify.py:111:7-41: Field `entity_description` is declared `EntityDescription` in ancestor `class PlaystationNetworkServiceEntity: ... `, which is not assignable to the type `NotifyEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/playstation_network/notify.py:150:5-16: Class member `PlaystationNetworkNotifyEntity.coordinator` overrides parent class `PlaystationNetworkNotifyBaseEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/playstation_network/notify.py:160:14-32: Class member `PlaystationNetworkNotifyEntity.entity_description` overrides parent class `PlaystationNetworkNotifyBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/playstation_network/notify.py:161:13-16: Unexpected keyword argument `key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/playstation_network/notify.py:162:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/playstation_network/notify.py:163:13-37: Unexpected keyword argument `translation_placeholders` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/playstation_network/notify.py:179:5-16: Class member `PlaystationNetworkDirectMessageNotifyEntity.coordinator` overrides parent class `PlaystationNetworkNotifyBaseEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/playstation_network/notify.py:188:14-32: Class member `PlaystationNetworkDirectMessageNotifyEntity.entity_description` overrides parent class `PlaystationNetworkNotifyBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/playstation_network/notify.py:189:13-16: Unexpected keyword argument `key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/playstation_network/notify.py:190:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/playstation_network/notify.py:191:13-37: Unexpected keyword argument `translation_placeholders` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] @@ -20919,6 +21143,7 @@ ERROR homeassistant/components/plex/server.py:116:38-85: `MyPlexAccount` is not ERROR homeassistant/components/plex/server.py:130:45-48: `float` is not assignable to attribute `_plextv_client_timestamp` with type `int` [bad-assignment] ERROR homeassistant/components/plex/server.py:131:36-135:14: `list[Unknown]` is not assignable to attribute `_plextv_clients` with type `None` [bad-assignment] ERROR homeassistant/components/plex/server.py:170:33-172:14: `PlexServer` is not assignable to attribute `_plex_server` with type `None` [bad-assignment] +ERROR homeassistant/components/plex/server.py:192:17-193:46: `BaseException | SSLError | None` is not assignable to `SSLError` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR homeassistant/components/plex/server.py:218:31-63: Object of class `NoneType` has no attribute `systemAccounts` [missing-attribute] ERROR homeassistant/components/plex/server.py:243:25-50: Object of class `NoneType` has no attribute `version` [missing-attribute] ERROR homeassistant/components/plex/server.py:294:13-40: Object of class `NoneType` has no attribute `update_media` [missing-attribute] @@ -21075,30 +21300,95 @@ ERROR homeassistant/components/point/sensor.py:26:9-12: Unexpected keyword argum ERROR homeassistant/components/point/sensor.py:32:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/point/sensor.py:38:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/point/sensor.py:81:14-32: Class member `MinutPointSensor.entity_description` overrides parent class `MinutPointEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/pooldose/binary_sensor.py:25:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:26:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:28:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:31:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:32:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:34:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:37:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:38:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:40:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:43:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:44:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:46:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:49:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:50:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:52:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:55:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:56:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:58:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:61:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:62:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:64:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:67:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:68:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:70:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:73:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:74:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:76:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:77:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:80:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:81:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:83:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:84:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:87:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:88:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:90:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:91:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/binary_sensor.py:122:7-27: Field `entity_description` is declared `EntityDescription` in ancestor `class PooldoseEntity: ... +`, which is not assignable to the type `BinarySensorEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/pooldose/coordinator.py:25:5-17: Class member `PooldoseCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/pooldose/sensor.py:39:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:43:37-40: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:45:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:46:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:51:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:52:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:56:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:57:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:62:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:63:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:64:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:69:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:70:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:71:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:72:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:32:9-12: Unexpected keyword argument `key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:33:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:34:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:38:9-12: Unexpected keyword argument `key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:39:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:40:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:45:9-12: Unexpected keyword argument `key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:46:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:47:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:51:9-12: Unexpected keyword argument `key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:52:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:53:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:57:9-12: Unexpected keyword argument `key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:58:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:59:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:63:9-12: Unexpected keyword argument `key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:64:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:65:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:70:9-12: Unexpected keyword argument `key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:71:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:72:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:77:9-12: Unexpected keyword argument `key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:78:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:79:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:83:9-12: Unexpected keyword argument `key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:84:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:85:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/number.py:111:7-21: Field `entity_description` is declared `EntityDescription` in ancestor `class PooldoseEntity: ... +`, which is not assignable to the type `NumberEntityDescription` implied by multiple inheritance [inconsistent-inheritance] +ERROR homeassistant/components/pooldose/sensor.py:40:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:44:37-40: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:46:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:47:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:52:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:53:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:57:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:58:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:63:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:64:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:70:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:71:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:72:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:77:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:78:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:79:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:81:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:80:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:85:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:86:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:87:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:88:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:89:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:93:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:94:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:95:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] @@ -21113,34 +21403,49 @@ ERROR homeassistant/components/pooldose/sensor.py:111:9-24: Unexpected keyword a ERROR homeassistant/components/pooldose/sensor.py:112:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:117:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:118:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:120:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:121:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:119:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:120:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:125:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:126:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:127:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:128:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:128:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:129:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:133:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:134:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:135:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:138:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:142:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:143:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:144:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:147:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:151:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:152:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:153:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:154:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:136:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:141:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:142:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:143:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:146:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:150:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:151:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:152:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:155:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:159:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:160:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/pooldose/sensor.py:161:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:164:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:168:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:169:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:170:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:173:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/pooldose/sensor.py:208:5-23: Class member `PooldoseSensor.entity_description` overrides parent class `PooldoseEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/pooldose/sensor.py:208:5-23: Class member `PooldoseSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/pooldose/sensor.py:162:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:167:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:168:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:169:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:172:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:176:9-12: Unexpected keyword argument `key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:177:9-24: Unexpected keyword argument `translation_key` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:178:9-24: Unexpected keyword argument `entity_category` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:181:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PooldoseSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/sensor.py:216:5-23: Class member `PooldoseSensor.entity_description` overrides parent class `PooldoseEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/pooldose/sensor.py:216:5-23: Class member `PooldoseSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/pooldose/switch.py:24:9-12: Unexpected keyword argument `key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/switch.py:25:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/switch.py:26:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/switch.py:29:9-12: Unexpected keyword argument `key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/switch.py:30:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/switch.py:31:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/switch.py:34:9-12: Unexpected keyword argument `key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/switch.py:35:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/switch.py:36:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/pooldose/switch.py:61:7-21: Field `entity_description` is declared `EntityDescription` in ancestor `class PooldoseEntity: ... +`, which is not assignable to the type `SwitchEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/poolsense/binary_sensor.py:18:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/poolsense/binary_sensor.py:19:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/poolsense/binary_sensor.py:23:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -21330,7 +21635,7 @@ ERROR homeassistant/components/powerwall/sensor.py:319:5-23: Class member `Power ERROR homeassistant/components/powerwall/sensor.py:392:5-23: Class member `PowerWallBatterySensor.entity_description` overrides parent class `BatteryEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/powerwall/sensor.py:392:5-23: Class member `PowerWallBatterySensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/powerwall/switch.py:36:5-23: Class member `PowerwallOffGridEnabledEntity._attr_device_class` overrides parent class `PowerWallEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/private_ble_device/device_tracker.py:30:7-31: Field `_attr_device_info` is declared `TypedDict[DeviceInfo] | None` in ancestor `class BasePrivateDeviceEntity: ... +ERROR homeassistant/components/private_ble_device/device_tracker.py:30:7-31: Field `_attr_device_info` is declared `DeviceInfo | None` in ancestor `class BasePrivateDeviceEntity: ... `, which is not assignable to the type `None` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/private_ble_device/sensor.py:41:9-12: Unexpected keyword argument `key` in function `PrivateDeviceSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/private_ble_device/sensor.py:44:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `PrivateDeviceSensorEntityDescription.__init__` [unexpected-keyword] @@ -21369,12 +21674,13 @@ ERROR homeassistant/components/probe_plus/sensor.py:82:33-66: Object of class `N ERROR homeassistant/components/probe_plus/sensor.py:83:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProbePlusSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/probe_plus/sensor.py:101:5-23: Class member `ProbeSensor.entity_description` overrides parent class `ProbePlusEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/probe_plus/sensor.py:101:5-23: Class member `ProbeSensor.entity_description` overrides parent class `RestoreSensor` in an inconsistent manner [bad-override] +ERROR homeassistant/components/profiler/__init__.py:460:5-26: Could not find import of `guppy` [missing-import] ERROR homeassistant/components/progettihwsw/binary_sensor.py:69:38-53: Cannot index into `dict[str, Any]` [bad-index] ERROR homeassistant/components/progettihwsw/switch.py:85:38-53: Cannot index into `dict[str, Any]` [bad-index] ERROR homeassistant/components/proliphix/climate.py:7:8-17: Could not find import of `proliphix` [missing-import] -ERROR homeassistant/components/prometheus/__init__.py:471:20-25: `value` may be uninitialized [unbound-name] -ERROR homeassistant/components/prometheus/__init__.py:537:17-22: `value` may be uninitialized [unbound-name] -ERROR homeassistant/components/prometheus/__init__.py:572:15-19: `temp` may be uninitialized [unbound-name] +ERROR homeassistant/components/prometheus/__init__.py:449:15-19: `temp` may be uninitialized [unbound-name] +ERROR homeassistant/components/prometheus/__init__.py:536:20-25: `value` may be uninitialized [unbound-name] +ERROR homeassistant/components/prometheus/__init__.py:588:17-22: `value` may be uninitialized [unbound-name] ERROR homeassistant/components/proximity/config_flow.py:90:9-31: Class member `ProximityConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/proximity/coordinator.py:75:5-17: Class member `ProximityDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/proximity/sensor.py:33:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] @@ -21397,7 +21703,7 @@ ERROR homeassistant/components/proxy/camera.py:278:32-43: `bytes` is not assigna ERROR homeassistant/components/prusalink/__init__.py:128:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/prusalink/binary_sensor.py:48:13-16: Unexpected keyword argument `key` in function `PrusaLinkBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/prusalink/binary_sensor.py:49:13-28: Unexpected keyword argument `translation_key` in function `PrusaLinkBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/prusalink/binary_sensor.py:50:22-46: Argument `(data: TypedDict[PrinterInfo]) -> bool | None` is not assignable to parameter `value_fn` with type `(TypedDict[PrinterInfo]) -> bool` in function `PrusaLinkBinarySensorEntityDescription.__init__` [bad-argument-type] +ERROR homeassistant/components/prusalink/binary_sensor.py:50:22-46: Argument `(data: PrinterInfo) -> bool | None` is not assignable to parameter `value_fn` with type `(PrinterInfo) -> bool` in function `PrusaLinkBinarySensorEntityDescription.__init__` [bad-argument-type] ERROR homeassistant/components/prusalink/binary_sensor.py:51:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `PrusaLinkBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/prusalink/binary_sensor.py:81:5-23: Class member `PrusaLinkBinarySensorEntity.entity_description` overrides parent class `PrusaLinkEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/prusalink/binary_sensor.py:81:5-23: Class member `PrusaLinkBinarySensorEntity.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] @@ -21416,9 +21722,7 @@ ERROR homeassistant/components/prusalink/config_flow.py:48:65-73: TypedDict `Ver ERROR homeassistant/components/prusalink/config_flow.py:79:30-40: TypedDict `VersionInfo` does not have key `hostname` [bad-typed-dict-key] ERROR homeassistant/components/prusalink/coordinator.py:41:5-17: Class member `PrusaLinkUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/prusalink/coordinator.py:55:55-59: Argument `None` is not assignable to parameter `data` with type `T` in function `PrusaLinkUpdateCoordinator._get_update_interval` [bad-argument-type] -ERROR homeassistant/components/prusalink/coordinator.py:73:14-29: Class member `PrusaLinkUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/prusalink/coordinator.py:73:32-63: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@PrusaLinkUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/prusalink/coordinator.py:118:29-68: `TypedDict[PrinterInfo]` is not assignable to upper bound `TypedDict[JobInfo] | TypedDict[LegacyPrinterStatus] | TypedDict[PrinterStatus]` of type variable `T` [bad-specialization] +ERROR homeassistant/components/prusalink/coordinator.py:118:29-68: `PrinterInfo` is not assignable to upper bound `JobInfo | LegacyPrinterStatus | PrinterStatus` of type variable `T` [bad-specialization] ERROR homeassistant/components/prusalink/sensor.py:58:13-16: Unexpected keyword argument `key` in function `PrusaLinkSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/prusalink/sensor.py:59:13-17: Unexpected keyword argument `name` in function `PrusaLinkSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/prusalink/sensor.py:60:46-76: Object of class `PrinterState` has no attribute `lower` [missing-attribute] @@ -21469,8 +21773,8 @@ ERROR homeassistant/components/prusalink/sensor.py:230:5-23: Class member `Prusa ERROR homeassistant/components/ps4/config_flow.py:67:56-86: Unpacked argument `tuple[dict_keys[int, str]]` is not assignable to parameter `*args` with type `tuple[list[Unknown]]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/ps4/config_flow.py:173:72-180:14: Unpacked argument `tuple[Any, str | None, str, Literal['Home-Assistant'], Literal[1988]]` is not assignable to parameter `*args` with type `tuple[str, str, str, Unknown | None, int | Unknown]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/ps4/media_player.py:156:38-71: `DDPProtocol` is not assignable to attribute `ddp_protocol` with type `None` [bad-assignment] -ERROR homeassistant/components/ps4/media_player.py:205:54-75: Cannot index into `dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None]` [bad-index] -ERROR homeassistant/components/ps4/media_player.py:289:54-75: Cannot index into `dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None]` [bad-index] +ERROR homeassistant/components/ps4/media_player.py:205:54-75: Cannot index into `dict[str, JsonValueType]` [bad-index] +ERROR homeassistant/components/ps4/media_player.py:289:54-75: Cannot index into `dict[str, JsonValueType]` [bad-index] ERROR homeassistant/components/ps4/media_player.py:295:32-55: No matching overload found for function `dict.pop` called with arguments: (str | None) [no-matching-overload] ERROR homeassistant/components/pterodactyl/api.py:92:41-66: Cannot index into `str` [bad-index] ERROR homeassistant/components/pterodactyl/binary_sensor.py:19:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -21702,19 +22006,14 @@ ERROR homeassistant/components/qbittorrent/sensor.py:194:9-24: Unexpected keywor ERROR homeassistant/components/qbittorrent/sensor.py:197:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `QBittorrentSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/qbittorrent/sensor.py:200:9-12: Unexpected keyword argument `key` in function `QBittorrentSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/qbittorrent/sensor.py:201:9-24: Unexpected keyword argument `translation_key` in function `QBittorrentSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/qbittorrent/sensor.py:202:38-62: `count_torrents_in_states` is uninitialized [unbound-name] ERROR homeassistant/components/qbittorrent/sensor.py:205:9-12: Unexpected keyword argument `key` in function `QBittorrentSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/qbittorrent/sensor.py:206:9-24: Unexpected keyword argument `translation_key` in function `QBittorrentSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/qbittorrent/sensor.py:207:38-62: `count_torrents_in_states` is uninitialized [unbound-name] ERROR homeassistant/components/qbittorrent/sensor.py:212:9-12: Unexpected keyword argument `key` in function `QBittorrentSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/qbittorrent/sensor.py:213:9-24: Unexpected keyword argument `translation_key` in function `QBittorrentSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/qbittorrent/sensor.py:214:38-62: `count_torrents_in_states` is uninitialized [unbound-name] ERROR homeassistant/components/qbittorrent/sensor.py:219:9-12: Unexpected keyword argument `key` in function `QBittorrentSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/qbittorrent/sensor.py:220:9-24: Unexpected keyword argument `translation_key` in function `QBittorrentSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/qbittorrent/sensor.py:221:38-62: `count_torrents_in_states` is uninitialized [unbound-name] ERROR homeassistant/components/qbittorrent/sensor.py:226:9-12: Unexpected keyword argument `key` in function `QBittorrentSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/qbittorrent/sensor.py:227:9-24: Unexpected keyword argument `translation_key` in function `QBittorrentSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/qbittorrent/sensor.py:228:38-62: `count_torrents_in_states` is uninitialized [unbound-name] ERROR homeassistant/components/qbittorrent/sensor.py:254:5-23: Class member `QBittorrentSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/qbittorrent/sensor.py:254:5-23: Class member `QBittorrentSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/qbittorrent/switch.py:32:9-12: Unexpected keyword argument `key` in function `QBittorrentSwitchEntityDescription.__init__` [unexpected-keyword] @@ -21774,7 +22073,6 @@ ERROR homeassistant/components/qbus/sensor.py:334:5-23: Class member `QbusThermo ERROR homeassistant/components/qbus/sensor.py:347:5-23: Class member `QbusVentilationSensor._attr_device_class` overrides parent class `QbusEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/qbus/sensor.py:362:5-23: Class member `QbusWeatherSensor.entity_description` overrides parent class `QbusEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/qbus/sensor.py:362:5-23: Class member `QbusWeatherSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/qbus/sensor.py:378:18-30: Class member `QbusWeatherSensor.native_value` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/qbus/switch.py:47:5-23: Class member `QbusSwitch._attr_device_class` overrides parent class `QbusEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/qingping/binary_sensor.py:29:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/qingping/binary_sensor.py:33:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -21796,6 +22094,8 @@ ERROR homeassistant/components/qingping/sensor.py:101:9-40: Unexpected keyword a ERROR homeassistant/components/qingping/sensor.py:107:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/qingping/sensor.py:160:7-36: Field `entity_description` is declared `EntityDescription` in ancestor `class PassiveBluetoothProcessorEntity: ... `, which is not assignable to the type `SensorEntityDescription` implied by multiple inheritance [inconsistent-inheritance] +ERROR homeassistant/components/qld_bushfire/geo_location.py:215:31-56: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/components/qld_bushfire/geo_location.py:216:32-57: `None` is not subscriptable [unsupported-operation] ERROR homeassistant/components/qld_bushfire/geo_location.py:218:26-45: `str | None` is not assignable to attribute `_category` with type `None` [bad-assignment] ERROR homeassistant/components/qld_bushfire/geo_location.py:219:34-54: `datetime | None` is not assignable to attribute `_publication_date` with type `None` [bad-assignment] ERROR homeassistant/components/qld_bushfire/geo_location.py:220:30-48: `datetime | None` is not assignable to attribute `_updated_date` with type `None` [bad-assignment] @@ -22268,6 +22568,8 @@ ERROR homeassistant/components/recorder/models/state.py:107:9-31: Class member ` ERROR homeassistant/components/recorder/models/state.py:115:9-32: Class member `LazyState.last_reported_timestamp` overrides parent class `State` in an inconsistent manner [bad-override] ERROR homeassistant/components/recorder/statistics.py:1846:26-31: Argument `float | Any | None` is not assignable to parameter with type `float` [bad-argument-type] ERROR homeassistant/components/recorder/statistics.py:2249:52-69: `metadata_id_to_id` may be uninitialized [unbound-name] +ERROR homeassistant/components/recorder/statistics.py:2441:9-2445:10: Unpacked `dict[str, Any]` is not assignable to `StatisticsRow` [bad-unpacking] +ERROR homeassistant/components/recorder/statistics.py:2459:9-2466:10: Unpacked `dict[str, float | None]` is not assignable to `StatisticsRow` [bad-unpacking] ERROR homeassistant/components/recorder/system_health/__init__.py:75:12-19: `db_runs` may be uninitialized [unbound-name] ERROR homeassistant/components/recorder/table_managers/event_data.py:81:36-43: `data_id` may be uninitialized [unbound-name] ERROR homeassistant/components/recorder/table_managers/event_types.py:85:35-48: `event_type_id` may be uninitialized [unbound-name] @@ -22409,14 +22711,10 @@ ERROR homeassistant/components/renault/button.py:68:9-12: Unexpected keyword arg ERROR homeassistant/components/renault/button.py:70:9-24: Unexpected keyword argument `translation_key` in function `RenaultButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/renault/coordinator.py:35:5-17: Class member `RenaultDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/renault/coordinator.py:36:5-18: Class member `RenaultDataUpdateCoordinator.update_method` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/renault/coordinator.py:86:22-37: Class member `RenaultDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/renault/coordinator.py:86:40-44: `None` is not assignable to attribute `update_interval` with type `(self: Self@RenaultDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/renault/coordinator.py:102:36-40: `None` is not assignable to attribute `update_interval` with type `(self: Self@RenaultDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/renault/device_tracker.py:50:5-23: Class member `RenaultDeviceTracker.entity_description` overrides parent class `RenaultDataEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/renault/device_tracker.py:50:5-23: Class member `RenaultDeviceTracker.entity_description` overrides parent class `TrackerEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/renault/device_tracker.py:65:9-12: Unexpected keyword argument `key` in function `RenaultTrackerEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/renault/device_tracker.py:67:9-24: Unexpected keyword argument `translation_key` in function `RenaultTrackerEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/renault/renault_vehicle.py:103:47-60: `timedelta` is not assignable to attribute `update_interval` with type `(self: RenaultDataUpdateCoordinator[Unknown], value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/renault/select.py:52:5-23: Class member `RenaultSelectEntity.entity_description` overrides parent class `RenaultDataEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/renault/select.py:52:5-23: Class member `RenaultSelectEntity.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/renault/select.py:71:9-12: Unexpected keyword argument `key` in function `RenaultSelectEntityDescription.__init__` [unexpected-keyword] @@ -23549,198 +23847,189 @@ ERROR homeassistant/components/rituals_perfume_genie/switch.py:33:9-13: Unexpect ERROR homeassistant/components/rituals_perfume_genie/switch.py:34:9-24: Unexpected keyword argument `translation_key` in function `RitualsSwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/rituals_perfume_genie/switch.py:62:5-23: Class member `RitualsSwitchEntity.entity_description` overrides parent class `DiffuserEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/rituals_perfume_genie/switch.py:62:5-23: Class member `RitualsSwitchEntity.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/__init__.py:255:52-257:6: Unpacked argument `tuple[UserData, DeviceData]` is not assignable to parameter `*args` with type `tuple[UserData, DeviceData, int]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/components/roborock/__init__.py:323:52-328:6: Unpacked argument `tuple[UserData, DeviceData, RoborockCategory]` is not assignable to parameter `*args` with type `tuple[UserData, DeviceData, RoborockCategory, int]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/components/roborock/binary_sensor.py:37:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:38:9-24: Unexpected keyword argument `translation_key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:40:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:45:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:46:9-24: Unexpected keyword argument `translation_key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:48:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:52:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:53:9-24: Unexpected keyword argument `translation_key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:55:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:59:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:60:9-24: Unexpected keyword argument `translation_key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:62:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:66:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:67:9-24: Unexpected keyword argument `translation_key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:69:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:73:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:75:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/binary_sensor.py:102:5-23: Class member `RoborockBinarySensorEntity.entity_description` overrides parent class `RoborockCoordinatedEntityV1` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/binary_sensor.py:102:5-23: Class member `RoborockBinarySensorEntity.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/button.py:33:9-12: Unexpected keyword argument `key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:34:9-24: Unexpected keyword argument `translation_key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:37:9-24: Unexpected keyword argument `entity_category` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:38:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:41:9-12: Unexpected keyword argument `key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:42:9-24: Unexpected keyword argument `translation_key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:45:9-24: Unexpected keyword argument `entity_category` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:46:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:49:9-12: Unexpected keyword argument `key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:50:9-24: Unexpected keyword argument `translation_key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:53:9-24: Unexpected keyword argument `entity_category` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:54:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:57:9-12: Unexpected keyword argument `key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:58:9-24: Unexpected keyword argument `translation_key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:61:9-24: Unexpected keyword argument `entity_category` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:62:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:91:25-28: Unexpected keyword argument `key` in function `homeassistant.components.button.ButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:92:25-29: Unexpected keyword argument `name` in function `homeassistant.components.button.ButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/button.py:107:5-23: Class member `RoborockButtonEntity.entity_description` overrides parent class `RoborockEntityV1` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/button.py:107:5-23: Class member `RoborockButtonEntity.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/button.py:130:5-23: Class member `RoborockRoutineButtonEntity.entity_description` overrides parent class `RoborockEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/binary_sensor.py:39:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:40:9-24: Unexpected keyword argument `translation_key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:42:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:47:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:48:9-24: Unexpected keyword argument `translation_key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:50:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:54:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:55:9-24: Unexpected keyword argument `translation_key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:57:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:61:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:62:9-24: Unexpected keyword argument `translation_key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:64:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:68:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:69:9-24: Unexpected keyword argument `translation_key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:71:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:75:9-12: Unexpected keyword argument `key` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:77:9-24: Unexpected keyword argument `entity_category` in function `RoborockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/binary_sensor.py:104:5-23: Class member `RoborockBinarySensorEntity.entity_description` overrides parent class `RoborockCoordinatedEntityV1` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/binary_sensor.py:104:5-23: Class member `RoborockBinarySensorEntity.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/button.py:38:9-12: Unexpected keyword argument `key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:39:9-24: Unexpected keyword argument `translation_key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:41:9-24: Unexpected keyword argument `entity_category` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:42:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:45:9-12: Unexpected keyword argument `key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:46:9-24: Unexpected keyword argument `translation_key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:48:9-24: Unexpected keyword argument `entity_category` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:49:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:52:9-12: Unexpected keyword argument `key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:53:9-24: Unexpected keyword argument `translation_key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:55:9-24: Unexpected keyword argument `entity_category` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:56:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:59:9-12: Unexpected keyword argument `key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:60:9-24: Unexpected keyword argument `translation_key` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:62:9-24: Unexpected keyword argument `entity_category` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:63:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:92:25-28: Unexpected keyword argument `key` in function `homeassistant.components.button.ButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:93:25-29: Unexpected keyword argument `name` in function `homeassistant.components.button.ButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/button.py:108:5-23: Class member `RoborockButtonEntity.entity_description` overrides parent class `RoborockEntityV1` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/button.py:108:5-23: Class member `RoborockButtonEntity.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/button.py:144:5-23: Class member `RoborockRoutineButtonEntity.entity_description` overrides parent class `RoborockEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/roborock/config_flow.py:194:9-31: Class member `RoborockFlowHandler.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/coordinator.py:93:5-17: Class member `RoborockDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/coordinator.py:293:22-37: Class member `RoborockDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/coordinator.py:293:40-70: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@RoborockDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/roborock/coordinator.py:362:40-69: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@RoborockDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/roborock/coordinator.py:364:40-69: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@RoborockDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/roborock/coordinator.py:366:36-66: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@RoborockDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/roborock/coordinator.py:368:36-66: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@RoborockDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/roborock/coordinator.py:504:5-17: Class member `RoborockDataUpdateCoordinatorA01.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/entity.py:48:5-9: Class member `RoborockEntityV1._api` overrides parent class `RoborockEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/entity.py:101:5-9: Class member `RoborockEntityA01._api` overrides parent class `RoborockEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/image.py:47:5-15: Class member `RoborockMap._attr_name` overrides parent class `RoborockCoordinatedEntityV1` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/image.py:47:5-15: Class member `RoborockMap._attr_name` overrides parent class `ImageEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/number.py:40:9-12: Unexpected keyword argument `key` in function `RoborockNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/number.py:41:9-24: Unexpected keyword argument `translation_key` in function `RoborockNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/number.py:46:9-24: Unexpected keyword argument `entity_category` in function `RoborockNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/number.py:93:5-23: Class member `RoborockNumberEntity.entity_description` overrides parent class `RoborockEntityV1` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/number.py:93:5-23: Class member `RoborockNumberEntity.entity_description` overrides parent class `NumberEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/select.py:43:9-12: Unexpected keyword argument `key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/select.py:44:9-24: Unexpected keyword argument `translation_key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/select.py:47:9-24: Unexpected keyword argument `entity_category` in function `RoborockSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/select.py:55:9-12: Unexpected keyword argument `key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/select.py:56:9-24: Unexpected keyword argument `translation_key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/select.py:59:9-24: Unexpected keyword argument `entity_category` in function `RoborockSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/select.py:66:9-12: Unexpected keyword argument `key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/select.py:67:9-24: Unexpected keyword argument `translation_key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/select.py:70:9-24: Unexpected keyword argument `entity_category` in function `RoborockSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/select.py:111:5-23: Class member `RoborockSelectEntity.entity_description` overrides parent class `RoborockCoordinatedEntityV1` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/select.py:111:5-23: Class member `RoborockSelectEntity.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/sensor.py:83:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:85:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:87:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:93:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:95:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:97:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:103:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:105:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:107:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:112:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:114:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:116:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:121:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:123:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:125:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:131:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:133:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:135:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:140:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:141:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:144:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:149:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:150:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:153:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:156:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:157:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:160:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:163:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:165:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:167:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/coordinator.py:69:5-17: Class member `RoborockDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/coordinator.py:328:5-17: Class member `RoborockDataUpdateCoordinatorA01.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/image.py:52:5-15: Class member `RoborockMap._attr_name` overrides parent class `RoborockCoordinatedEntityV1` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/image.py:52:5-15: Class member `RoborockMap._attr_name` overrides parent class `ImageEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/number.py:42:9-12: Unexpected keyword argument `key` in function `RoborockNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/number.py:43:9-24: Unexpected keyword argument `translation_key` in function `RoborockNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/number.py:47:9-24: Unexpected keyword argument `entity_category` in function `RoborockNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/number.py:79:5-23: Class member `RoborockNumberEntity.entity_description` overrides parent class `RoborockEntityV1` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/number.py:79:5-23: Class member `RoborockNumberEntity.entity_description` overrides parent class `NumberEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/roborock_storage.py:93:16-32: Returned type `CacheData | None` is not assignable to declared return type `CacheData` [bad-return] +ERROR homeassistant/components/roborock/select.py:49:9-12: Unexpected keyword argument `key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/select.py:50:9-24: Unexpected keyword argument `translation_key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/select.py:53:9-24: Unexpected keyword argument `entity_category` in function `RoborockSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/select.py:62:9-12: Unexpected keyword argument `key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/select.py:63:9-24: Unexpected keyword argument `translation_key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/select.py:66:9-24: Unexpected keyword argument `entity_category` in function `RoborockSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/select.py:73:9-12: Unexpected keyword argument `key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/select.py:74:9-24: Unexpected keyword argument `translation_key` in function `RoborockSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/select.py:77:9-24: Unexpected keyword argument `entity_category` in function `RoborockSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/select.py:120:5-23: Class member `RoborockSelectEntity.entity_description` overrides parent class `RoborockCoordinatedEntityV1` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/select.py:120:5-23: Class member `RoborockSelectEntity.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/sensor.py:80:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:82:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:84:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:89:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:91:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:93:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:98:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:100:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:102:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:106:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:108:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:110:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:115:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:117:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:119:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:125:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:127:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:129:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:134:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:135:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:138:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:143:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:144:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:147:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:150:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:151:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:154:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:157:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:159:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:161:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:165:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:166:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:168:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/roborock/sensor.py:172:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/roborock/sensor.py:173:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/roborock/sensor.py:175:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/roborock/sensor.py:179:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/roborock/sensor.py:180:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:182:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:186:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:187:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:190:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:195:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:197:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:203:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:204:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:208:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:212:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:213:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:217:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:222:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:223:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:225:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:230:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:231:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:233:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:239:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:243:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:244:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:252:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:254:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:255:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:260:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:262:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:267:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:272:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:273:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:276:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:281:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:282:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:285:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:288:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:289:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:293:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:183:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:187:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:189:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:194:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:195:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:201:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:205:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:206:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:212:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:217:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:218:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:220:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:225:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:226:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:228:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:234:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:238:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:239:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:246:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:248:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:249:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:254:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:256:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:261:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:266:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:267:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:270:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:275:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:276:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:279:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:282:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:283:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:287:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:292:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:293:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:296:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] ERROR homeassistant/components/roborock/sensor.py:298:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] ERROR homeassistant/components/roborock/sensor.py:299:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:302:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:304:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:305:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:310:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:314:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:315:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:318:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:322:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:323:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:326:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:329:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:330:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/sensor.py:368:5-23: Class member `RoborockSensorEntity.entity_description` overrides parent class `RoborockCoordinatedEntityV1` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/sensor.py:368:5-23: Class member `RoborockSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/sensor.py:395:5-23: Class member `RoborockCurrentRoom._attr_device_class` overrides parent class `RoborockCoordinatedEntityV1` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/sensor.py:437:5-23: Class member `RoborockSensorEntityA01.entity_description` overrides parent class `RoborockCoordinatedEntityA01` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/sensor.py:437:5-23: Class member `RoborockSensorEntityA01.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/switch.py:51:9-12: Unexpected keyword argument `key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/switch.py:52:9-24: Unexpected keyword argument `translation_key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/switch.py:53:9-24: Unexpected keyword argument `entity_category` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:304:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:308:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:309:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:312:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:316:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:317:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:320:9-12: Unexpected keyword argument `key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:323:9-24: Unexpected keyword argument `translation_key` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:324:9-24: Unexpected keyword argument `entity_category` in function `RoborockSensorDescriptionA01.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/sensor.py:363:5-23: Class member `RoborockSensorEntity.entity_description` overrides parent class `RoborockCoordinatedEntityV1` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/sensor.py:363:5-23: Class member `RoborockSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/sensor.py:387:5-23: Class member `RoborockCurrentRoom._attr_device_class` overrides parent class `RoborockCoordinatedEntityV1` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/sensor.py:428:5-23: Class member `RoborockSensorEntityA01.entity_description` overrides parent class `RoborockCoordinatedEntityA01` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/sensor.py:428:5-23: Class member `RoborockSensorEntityA01.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/switch.py:42:9-12: Unexpected keyword argument `key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/switch.py:43:9-24: Unexpected keyword argument `translation_key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/switch.py:44:9-24: Unexpected keyword argument `entity_category` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/switch.py:49:9-12: Unexpected keyword argument `key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/switch.py:50:9-24: Unexpected keyword argument `translation_key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/switch.py:51:9-24: Unexpected keyword argument `entity_category` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/switch.py:56:9-12: Unexpected keyword argument `key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/switch.py:57:9-24: Unexpected keyword argument `translation_key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/switch.py:58:9-24: Unexpected keyword argument `entity_category` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/roborock/switch.py:62:9-12: Unexpected keyword argument `key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/roborock/switch.py:63:9-24: Unexpected keyword argument `translation_key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/roborock/switch.py:64:9-24: Unexpected keyword argument `entity_category` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/switch.py:80:9-12: Unexpected keyword argument `key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/switch.py:81:9-24: Unexpected keyword argument `translation_key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/switch.py:82:9-24: Unexpected keyword argument `entity_category` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/switch.py:97:9-12: Unexpected keyword argument `key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/switch.py:98:9-24: Unexpected keyword argument `translation_key` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/switch.py:99:9-24: Unexpected keyword argument `entity_category` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/switch.py:100:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/switch.py:146:5-23: Class member `RoborockSwitch.entity_description` overrides parent class `RoborockEntityV1` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/switch.py:146:5-23: Class member `RoborockSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/switch.py:65:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/switch.py:94:5-23: Class member `RoborockSwitch.entity_description` overrides parent class `RoborockEntityV1` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/switch.py:94:5-23: Class member `RoborockSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/roborock/time.py:44:9-12: Unexpected keyword argument `key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/roborock/time.py:45:9-24: Unexpected keyword argument `translation_key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:58:9-24: Unexpected keyword argument `entity_category` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:61:9-12: Unexpected keyword argument `key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:62:9-24: Unexpected keyword argument `translation_key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:75:9-24: Unexpected keyword argument `entity_category` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:78:9-12: Unexpected keyword argument `key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:79:9-24: Unexpected keyword argument `translation_key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:92:9-24: Unexpected keyword argument `entity_category` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:93:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:96:9-12: Unexpected keyword argument `key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:97:9-24: Unexpected keyword argument `translation_key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:110:9-24: Unexpected keyword argument `entity_category` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:111:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockTimeDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/roborock/time.py:157:5-23: Class member `RoborockTimeEntity.entity_description` overrides parent class `RoborockEntityV1` in an inconsistent manner [bad-override] -ERROR homeassistant/components/roborock/time.py:157:5-23: Class member `RoborockTimeEntity.entity_description` overrides parent class `TimeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/time.py:59:9-24: Unexpected keyword argument `entity_category` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:62:9-12: Unexpected keyword argument `key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:63:9-24: Unexpected keyword argument `translation_key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:77:9-24: Unexpected keyword argument `entity_category` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:80:9-12: Unexpected keyword argument `key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:81:9-24: Unexpected keyword argument `translation_key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:94:9-24: Unexpected keyword argument `entity_category` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:95:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:98:9-12: Unexpected keyword argument `key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:99:9-24: Unexpected keyword argument `translation_key` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:112:9-24: Unexpected keyword argument `entity_category` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:113:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RoborockTimeDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/roborock/time.py:142:5-23: Class member `RoborockTimeEntity.entity_description` overrides parent class `RoborockEntityV1` in an inconsistent manner [bad-override] +ERROR homeassistant/components/roborock/time.py:142:5-23: Class member `RoborockTimeEntity.entity_description` overrides parent class `TimeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/roborock/vacuum.py:103:5-29: Class member `RoborockVacuum._attr_supported_features` overrides parent class `RoborockCoordinatedEntityV1` in an inconsistent manner [bad-override] ERROR homeassistant/components/rocketchat/notify.py:8:1-11:2: Could not find import of `rocketchat_API.APIExceptions.RocketExceptions` [missing-import] ERROR homeassistant/components/rocketchat/notify.py:12:1-49: Could not find import of `rocketchat_API.rocketchat` [missing-import] @@ -24064,9 +24353,19 @@ ERROR homeassistant/components/satel_integra/__init__.py:243:12-21: `unload_ok` ERROR homeassistant/components/satel_integra/alarm_control_panel.py:81:5-29: Class member `SatelIntegraAlarmPanel._attr_supported_features` overrides parent class `SatelIntegraEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/satel_integra/binary_sensor.py:105:14-32: Class member `SatelIntegraBinarySensor._attr_device_class` overrides parent class `SatelIntegraEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/satel_integra/config_flow.py:98:9-31: Class member `SatelConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/saunum/__init__.py:50:12-21: `unload_ok` may be uninitialized [unbound-name] -ERROR homeassistant/components/saunum/climate.py:46:5-29: Class member `LeilSaunaClimate._attr_supported_features` overrides parent class `LeilSaunaEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/saunum/__init__.py:51:12-21: `unload_ok` may be uninitialized [unbound-name] +ERROR homeassistant/components/saunum/climate.py:56:5-29: Class member `LeilSaunaClimate._attr_supported_features` overrides parent class `LeilSaunaEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/saunum/coordinator.py:24:5-17: Class member `LeilSaunaCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/saunum/sensor.py:39:9-12: Unexpected keyword argument `key` in function `LeilSaunaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/saunum/sensor.py:40:9-24: Unexpected keyword argument `translation_key` in function `LeilSaunaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/saunum/sensor.py:47:9-12: Unexpected keyword argument `key` in function `LeilSaunaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/saunum/sensor.py:48:9-24: Unexpected keyword argument `translation_key` in function `LeilSaunaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/saunum/sensor.py:53:9-12: Unexpected keyword argument `key` in function `LeilSaunaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/saunum/sensor.py:54:9-24: Unexpected keyword argument `translation_key` in function `LeilSaunaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/saunum/sensor.py:58:9-24: Unexpected keyword argument `entity_category` in function `LeilSaunaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/saunum/sensor.py:59:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `LeilSaunaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/saunum/sensor.py:84:5-23: Class member `LeilSaunaSensorEntity.entity_description` overrides parent class `LeilSaunaEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/saunum/sensor.py:84:5-23: Class member `LeilSaunaSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/schedule/__init__.py:251:16-20: `data` may be uninitialized [unbound-name] ERROR homeassistant/components/schedule/__init__.py:263:5-16: Class member `Schedule._attr_state` overrides parent class `CollectionEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/schlage/binary_sensor.py:30:9-12: Unexpected keyword argument `key` in function `SchlageBinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -24094,7 +24393,7 @@ ERROR homeassistant/components/schluter/__init__.py:6:1-29: Could not find impor ERROR homeassistant/components/schluter/__init__.py:7:1-70: Could not find import of `schluter.authenticator` [missing-import] ERROR homeassistant/components/schluter/climate.py:83:5-29: Class member `SchluterThermostat._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/scrape/__init__.py:76:28-41: `scrape_config` is uninitialized [unbound-name] -ERROR homeassistant/components/scrape/coordinator.py:55:54-83: Unpacked argument `tuple[str, Literal['lxml']]` is not assignable to parameter `*args` with type `tuple[IO[bytes] | IO[str] | bytes | str, Sequence[str] | str | None, TreeBuilder | type[TreeBuilder] | None, SoupStrainer | None, str | None, Iterable[str] | None, dict[type[PageElement], type[PageElement]] | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/scrape/coordinator.py:55:54-83: Unpacked argument `tuple[str, Literal['lxml']]` is not assignable to parameter `*args` with type `tuple[_IncomingMarkup, Sequence[str] | str | None, TreeBuilder | type[TreeBuilder] | None, SoupStrainer | None, str | None, Iterable[str] | None, dict[type[PageElement], type[PageElement]] | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/scrape/sensor.py:220:56-61: `value` may be uninitialized [unbound-name] ERROR homeassistant/components/screenlogic/__init__.py:66:37-51: Unpacked keyword argument `int | str` is not assignable to parameter `connection_closed_callback` with type `(...) -> Unknown` in function `screenlogicpy.gateway.ScreenLogicGateway.async_connect` [bad-argument-type] ERROR homeassistant/components/screenlogic/binary_sensor.py:48:27-46: Argument `int` is not assignable to parameter `subscription_code` with type `CODE` in function `ScreenLogicPushBinarySensorDescription.__init__` [bad-argument-type] @@ -24319,8 +24618,8 @@ ERROR homeassistant/components/screenlogic/switch.py:53:21-24: Unexpected keywor ERROR homeassistant/components/screenlogic/switch.py:54:21-52: Unexpected keyword argument `entity_registry_enabled_default` in function `ScreenLogicCircuitSwitchDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/screenlogic/switch.py:68:5-23: Class member `ScreenLogicCircuitSwitch.entity_description` overrides parent class `ScreenLogicCircuitEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/screenlogic/switch.py:68:5-23: Class member `ScreenLogicCircuitSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/script/__init__.py:545:5-20: Class member `ScriptEntity._attr_unique_id` overrides parent class `BaseScriptEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/script/__init__.py:545:5-20: Class member `ScriptEntity._attr_unique_id` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/script/__init__.py:561:5-20: Class member `ScriptEntity._attr_unique_id` overrides parent class `BaseScriptEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/script/__init__.py:561:5-20: Class member `ScriptEntity._attr_unique_id` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/scsgate/__init__.py:6:1-42: Could not find import of `scsgate.connection` [missing-import] ERROR homeassistant/components/scsgate/__init__.py:7:1-68: Could not find import of `scsgate.messages` [missing-import] ERROR homeassistant/components/scsgate/__init__.py:8:1-36: Could not find import of `scsgate.reactor` [missing-import] @@ -24526,67 +24825,65 @@ ERROR homeassistant/components/seventeentrack/config_flow.py:56:9-31: Class memb ERROR homeassistant/components/seventeentrack/coordinator.py:35:5-17: Class member `SeventeenTrackCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/seventeentrack/sensor.py:42:25-59: Argument `set[tuple[str, str | None]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/seventeentrack/services.py:141:34-53: Object of class `str` has no attribute `isoformat` [missing-attribute] -ERROR homeassistant/components/sfr_box/binary_sensor.py:33:9-12: Unexpected keyword argument `key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/binary_sensor.py:35:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/binary_sensor.py:37:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/binary_sensor.py:42:9-12: Unexpected keyword argument `key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/binary_sensor.py:44:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/binary_sensor.py:46:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/binary_sensor.py:51:9-12: Unexpected keyword argument `key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/binary_sensor.py:53:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/binary_sensor.py:55:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/binary_sensor.py:92:5-23: Class member `SFRBoxBinarySensor.entity_description` overrides parent class `SFRCoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/sfr_box/binary_sensor.py:92:5-23: Class member `SFRBoxBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/sfr_box/button.py:59:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/button.py:60:9-12: Unexpected keyword argument `key` in function `SFRBoxButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/button.py:85:5-23: Class member `SFRBoxButton.entity_description` overrides parent class `SFREntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/sfr_box/button.py:85:5-23: Class member `SFRBoxButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/sfr_box/coordinator.py:39:5-17: Class member `SFRDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/sfr_box/sensor.py:39:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:40:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:41:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:42:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:46:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:47:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:48:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:49:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:53:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:54:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:55:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:56:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:60:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:62:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:63:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:66:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:70:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:72:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:73:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:76:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:80:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:82:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:83:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:86:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:90:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:92:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:93:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:96:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:100:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:104:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:108:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:112:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:116:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:118:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:119:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:128:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:129:28-44: `_value_to_option` is uninitialized [unbound-name] -ERROR homeassistant/components/sfr_box/sensor.py:132:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:134:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:135:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:148:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:149:28-44: `_value_to_option` is uninitialized [unbound-name] -ERROR homeassistant/components/sfr_box/sensor.py:154:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:156:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:157:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/binary_sensor.py:36:9-12: Unexpected keyword argument `key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/binary_sensor.py:38:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/binary_sensor.py:40:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/binary_sensor.py:45:9-12: Unexpected keyword argument `key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/binary_sensor.py:47:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/binary_sensor.py:49:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/binary_sensor.py:54:9-12: Unexpected keyword argument `key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/binary_sensor.py:56:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/binary_sensor.py:58:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/binary_sensor.py:95:5-23: Class member `SFRBoxBinarySensor.entity_description` overrides parent class `SFRCoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/sfr_box/binary_sensor.py:95:5-23: Class member `SFRBoxBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/sfr_box/button.py:68:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/button.py:69:9-12: Unexpected keyword argument `key` in function `SFRBoxButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/button.py:94:5-23: Class member `SFRBoxButton.entity_description` overrides parent class `SFREntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/sfr_box/button.py:94:5-23: Class member `SFRBoxButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/sfr_box/coordinator.py:41:5-17: Class member `SFRDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/sfr_box/sensor.py:42:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:43:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:44:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:45:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:49:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:50:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:51:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:52:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:56:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:57:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:58:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:59:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:63:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:65:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:66:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:69:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:73:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:75:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:76:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:79:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:83:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:85:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:86:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:89:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:93:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:95:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:96:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:99:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:103:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:107:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:111:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:115:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:119:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:121:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:122:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:130:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:134:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:136:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:137:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:149:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:155:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:157:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:158:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/sfr_box/sensor.py:164:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/sfr_box/sensor.py:168:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/sfr_box/sensor.py:170:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] @@ -24594,13 +24891,12 @@ ERROR homeassistant/components/sfr_box/sensor.py:171:9-40: Unexpected keyword ar ERROR homeassistant/components/sfr_box/sensor.py:177:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/sfr_box/sensor.py:179:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/sfr_box/sensor.py:180:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:183:28-44: `_get_temperature` is uninitialized [unbound-name] ERROR homeassistant/components/sfr_box/sensor.py:188:9-12: Unexpected keyword argument `key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/sfr_box/sensor.py:190:9-24: Unexpected keyword argument `entity_category` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/sfr_box/sensor.py:191:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:199:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sfr_box/sensor.py:248:5-23: Class member `SFRBoxSensor.entity_description` overrides parent class `SFRCoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/sfr_box/sensor.py:248:5-23: Class member `SFRBoxSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/sfr_box/sensor.py:198:9-24: Unexpected keyword argument `translation_key` in function `SFRBoxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sfr_box/sensor.py:247:5-23: Class member `SFRBoxSensor.entity_description` overrides parent class `SFRCoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/sfr_box/sensor.py:247:5-23: Class member `SFRBoxSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/sftp_storage/backup.py:64:15-36: Class member `SFTPBackupAgent.async_download_backup` overrides parent class `BackupAgent` in an inconsistent manner [bad-override] ERROR homeassistant/components/sharkiq/coordinator.py:27:5-17: Class member `SharkIqUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/sharkiq/coordinator.py:73:20-74:73: `>` is not supported between `datetime` and `timedelta` [unsupported-operation] @@ -24608,100 +24904,93 @@ ERROR homeassistant/components/sharkiq/coordinator.py:74:19-73: `-` is not suppo ERROR homeassistant/components/sharkiq/vacuum.py:84:5-29: Class member `SharkVacuumEntity._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/sharkiq/vacuum.py:233:36-78: Argument `PowerModes | None` is not assignable to parameter `value` with type `Enum | int | str` in function `sharkiq.sharkiq.SharkIqVacuum.async_set_property_value` [bad-argument-type] ERROR homeassistant/components/shell_command/__init__.py:80:47-60: Argument `Any | None` is not assignable to parameter `s` with type `_ShlexInstream | str` in function `shlex.split` [bad-argument-type] -ERROR homeassistant/components/shelly/binary_sensor.py:68:5-23: Class member `RpcBinarySensor.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/binary_sensor.py:68:5-23: Class member `RpcBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/binary_sensor.py:109:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:110:9-13: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:112:9-24: Unexpected keyword argument `entity_category` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:115:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:116:9-13: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:118:9-24: Unexpected keyword argument `entity_category` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:121:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:122:9-13: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:124:9-24: Unexpected keyword argument `entity_category` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:127:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:128:9-13: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:130:9-24: Unexpected keyword argument `entity_category` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:133:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:134:9-13: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:139:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:139:29-33: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:142:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:143:9-13: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:71:5-23: Class member `RpcBinarySensor.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:71:5-23: Class member `RpcBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:132:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:133:9-24: Unexpected keyword argument `translation_key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:135:9-24: Unexpected keyword argument `entity_category` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:138:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:139:9-24: Unexpected keyword argument `translation_key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:141:9-24: Unexpected keyword argument `entity_category` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:144:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/binary_sensor.py:145:9-24: Unexpected keyword argument `translation_key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:149:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:149:29-33: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:152:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:153:9-13: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:157:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:158:9-13: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:163:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:164:9-13: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:169:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:170:9-13: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:147:9-24: Unexpected keyword argument `entity_category` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:150:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:151:9-24: Unexpected keyword argument `translation_key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:153:9-24: Unexpected keyword argument `entity_category` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:156:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:157:9-24: Unexpected keyword argument `translation_key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:162:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:163:9-24: Unexpected keyword argument `translation_key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:167:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:172:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/binary_sensor.py:175:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:176:9-13: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:178:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:181:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:181:30-34: Unexpected keyword argument `name` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:187:9-12: Unexpected keyword argument `key` in function `RestBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:188:9-13: Unexpected keyword argument `name` in function `RestBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:191:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RestBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:192:9-24: Unexpected keyword argument `entity_category` in function `RestBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:198:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:204:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:206:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:208:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:209:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:212:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:214:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:217:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:179:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:180:9-24: Unexpected keyword argument `translation_key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:185:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:186:9-24: Unexpected keyword argument `translation_key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:191:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:192:9-24: Unexpected keyword argument `translation_key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:197:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:198:9-24: Unexpected keyword argument `translation_key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:200:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:203:9-12: Unexpected keyword argument `key` in function `BlockBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:209:9-12: Unexpected keyword argument `key` in function `RestBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:210:9-24: Unexpected keyword argument `translation_key` in function `RestBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:213:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RestBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:214:9-24: Unexpected keyword argument `entity_category` in function `RestBinarySensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/binary_sensor.py:220:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:222:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:225:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:229:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:231:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:234:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:238:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:240:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:243:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:247:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:249:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:252:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:256:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:258:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:262:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:264:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:266:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:267:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:222:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:227:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:229:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:231:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:232:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:235:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:237:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:240:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:243:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:245:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:248:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:252:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:254:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:257:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:261:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:263:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:266:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/binary_sensor.py:270:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:278:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:281:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:286:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:288:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:291:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:295:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:297:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:301:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:303:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:304:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:307:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:312:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:314:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:318:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:321:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:326:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:328:9-13: Unexpected keyword argument `name` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/binary_sensor.py:414:5-23: Class member `BlockBinarySensor.entity_description` overrides parent class `ShellyBlockAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/binary_sensor.py:414:5-23: Class member `BlockBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/binary_sensor.py:425:5-23: Class member `RestBinarySensor.entity_description` overrides parent class `ShellyRestAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/binary_sensor.py:425:5-23: Class member `RestBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/binary_sensor.py:438:5-23: Class member `BlockSleepingBinarySensor.entity_description` overrides parent class `ShellySleepingBlockAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/binary_sensor.py:438:5-23: Class member `BlockSleepingBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/binary_sensor.py:438:5-23: Class member `BlockSleepingBinarySensor.entity_description` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/binary_sensor.py:462:5-23: Class member `RpcSleepingBinarySensor.entity_description` overrides parent class `ShellySleepingRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/binary_sensor.py:462:5-23: Class member `RpcSleepingBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/binary_sensor.py:462:5-23: Class member `RpcSleepingBinarySensor.entity_description` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:272:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:275:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:279:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:284:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:286:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:288:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:289:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:292:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:300:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:303:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:308:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:310:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:313:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:317:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:319:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:323:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:325:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:326:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:329:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:334:9-24: Unexpected keyword argument `translation_key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:336:9-24: Unexpected keyword argument `entity_category` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:340:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:347:9-12: Unexpected keyword argument `key` in function `RpcBinarySensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/binary_sensor.py:434:5-23: Class member `BlockBinarySensor.entity_description` overrides parent class `ShellyBlockAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:434:5-23: Class member `BlockBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:445:5-23: Class member `RestBinarySensor.entity_description` overrides parent class `ShellyRestAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:445:5-23: Class member `RestBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:458:5-23: Class member `BlockSleepingBinarySensor.entity_description` overrides parent class `ShellySleepingBlockAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:458:5-23: Class member `BlockSleepingBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:458:5-23: Class member `BlockSleepingBinarySensor.entity_description` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:482:5-23: Class member `RpcSleepingBinarySensor.entity_description` overrides parent class `ShellySleepingRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:482:5-23: Class member `RpcSleepingBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/binary_sensor.py:482:5-23: Class member `RpcSleepingBinarySensor.entity_description` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/button.py:79:9-12: Unexpected keyword argument `key` in function `ShellyButtonDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/button.py:81:9-24: Unexpected keyword argument `entity_category` in function `ShellyButtonDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/button.py:85:9-12: Unexpected keyword argument `key` in function `ShellyButtonDescription.__init__` [unexpected-keyword] @@ -24722,47 +25011,47 @@ ERROR homeassistant/components/shelly/button.py:260:5-23: Class member `ShellyBa ERROR homeassistant/components/shelly/button.py:339:5-23: Class member `ShellyBluTrvButton.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/button.py:339:5-23: Class member `ShellyBluTrvButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/button.py:340:5-8: Class member `ShellyBluTrvButton._id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/button.py:373:5-23: Class member `RpcVirtualButton.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/button.py:373:5-23: Class member `RpcVirtualButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/button.py:374:5-8: Class member `RpcVirtualButton._id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/button.py:401:5-23: Class member `RpcSleepingSmokeMuteButton.entity_description` overrides parent class `ShellySleepingRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/button.py:401:5-23: Class member `RpcSleepingSmokeMuteButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/button.py:439:9-12: Unexpected keyword argument `key` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/button.py:443:9-12: Unexpected keyword argument `key` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/button.py:444:9-24: Unexpected keyword argument `translation_key` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/button.py:445:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/button.py:450:9-12: Unexpected keyword argument `key` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/button.py:451:9-24: Unexpected keyword argument `translation_key` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/button.py:452:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/button.py:457:9-12: Unexpected keyword argument `key` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/button.py:458:9-24: Unexpected keyword argument `translation_key` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/button.py:459:9-24: Unexpected keyword argument `entity_category` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/button.py:464:9-12: Unexpected keyword argument `key` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/button.py:466:9-24: Unexpected keyword argument `translation_key` in function `RpcButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/climate.py:85:5-23: Class member `RpcLinkedgoThermostatClimate.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/climate.py:85:5-23: Class member `RpcLinkedgoThermostatClimate.entity_description` overrides parent class `ClimateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/climate.py:88:5-8: Class member `RpcLinkedgoThermostatClimate._id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/climate.py:101:14-38: Class member `RpcLinkedgoThermostatClimate._attr_supported_features` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/button.py:370:5-23: Class member `RpcVirtualButton.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/button.py:370:5-23: Class member `RpcVirtualButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/button.py:371:5-8: Class member `RpcVirtualButton._id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/button.py:385:5-23: Class member `RpcSleepingSmokeMuteButton.entity_description` overrides parent class `ShellySleepingRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/button.py:385:5-23: Class member `RpcSleepingSmokeMuteButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/button.py:408:9-12: Unexpected keyword argument `key` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/button.py:412:9-12: Unexpected keyword argument `key` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/button.py:413:9-24: Unexpected keyword argument `translation_key` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/button.py:414:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/button.py:419:9-12: Unexpected keyword argument `key` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/button.py:420:9-24: Unexpected keyword argument `translation_key` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/button.py:421:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/button.py:426:9-12: Unexpected keyword argument `key` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/button.py:427:9-24: Unexpected keyword argument `translation_key` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/button.py:428:9-24: Unexpected keyword argument `entity_category` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/button.py:433:9-12: Unexpected keyword argument `key` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/button.py:435:9-24: Unexpected keyword argument `translation_key` in function `RpcButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/climate.py:84:5-23: Class member `RpcLinkedgoThermostatClimate.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/climate.py:84:5-23: Class member `RpcLinkedgoThermostatClimate.entity_description` overrides parent class `ClimateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/climate.py:87:5-8: Class member `RpcLinkedgoThermostatClimate._id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/climate.py:100:14-38: Class member `RpcLinkedgoThermostatClimate._attr_supported_features` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/climate.py:259:9-12: Unexpected keyword argument `key` in function `RpcClimateDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/climate.py:314:8-20: Expected `__bool__` to be a callable, got `BoundMethod[NoneType, (self: NoneType) -> Literal[False]] | str | None` [not-callable] ERROR homeassistant/components/shelly/climate.py:314:8-20: Expected `__bool__` to be a callable, got `str | None` [not-callable] ERROR homeassistant/components/shelly/climate.py:403:5-29: Class member `BlockSleepingClimate._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/climate.py:403:5-29: Class member `BlockSleepingClimate._attr_supported_features` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/climate.py:662:12-29: Expected `__bool__` to be a callable, got `BoundMethod[NoneType, (self: NoneType) -> Literal[False]] | str | None` [not-callable] -ERROR homeassistant/components/shelly/climate.py:662:12-29: Expected `__bool__` to be a callable, got `str | None` [not-callable] -ERROR homeassistant/components/shelly/climate.py:688:5-29: Class member `RpcClimate._attr_supported_features` overrides parent class `ShellyRpcEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/climate.py:766:5-29: Class member `RpcBluTrvClimate._attr_supported_features` overrides parent class `ShellyRpcEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/config_flow.py:310:21-40: Object of class `object` has no attribute `get` [missing-attribute] -ERROR homeassistant/components/shelly/config_flow.py:311:21-40: Object of class `object` has no attribute `get` [missing-attribute] -ERROR homeassistant/components/shelly/config_flow.py:685:16-19: `mac` may be uninitialized [unbound-name] -ERROR homeassistant/components/shelly/config_flow.py:834:9-31: Class member `ShellyConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/coordinator.py:108:5-17: Class member `ShellyCoordinatorBase.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/coordinator.py:245:12-28: `new_sleep_period` may be uninitialized [unbound-name] -ERROR homeassistant/components/shelly/coordinator.py:246:39-55: `new_sleep_period` may be uninitialized [unbound-name] -ERROR homeassistant/components/shelly/coordinator.py:376:74-84: Cannot index into `dict[str, str]` [bad-index] -ERROR homeassistant/components/shelly/coordinator.py:384:61-71: Cannot index into `dict[str, str]` [bad-index] -ERROR homeassistant/components/shelly/coordinator.py:577:14-29: Class member `ShellyRpcCoordinator.update_interval` overrides parent class `ShellyCoordinatorBase` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/coordinator.py:577:32-66: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@ShellyRpcCoordinator, value: timedelta | None) -> None` [bad-assignment] +ERROR homeassistant/components/shelly/climate.py:660:12-29: Expected `__bool__` to be a callable, got `BoundMethod[NoneType, (self: NoneType) -> Literal[False]] | str | None` [not-callable] +ERROR homeassistant/components/shelly/climate.py:660:12-29: Expected `__bool__` to be a callable, got `str | None` [not-callable] +ERROR homeassistant/components/shelly/climate.py:686:5-29: Class member `RpcClimate._attr_supported_features` overrides parent class `ShellyRpcEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/climate.py:765:5-29: Class member `RpcBluTrvClimate._attr_supported_features` overrides parent class `ShellyRpcEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/config_flow.py:599:17-36: Object of class `object` has no attribute `get` [missing-attribute] +ERROR homeassistant/components/shelly/config_flow.py:600:25-44: Object of class `object` has no attribute `get` [missing-attribute] +ERROR homeassistant/components/shelly/config_flow.py:614:21-40: Object of class `object` has no attribute `get` [missing-attribute] +ERROR homeassistant/components/shelly/config_flow.py:615:21-40: Object of class `object` has no attribute `get` [missing-attribute] +ERROR homeassistant/components/shelly/config_flow.py:1075:16-19: `mac` may be uninitialized [unbound-name] +ERROR homeassistant/components/shelly/config_flow.py:1224:9-31: Class member `ShellyConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/coordinator.py:109:5-17: Class member `ShellyCoordinatorBase.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/coordinator.py:246:12-28: `new_sleep_period` may be uninitialized [unbound-name] +ERROR homeassistant/components/shelly/coordinator.py:247:39-55: `new_sleep_period` may be uninitialized [unbound-name] +ERROR homeassistant/components/shelly/coordinator.py:377:74-84: Cannot index into `dict[str, str]` [bad-index] +ERROR homeassistant/components/shelly/coordinator.py:385:61-71: Cannot index into `dict[str, str]` [bad-index] ERROR homeassistant/components/shelly/cover.py:51:9-12: Unexpected keyword argument `key` in function `BlockCoverDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/cover.py:57:9-12: Unexpected keyword argument `key` in function `RpcCoverDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/cover.py:107:5-23: Class member `BlockShellyCover.entity_description` overrides parent class `ShellyBlockAttributeEntity` in an inconsistent manner [bad-override] @@ -24770,15 +25059,15 @@ ERROR homeassistant/components/shelly/cover.py:107:5-23: Class member `BlockShel ERROR homeassistant/components/shelly/cover.py:108:5-23: Class member `BlockShellyCover._attr_device_class` overrides parent class `ShellyBlockAttributeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/cover.py:109:5-29: Class member `BlockShellyCover._attr_supported_features` overrides parent class `ShellyBlockAttributeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/cover.py:109:5-29: Class member `BlockShellyCover._attr_supported_features` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/cover.py:123:14-29: Class member `BlockShellyCover._attr_unique_id` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/cover.py:191:5-23: Class member `RpcShellyCover.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/cover.py:191:5-23: Class member `RpcShellyCover.entity_description` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/cover.py:192:5-23: Class member `RpcShellyCover._attr_device_class` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/cover.py:193:5-29: Class member `RpcShellyCover._attr_supported_features` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/cover.py:193:5-29: Class member `RpcShellyCover._attr_supported_features` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/cover.py:196:5-8: Class member `RpcShellyCover._id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/cover.py:207:14-29: Class member `RpcShellyCover._attr_unique_id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/cover.py:207:14-29: Class member `RpcShellyCover._attr_unique_id` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/cover.py:124:14-29: Class member `BlockShellyCover._attr_unique_id` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/cover.py:192:5-23: Class member `RpcShellyCover.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/cover.py:192:5-23: Class member `RpcShellyCover.entity_description` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/cover.py:193:5-23: Class member `RpcShellyCover._attr_device_class` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/cover.py:194:5-29: Class member `RpcShellyCover._attr_supported_features` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/cover.py:194:5-29: Class member `RpcShellyCover._attr_supported_features` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/cover.py:197:5-8: Class member `RpcShellyCover._id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/cover.py:209:14-29: Class member `RpcShellyCover._attr_unique_id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/cover.py:209:14-29: Class member `RpcShellyCover._attr_unique_id` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/diagnostics.py:84:40-49: `ws_config` may be uninitialized [unbound-name] ERROR homeassistant/components/shelly/diagnostics.py:88:25-34: `ws_config` may be uninitialized [unbound-name] ERROR homeassistant/components/shelly/entity.py:221:24-36: `sleep_period` may be uninitialized [unbound-name] @@ -24786,173 +25075,178 @@ ERROR homeassistant/components/shelly/entity.py:455:5-23: Class member `ShellyBl ERROR homeassistant/components/shelly/entity.py:455:5-23: Class member `ShellyBlockAttributeEntity.entity_description` overrides parent class `Entity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/entity.py:469:14-29: Class member `ShellyBlockAttributeEntity._attr_unique_id` overrides parent class `ShellyBlockEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/entity.py:469:14-29: Class member `ShellyBlockAttributeEntity._attr_unique_id` overrides parent class `Entity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/entity.py:497:5-23: Class member `ShellyRestAttributeEntity.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/entity.py:535:5-23: Class member `ShellyRpcAttributeEntity.entity_description` overrides parent class `ShellyRpcEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/entity.py:535:5-23: Class member `ShellyRpcAttributeEntity.entity_description` overrides parent class `Entity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/event.py:61:5-8: Unexpected keyword argument `key` in function `ShellyBlockEventDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/event.py:62:5-20: Unexpected keyword argument `translation_key` in function `ShellyBlockEventDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/event.py:69:5-8: Unexpected keyword argument `key` in function `ShellyRpcEventDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/event.py:70:5-20: Unexpected keyword argument `translation_key` in function `ShellyRpcEventDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/event.py:78:5-8: Unexpected keyword argument `key` in function `ShellyRpcEventDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/event.py:79:5-20: Unexpected keyword argument `translation_key` in function `ShellyRpcEventDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/event.py:80:5-36: Unexpected keyword argument `entity_registry_enabled_default` in function `ShellyRpcEventDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/event.py:181:5-23: Class member `ShellyBlockEvent.entity_description` overrides parent class `ShellyBlockEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/event.py:181:5-23: Class member `ShellyBlockEvent.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/event.py:230:5-23: Class member `ShellyRpcEvent.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/event.py:230:5-23: Class member `ShellyRpcEvent.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/event.py:305:33-43: Argument `Any | None` is not assignable to parameter `event_type` with type `str` in function `homeassistant.components.event.EventEntity._trigger_event` [bad-argument-type] -ERROR homeassistant/components/shelly/light.py:69:9-12: Unexpected keyword argument `key` in function `BlockLightDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/light.py:72:9-12: Unexpected keyword argument `key` in function `BlockLightDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/light.py:110:5-23: Class member `BlockShellyLight.entity_description` overrides parent class `ShellyBlockAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/light.py:110:5-23: Class member `BlockShellyLight.entity_description` overrides parent class `LightEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/light.py:111:5-32: Class member `BlockShellyLight._attr_supported_color_modes` overrides parent class `LightEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/light.py:123:14-29: Class member `BlockShellyLight._attr_unique_id` overrides parent class `LightEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/light.py:368:5-23: Class member `RpcShellyLightBase.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/light.py:368:5-23: Class member `RpcShellyLightBase.entity_description` overrides parent class `LightEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/light.py:535:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/light.py:543:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/light.py:548:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/light.py:553:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/light.py:558:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/light.py:563:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:84:5-23: Class member `RpcNumber.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/number.py:84:5-23: Class member `RpcNumber.entity_description` overrides parent class `NumberEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/number.py:186:9-12: Unexpected keyword argument `key` in function `BlockNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:187:9-24: Unexpected keyword argument `translation_key` in function `BlockNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:190:9-24: Unexpected keyword argument `entity_category` in function `BlockNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:203:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:205:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:210:9-24: Unexpected keyword argument `entity_category` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:217:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:233:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:235:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:247:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:249:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:250:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:261:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:263:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:265:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:276:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:278:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:280:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:291:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:293:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:305:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:307:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:321:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:323:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/number.py:400:5-23: Class member `BlockSleepingNumber.entity_description` overrides parent class `ShellySleepingBlockAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/number.py:400:5-23: Class member `BlockSleepingNumber.entity_description` overrides parent class `RestoreNumber` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/entity.py:494:5-23: Class member `ShellyRestAttributeEntity.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/entity.py:530:5-23: Class member `ShellyRpcAttributeEntity.entity_description` overrides parent class `ShellyRpcEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/entity.py:530:5-23: Class member `ShellyRpcAttributeEntity.entity_description` overrides parent class `Entity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/event.py:64:5-8: Unexpected keyword argument `key` in function `ShellyBlockEventDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/event.py:65:5-20: Unexpected keyword argument `translation_key` in function `ShellyBlockEventDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/event.py:72:5-8: Unexpected keyword argument `key` in function `ShellyRpcEventDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/event.py:73:5-20: Unexpected keyword argument `translation_key` in function `ShellyRpcEventDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/event.py:81:5-8: Unexpected keyword argument `key` in function `ShellyRpcEventDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/event.py:82:5-20: Unexpected keyword argument `translation_key` in function `ShellyRpcEventDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/event.py:83:5-36: Unexpected keyword argument `entity_registry_enabled_default` in function `ShellyRpcEventDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/event.py:184:5-23: Class member `ShellyBlockEvent.entity_description` overrides parent class `ShellyBlockEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/event.py:184:5-23: Class member `ShellyBlockEvent.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/event.py:235:5-23: Class member `ShellyRpcEvent.entity_description` overrides parent class `ShellyRpcEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/event.py:235:5-23: Class member `ShellyRpcEvent.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/event.py:278:5-23: Class member `ShellyRpcScriptEvent.entity_description` overrides parent class `ShellyRpcEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/event.py:278:5-23: Class member `ShellyRpcScriptEvent.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/event.py:312:33-43: Argument `Any | None` is not assignable to parameter `event_type` with type `str` in function `homeassistant.components.event.EventEntity._trigger_event` [bad-argument-type] +ERROR homeassistant/components/shelly/light.py:71:9-12: Unexpected keyword argument `key` in function `BlockLightDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/light.py:74:9-12: Unexpected keyword argument `key` in function `BlockLightDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/light.py:112:5-23: Class member `BlockShellyLight.entity_description` overrides parent class `ShellyBlockAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/light.py:112:5-23: Class member `BlockShellyLight.entity_description` overrides parent class `LightEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/light.py:113:5-32: Class member `BlockShellyLight._attr_supported_color_modes` overrides parent class `LightEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/light.py:126:14-29: Class member `BlockShellyLight._attr_unique_id` overrides parent class `LightEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/light.py:371:5-23: Class member `RpcShellyLightBase.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/light.py:371:5-23: Class member `RpcShellyLightBase.entity_description` overrides parent class `LightEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/light.py:539:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/light.py:547:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/light.py:552:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/light.py:557:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/light.py:562:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/light.py:567:9-12: Unexpected keyword argument `key` in function `homeassistant.components.shelly.entity.RpcEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:82:5-23: Class member `RpcNumber.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/number.py:82:5-23: Class member `RpcNumber.entity_description` overrides parent class `NumberEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/number.py:181:9-12: Unexpected keyword argument `key` in function `BlockNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:182:9-24: Unexpected keyword argument `translation_key` in function `BlockNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:185:9-24: Unexpected keyword argument `entity_category` in function `BlockNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:196:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:198:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:203:9-24: Unexpected keyword argument `entity_category` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:210:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:226:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:228:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:240:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:242:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:243:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:254:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:256:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:258:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:269:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:271:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:273:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:284:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:286:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:298:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:300:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:314:9-12: Unexpected keyword argument `key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:316:9-24: Unexpected keyword argument `translation_key` in function `RpcNumberDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/number.py:393:5-23: Class member `BlockSleepingNumber.entity_description` overrides parent class `ShellySleepingBlockAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/number.py:393:5-23: Class member `BlockSleepingNumber.entity_description` overrides parent class `RestoreNumber` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/select.py:46:5-23: Class member `RpcSelect.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/select.py:46:5-23: Class member `RpcSelect.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/select.py:47:5-8: Class member `RpcSelect._id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/select.py:104:9-12: Unexpected keyword argument `key` in function `RpcSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/select.py:106:9-24: Unexpected keyword argument `translation_key` in function `RpcSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/select.py:120:9-12: Unexpected keyword argument `key` in function `RpcSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:97:5-23: Class member `RpcSensor.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/sensor.py:97:5-23: Class member `RpcSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/sensor.py:220:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:226:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:229:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:230:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:235:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:236:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:239:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:245:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:246:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:250:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:253:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:258:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:261:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:268:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:275:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:280:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:283:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:290:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:296:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:303:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:310:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:319:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:328:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:329:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:338:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:345:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:348:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:357:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:366:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:367:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/select.py:101:9-12: Unexpected keyword argument `key` in function `RpcSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/select.py:103:9-24: Unexpected keyword argument `translation_key` in function `RpcSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/select.py:117:9-12: Unexpected keyword argument `key` in function `RpcSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:95:5-23: Class member `RpcSensor.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/sensor.py:95:5-23: Class member `RpcSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/sensor.py:203:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:209:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:212:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:213:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:218:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:219:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:222:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:228:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:229:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:233:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:236:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:241:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:244:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:251:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:258:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:263:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:266:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:273:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:279:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:286:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:293:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:302:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:311:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:312:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:321:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:328:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:331:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:340:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:349:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:350:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:355:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:360:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:363:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:372:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:377:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:380:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:389:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:398:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:405:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:406:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:411:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:412:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:416:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:419:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:420:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:427:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:428:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:434:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:435:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:446:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:450:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:451:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:460:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:463:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:464:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:467:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:473:9-12: Unexpected keyword argument `key` in function `RestSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:478:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RestSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:479:9-24: Unexpected keyword argument `entity_category` in function `RestSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:482:9-12: Unexpected keyword argument `key` in function `RestSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:483:9-24: Unexpected keyword argument `translation_key` in function `RestSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:486:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RestSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:487:9-24: Unexpected keyword argument `entity_category` in function `RestSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:494:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:501:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:508:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:515:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:522:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:529:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:536:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:543:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:545:9-13: Unexpected keyword argument `name` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:381:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:388:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:389:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:394:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:395:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:399:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:402:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:403:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:410:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:411:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:417:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:418:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:429:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:433:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:434:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:443:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:446:9-12: Unexpected keyword argument `key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:447:9-24: Unexpected keyword argument `translation_key` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:450:9-24: Unexpected keyword argument `entity_category` in function `BlockSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:456:9-12: Unexpected keyword argument `key` in function `RestSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:461:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RestSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:462:9-24: Unexpected keyword argument `entity_category` in function `RestSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:465:9-12: Unexpected keyword argument `key` in function `RestSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:466:9-24: Unexpected keyword argument `translation_key` in function `RestSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:469:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RestSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:470:9-24: Unexpected keyword argument `entity_category` in function `RestSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:477:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:484:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:491:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:498:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:505:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:512:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:519:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:526:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:533:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:542:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:551:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:560:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:569:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:578:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:567:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:576:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:585:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:594:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:603:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:612:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:619:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:626:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:632:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:640:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:601:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:608:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:614:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:622:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:630:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:638:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:645:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:648:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:656:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:663:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:666:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:673:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:676:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:683:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:686:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:693:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:696:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:703:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:706:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:655:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:658:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:665:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:668:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:675:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:678:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:685:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:688:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:695:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:698:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:705:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:708:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:713:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:716:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:718:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:723:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:726:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:731:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:736:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:741:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:746:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:751:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:728:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:733:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:738:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:744:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:747:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:753:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:756:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:762:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:765:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] @@ -24964,303 +25258,297 @@ ERROR homeassistant/components/shelly/sensor.py:789:9-40: Unexpected keyword arg ERROR homeassistant/components/shelly/sensor.py:792:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:798:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:801:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:807:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:810:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:806:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:811:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:816:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:819:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:824:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:829:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:834:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:839:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:844:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:821:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:826:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:831:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:833:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:838:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:841:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:846:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:849:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:851:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:856:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:859:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:864:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:867:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:877:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:879:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:891:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:893:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:900:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:907:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:917:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:927:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:929:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:938:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:940:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:947:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:951:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:961:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:971:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:981:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:983:9-13: Unexpected keyword argument `name` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:992:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1002:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1010:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1013:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1021:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1026:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1034:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1039:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1047:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1052:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1054:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1063:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1065:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1072:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1075:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1077:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1084:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1089:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1091:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1098:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1103:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1105:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1112:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1117:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1123:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1126:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1132:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1135:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1141:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1144:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1150:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1155:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1161:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1166:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:861:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:873:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:875:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:882:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:889:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:899:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:909:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:911:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:920:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:922:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:929:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:933:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:943:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:953:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:963:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:973:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:983:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:991:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:994:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1002:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1007:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1015:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1020:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1028:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1033:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1035:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1044:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1046:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1053:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1056:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1058:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1065:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1070:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1072:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1079:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1084:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1086:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1093:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1098:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1104:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1107:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1113:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1116:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1122:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1125:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1131:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1136:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1142:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1147:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1153:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1158:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1165:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:1172:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1173:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:1177:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1184:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1191:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1192:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1196:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1203:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1204:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1208:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1215:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1216:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1220:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1227:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1228:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1232:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1239:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1184:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1185:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1189:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1196:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1197:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1201:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1208:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1209:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1213:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1220:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1221:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1225:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1233:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1238:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:1240:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:1244:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1252:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1257:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1259:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1263:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1265:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1268:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1269:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1273:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1281:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1287:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1291:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1293:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1302:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1304:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1309:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1311:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1319:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1321:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1330:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1332:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1341:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1343:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1353:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1355:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1246:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1249:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1250:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1254:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1262:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1268:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1272:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1274:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1283:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1285:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1290:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1292:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1300:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1302:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1311:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1313:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1322:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1324:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1334:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1336:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1344:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1346:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1355:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:1363:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1365:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1374:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1382:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1391:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1400:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1402:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1405:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1411:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1416:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1420:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1425:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1372:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1381:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1383:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1386:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1392:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1397:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1401:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1406:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1410:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1412:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1417:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1419:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:1429:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:1431:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1436:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1438:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1448:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1450:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1459:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1468:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1477:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1479:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1440:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1449:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1458:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1460:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1467:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1469:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1476:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1478:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:1486:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:1488:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1495:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1497:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1505:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1507:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1493:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1495:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1503:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1505:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:1512:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/sensor.py:1514:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1522:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1524:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1531:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1533:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1538:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1540:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1545:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1547:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1556:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1566:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1576:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1586:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1588:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1589:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1598:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1600:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1601:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1610:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1612:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1613:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1622:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1624:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1625:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1634:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1636:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1637:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1646:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1648:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1649:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1658:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1660:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1661:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1670:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1672:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1673:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1682:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1684:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1685:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1694:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1696:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1700:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1705:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1707:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1709:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1714:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1716:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1720:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1725:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1727:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1729:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/sensor.py:1811:5-23: Class member `BlockSensor.entity_description` overrides parent class `ShellyBlockAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/sensor.py:1811:5-23: Class member `BlockSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/sensor.py:1837:5-23: Class member `RestSensor.entity_description` overrides parent class `ShellyRestAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/sensor.py:1837:5-23: Class member `RestSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/sensor.py:1860:5-23: Class member `BlockSleepingSensor.entity_description` overrides parent class `ShellySleepingBlockAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/sensor.py:1860:5-23: Class member `BlockSleepingSensor.entity_description` overrides parent class `RestoreSensor` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/sensor.py:1908:5-23: Class member `RpcSleepingSensor.entity_description` overrides parent class `ShellySleepingRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/sensor.py:1908:5-23: Class member `RpcSleepingSensor.entity_description` overrides parent class `RestoreSensor` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/switch.py:62:9-12: Unexpected keyword argument `key` in function `BlockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:69:9-12: Unexpected keyword argument `key` in function `BlockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:70:9-24: Unexpected keyword argument `translation_key` in function `BlockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:71:9-24: Unexpected keyword argument `entity_category` in function `BlockSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:88:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:100:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:112:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:114:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:115:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:124:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:126:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:135:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:137:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:138:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:147:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:149:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:158:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:160:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:161:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:170:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:172:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:173:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:174:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:183:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:185:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:186:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:187:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:196:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:198:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:199:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:200:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:209:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:211:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:212:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:213:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:222:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:224:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:225:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:226:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:235:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:237:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:238:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:239:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:248:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:254:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:255:9-24: Unexpected keyword argument `entity_category` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:258:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:260:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:265:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:270:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:272:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:277:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:282:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:284:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:289:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:294:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:296:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:301:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:306:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/switch.py:308:9-13: Unexpected keyword argument `name` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1519:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1521:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1526:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1528:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1537:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1547:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1557:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1567:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1569:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1570:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1579:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1581:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1582:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1591:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1593:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1594:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1603:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1605:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1606:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1615:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1617:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1618:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1627:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1629:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1630:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1639:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1641:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1642:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1651:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1653:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1654:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1663:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1665:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1666:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1675:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1677:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1681:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1686:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1688:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1690:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1695:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1697:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1701:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1706:9-12: Unexpected keyword argument `key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1708:9-24: Unexpected keyword argument `translation_key` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1710:9-24: Unexpected keyword argument `entity_category` in function `RpcSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/sensor.py:1792:5-23: Class member `BlockSensor.entity_description` overrides parent class `ShellyBlockAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/sensor.py:1792:5-23: Class member `BlockSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/sensor.py:1814:5-23: Class member `RestSensor.entity_description` overrides parent class `ShellyRestAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/sensor.py:1814:5-23: Class member `RestSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/sensor.py:1825:5-23: Class member `BlockSleepingSensor.entity_description` overrides parent class `ShellySleepingBlockAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/sensor.py:1825:5-23: Class member `BlockSleepingSensor.entity_description` overrides parent class `RestoreSensor` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/sensor.py:1870:5-23: Class member `RpcSleepingSensor.entity_description` overrides parent class `ShellySleepingRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/sensor.py:1870:5-23: Class member `RpcSleepingSensor.entity_description` overrides parent class `RestoreSensor` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/switch.py:63:9-12: Unexpected keyword argument `key` in function `BlockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:70:9-12: Unexpected keyword argument `key` in function `BlockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:71:9-24: Unexpected keyword argument `translation_key` in function `BlockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:72:9-24: Unexpected keyword argument `entity_category` in function `BlockSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:89:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:101:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:113:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:115:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:116:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:125:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:127:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:136:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:138:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:139:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:148:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:150:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:159:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:161:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:162:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:171:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:173:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:174:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:175:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:184:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:186:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:187:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:188:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:197:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:199:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:200:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:201:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:210:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:212:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:213:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:214:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:223:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:225:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:226:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:227:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:236:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:238:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:239:9-33: Unexpected keyword argument `translation_placeholders` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:240:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:249:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:255:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:256:9-24: Unexpected keyword argument `entity_category` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:259:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:261:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:266:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:271:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:273:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:278:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:283:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:285:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:290:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:295:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:297:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:302:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcSwitchDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/switch.py:307:9-12: Unexpected keyword argument `key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/switch.py:309:9-24: Unexpected keyword argument `translation_key` in function `RpcSwitchDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/switch.py:413:5-23: Class member `BlockSleepingMotionSwitch.entity_description` overrides parent class `ShellySleepingBlockAttributeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/switch.py:413:5-23: Class member `BlockSleepingMotionSwitch.entity_description` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/switch.py:413:5-23: Class member `BlockSleepingMotionSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/switch.py:461:5-23: Class member `BlockRelaySwitch.entity_description` overrides parent class `ShellyBlockAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/switch.py:461:5-23: Class member `BlockRelaySwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/switch.py:473:14-29: Class member `BlockRelaySwitch._attr_unique_id` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/switch.py:503:5-23: Class member `RpcSwitch.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/switch.py:503:5-23: Class member `RpcSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/switch.py:562:14-29: Class member `RpcRelaySwitch._attr_unique_id` overrides parent class `RpcSwitch` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/text.py:43:9-12: Unexpected keyword argument `key` in function `RpcTextDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/text.py:97:5-23: Class member `RpcText.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/text.py:97:5-23: Class member `RpcText.entity_description` overrides parent class `TextEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/text.py:99:5-8: Class member `RpcText._id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/update.py:72:9-12: Unexpected keyword argument `key` in function `RestUpdateDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/update.py:77:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RestUpdateDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/update.py:80:9-12: Unexpected keyword argument `key` in function `RestUpdateDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/update.py:81:9-24: Unexpected keyword argument `translation_key` in function `RestUpdateDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/update.py:86:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RestUpdateDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/update.py:92:9-12: Unexpected keyword argument `key` in function `RpcUpdateDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/update.py:100:9-12: Unexpected keyword argument `key` in function `RpcUpdateDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/update.py:102:9-24: Unexpected keyword argument `translation_key` in function `RpcUpdateDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/update.py:107:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcUpdateDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/update.py:165:5-29: Class member `RestUpdateEntity._attr_supported_features` overrides parent class `ShellyRestAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/update.py:168:5-23: Class member `RestUpdateEntity.entity_description` overrides parent class `ShellyRestAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/update.py:168:5-23: Class member `RestUpdateEntity.entity_description` overrides parent class `UpdateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/update.py:261:5-29: Class member `RpcUpdateEntity._attr_supported_features` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/update.py:264:5-23: Class member `RpcUpdateEntity.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/update.py:264:5-23: Class member `RpcUpdateEntity.entity_description` overrides parent class `UpdateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/update.py:377:5-23: Class member `RpcSleepingUpdateEntity.entity_description` overrides parent class `ShellySleepingRpcAttributeEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/update.py:377:5-23: Class member `RpcSleepingUpdateEntity.entity_description` overrides parent class `UpdateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/update.py:377:5-23: Class member `RpcSleepingUpdateEntity.entity_description` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/shelly/utils.py:136:8-13: Expected `__bool__` to be a callable, got `BoundMethod[NoneType, (self: NoneType) -> Literal[False]] | str | None` [not-callable] -ERROR homeassistant/components/shelly/utils.py:136:8-13: Expected `__bool__` to be a callable, got `str | None` [not-callable] -ERROR homeassistant/components/shelly/utils.py:147:12-17: Expected `__bool__` to be a callable, got `BoundMethod[NoneType, (self: NoneType) -> Literal[False]] | str | None` [not-callable] -ERROR homeassistant/components/shelly/utils.py:147:12-17: Expected `__bool__` to be a callable, got `str | None` [not-callable] -ERROR homeassistant/components/shelly/utils.py:418:27-45: Expected a type form, got instance of `tuple[Literal['boolean'], Literal['button'], Literal['enum'], Literal['number'], Literal['text']]` [not-a-type] -ERROR homeassistant/components/shelly/utils.py:423:23-41: Expected a type form, got instance of `tuple[Literal['boolean'], Literal['button'], Literal['enum'], Literal['number'], Literal['text']]` [not-a-type] -ERROR homeassistant/components/shelly/utils.py:878:32-47: Expected a type form, got instance of `tuple[Literal['cct'], Literal['light'], Literal['rgb'], Literal['rgbw']]` [not-a-type] +ERROR homeassistant/components/shelly/switch.py:458:5-23: Class member `BlockRelaySwitch.entity_description` overrides parent class `ShellyBlockAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/switch.py:458:5-23: Class member `BlockRelaySwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/switch.py:471:14-29: Class member `BlockRelaySwitch._attr_unique_id` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/switch.py:501:5-23: Class member `RpcSwitch.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/switch.py:501:5-23: Class member `RpcSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/switch.py:556:14-29: Class member `RpcRelaySwitch._attr_unique_id` overrides parent class `RpcSwitch` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/text.py:44:9-12: Unexpected keyword argument `key` in function `RpcTextDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/text.py:98:5-23: Class member `RpcText.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/text.py:98:5-23: Class member `RpcText.entity_description` overrides parent class `TextEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/text.py:100:5-8: Class member `RpcText._id` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/update.py:71:9-12: Unexpected keyword argument `key` in function `RestUpdateDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/update.py:76:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RestUpdateDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/update.py:79:9-12: Unexpected keyword argument `key` in function `RestUpdateDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/update.py:80:9-24: Unexpected keyword argument `translation_key` in function `RestUpdateDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/update.py:85:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RestUpdateDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/update.py:91:9-12: Unexpected keyword argument `key` in function `RpcUpdateDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/update.py:99:9-12: Unexpected keyword argument `key` in function `RpcUpdateDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/update.py:101:9-24: Unexpected keyword argument `translation_key` in function `RpcUpdateDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/update.py:106:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `RpcUpdateDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/update.py:164:5-29: Class member `RestUpdateEntity._attr_supported_features` overrides parent class `ShellyRestAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/update.py:167:5-23: Class member `RestUpdateEntity.entity_description` overrides parent class `ShellyRestAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/update.py:167:5-23: Class member `RestUpdateEntity.entity_description` overrides parent class `UpdateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/update.py:257:5-29: Class member `RpcUpdateEntity._attr_supported_features` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/update.py:260:5-23: Class member `RpcUpdateEntity.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/update.py:260:5-23: Class member `RpcUpdateEntity.entity_description` overrides parent class `UpdateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/update.py:370:5-23: Class member `RpcSleepingUpdateEntity.entity_description` overrides parent class `ShellySleepingRpcAttributeEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/update.py:370:5-23: Class member `RpcSleepingUpdateEntity.entity_description` overrides parent class `UpdateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/update.py:370:5-23: Class member `RpcSleepingUpdateEntity.entity_description` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/shelly/utils.py:119:8-13: Expected `__bool__` to be a callable, got `BoundMethod[NoneType, (self: NoneType) -> Literal[False]] | str | None` [not-callable] +ERROR homeassistant/components/shelly/utils.py:119:8-13: Expected `__bool__` to be a callable, got `str | None` [not-callable] +ERROR homeassistant/components/shelly/utils.py:130:12-17: Expected `__bool__` to be a callable, got `BoundMethod[NoneType, (self: NoneType) -> Literal[False]] | str | None` [not-callable] +ERROR homeassistant/components/shelly/utils.py:130:12-17: Expected `__bool__` to be a callable, got `str | None` [not-callable] +ERROR homeassistant/components/shelly/utils.py:398:27-45: Expected a type form, got instance of `tuple[Literal['boolean'], Literal['button'], Literal['enum'], Literal['number'], Literal['text']]` [not-a-type] +ERROR homeassistant/components/shelly/utils.py:405:23-41: Expected a type form, got instance of `tuple[Literal['boolean'], Literal['button'], Literal['enum'], Literal['number'], Literal['text']]` [not-a-type] +ERROR homeassistant/components/shelly/utils.py:813:32-47: Expected a type form, got instance of `tuple[Literal['cct'], Literal['light'], Literal['rgb'], Literal['rgbw']]` [not-a-type] ERROR homeassistant/components/shelly/valve.py:51:9-12: Unexpected keyword argument `key` in function `BlockValveDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/shelly/valve.py:52:9-13: Unexpected keyword argument `name` in function `BlockValveDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/shelly/valve.py:52:9-24: Unexpected keyword argument `translation_key` in function `BlockValveDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/shelly/valve.py:63:5-23: Class member `RpcShellyBaseWaterValve.entity_description` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/valve.py:63:5-23: Class member `RpcShellyBaseWaterValve.entity_description` overrides parent class `ValveEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/shelly/valve.py:64:5-23: Class member `RpcShellyBaseWaterValve._attr_device_class` overrides parent class `ShellyRpcAttributeEntity` in an inconsistent manner [bad-override] @@ -25293,8 +25581,6 @@ ERROR homeassistant/components/sia/binary_sensor.py:117:5-23: Class member `SIAB ERROR homeassistant/components/sia/binary_sensor.py:117:5-23: Class member `SIABinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/sia/config_flow.py:102:9-31: Class member `SIAConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/sia/entity.py:55:5-23: Class member `SIABaseEntity.entity_description` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/sia/entity.py:75:14-29: Class member `SIABaseEntity._attr_unique_id` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/sia/entity.py:75:36-46: Class member `SIABaseEntity._attr_name` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/sia/hub.py:103:34-105:38: Argument `tuple[Literal[80], Literal[40]] | None` is not assignable to parameter `allowed_timeband` with type `tuple[int, int]` in function `pysiaalarm.account.SIAAccount.__init__` [bad-argument-type] ERROR homeassistant/components/sia/hub.py:113:36-119:10: Cannot instantiate `SIAClient` because the following members are abstract: `async_start`, `async_stop` [bad-instantiation] ERROR homeassistant/components/sigfox/sensor.py:71:22-35: Module `requests.auth` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] @@ -25829,40 +26115,41 @@ ERROR homeassistant/components/smart_meter_texas/sensor.py:48:5-23: Class member ERROR homeassistant/components/smartthings/binary_sensor.py:46:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/binary_sensor.py:47:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/binary_sensor.py:54:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:77:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:78:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:80:13-28: Unexpected keyword argument `entity_category` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:85:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:86:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:93:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:94:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:96:13-28: Unexpected keyword argument `entity_category` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:101:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:102:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:109:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:110:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:116:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:123:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:130:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:131:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:137:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:144:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:152:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:155:13-28: Unexpected keyword argument `entity_category` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:160:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:161:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:76:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:77:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:79:13-28: Unexpected keyword argument `entity_category` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:84:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:85:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:92:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:93:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:95:13-28: Unexpected keyword argument `entity_category` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:100:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:101:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:108:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:109:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:115:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:122:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:129:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:130:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:139:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:146:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:154:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:157:13-28: Unexpected keyword argument `entity_category` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:162:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/binary_sensor.py:169:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:176:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:177:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:184:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/binary_sensor.py:270:5-23: Class member `SmartThingsBinarySensor.entity_description` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smartthings/binary_sensor.py:270:5-23: Class member `SmartThingsBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smartthings/binary_sensor.py:292:18-36: Class member `SmartThingsBinarySensor._attr_device_class` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smartthings/button.py:22:5-8: Class member `SmartThingsButtonDescription.key` overrides parent class `ButtonEntityDescription` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smartthings/button.py:29:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/button.py:34:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/button.py:60:5-23: Class member `SmartThingsButtonEntity.entity_description` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smartthings/button.py:60:5-23: Class member `SmartThingsButtonEntity.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/smartthings/binary_sensor.py:170:13-28: Unexpected keyword argument `translation_key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:177:13-16: Unexpected keyword argument `key` in function `SmartThingsBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/binary_sensor.py:238:5-23: Class member `SmartThingsBinarySensor.entity_description` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/smartthings/binary_sensor.py:238:5-23: Class member `SmartThingsBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/smartthings/binary_sensor.py:260:18-36: Class member `SmartThingsBinarySensor._attr_device_class` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/smartthings/button.py:23:5-8: Class member `SmartThingsButtonDescription.key` overrides parent class `ButtonEntityDescription` in an inconsistent manner [bad-override] +ERROR homeassistant/components/smartthings/button.py:30:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/button.py:35:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/button.py:37:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/button.py:41:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/button.py:43:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/button.py:68:5-23: Class member `SmartThingsButtonEntity.entity_description` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/smartthings/button.py:68:5-23: Class member `SmartThingsButtonEntity.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/smartthings/climate.py:202:14-38: Class member `SmartThingsThermostat._attr_supported_features` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/smartthings/climate.py:405:14-38: Class member `SmartThingsAirConditioner._attr_supported_features` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/smartthings/cover.py:75:14-38: Class member `SmartThingsCover._attr_supported_features` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] @@ -25875,189 +26162,202 @@ ERROR homeassistant/components/smartthings/light.py:103:14-38: Class member `Sma ERROR homeassistant/components/smartthings/media_player.py:95:14-38: Class member `SmartThingsMediaPlayer._attr_supported_features` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/smartthings/media_player.py:96:14-32: Class member `SmartThingsMediaPlayer._attr_device_class` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/smartthings/number.py:160:5-23: Class member `SmartThingsRefrigeratorTemperatureNumberEntity._attr_device_class` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smartthings/select.py:64:5-8: Class member `SmartThingsSelectDescription.key` overrides parent class `SelectEntityDescription` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smartthings/select.py:78:9-13: Unexpected keyword argument `name` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:79:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:87:9-13: Unexpected keyword argument `name` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:88:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:97:9-13: Unexpected keyword argument `name` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:98:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:107:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:111:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:115:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:119:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:123:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:128:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:134:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:139:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:143:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:92:5-8: Class member `SmartThingsSelectDescription.key` overrides parent class `SelectEntityDescription` in an inconsistent manner [bad-override] +ERROR homeassistant/components/smartthings/select.py:107:9-13: Unexpected keyword argument `name` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:108:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:116:9-13: Unexpected keyword argument `name` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:117:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:126:9-13: Unexpected keyword argument `name` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:127:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:136:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:140:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:144:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/select.py:148:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/select.py:186:5-23: Class member `SmartThingsSelectEntity.entity_description` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smartthings/select.py:186:5-23: Class member `SmartThingsSelectEntity.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smartthings/sensor.py:164:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:165:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:166:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:152:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:157:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:163:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:168:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:172:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:177:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:181:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:187:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:191:9-24: Unexpected keyword argument `translation_key` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:195:9-24: Unexpected keyword argument `entity_category` in function `SmartThingsSelectDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/select.py:234:5-23: Class member `SmartThingsSelectEntity.entity_description` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/smartthings/select.py:234:5-23: Class member `SmartThingsSelectEntity.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/smartthings/sensor.py:173:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/sensor.py:174:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/sensor.py:175:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:188:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:189:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:198:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:199:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:208:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:182:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:183:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:184:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:197:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:198:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:207:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:208:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/sensor.py:217:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:218:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:231:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:234:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:242:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:243:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:253:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:254:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:264:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:275:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:276:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:286:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:296:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:297:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:306:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:307:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:321:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:322:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:331:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:332:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:341:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:342:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:349:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:350:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:369:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:370:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:380:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:381:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:382:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:226:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:227:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:240:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:243:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:251:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:252:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:262:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:263:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:273:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:284:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:285:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:295:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:305:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:306:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:315:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:316:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:330:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:331:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:340:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:341:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:350:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:351:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:358:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:359:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:378:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:379:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/sensor.py:389:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/sensor.py:390:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:397:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:398:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:422:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:423:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:432:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:440:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:450:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:451:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:391:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:398:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:399:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:406:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:407:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:431:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:432:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:441:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:442:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:452:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/sensor.py:460:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:471:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:472:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:482:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:493:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:494:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:503:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:504:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:512:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:513:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:518:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:519:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:526:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:536:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:547:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:548:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:470:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:471:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:480:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:491:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:492:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:502:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:503:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:513:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:524:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:525:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:534:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:535:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:543:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:544:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:549:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:550:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/sensor.py:557:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:558:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:569:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:570:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:567:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/sensor.py:578:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/sensor.py:579:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:587:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:588:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:606:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:607:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:614:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:615:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:616:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:626:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:627:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:634:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:635:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:661:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:662:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:671:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:672:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:683:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:695:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:708:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:709:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:721:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:722:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:734:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:735:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:751:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:762:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:763:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:764:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:772:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:773:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:781:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:782:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:790:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:800:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:801:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:804:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:811:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:812:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:833:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:834:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:840:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:847:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:848:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:850:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:855:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:858:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:866:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:867:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:876:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:895:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:896:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:918:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:919:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:920:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:929:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:930:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:932:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:941:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:942:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:943:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:952:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:953:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:962:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:963:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:965:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:588:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:589:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:600:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:601:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:609:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:610:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:618:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:619:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:637:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:638:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:645:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:646:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:647:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:657:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:658:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:665:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:666:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:692:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:693:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:702:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:703:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:714:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:726:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:739:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:740:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:752:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:753:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:765:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:766:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:782:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:793:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:794:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:795:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:803:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:804:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:812:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:813:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:821:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:831:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:832:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:835:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:842:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:843:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:864:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:865:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:871:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:878:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:879:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:881:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:886:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:889:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:897:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:898:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:907:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:926:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:927:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:949:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:950:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:951:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:960:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:961:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:963:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/sensor.py:972:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/sensor.py:973:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:977:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:978:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:982:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:983:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:991:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:992:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:997:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:998:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1005:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1015:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1016:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1024:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1034:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1044:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1045:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1046:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1053:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1054:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1061:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1062:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1087:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1088:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1097:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1098:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/smartthings/sensor.py:1211:5-23: Class member `SmartThingsSensor.entity_description` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smartthings/sensor.py:1211:5-23: Class member `SmartThingsSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/smartthings/sensor.py:974:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:983:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:984:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:993:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:994:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:996:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1003:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1004:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1008:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1009:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1013:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1014:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1022:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1023:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1028:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1029:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1036:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1046:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1047:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1055:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1056:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1066:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1076:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1086:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1087:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1088:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1095:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1096:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1107:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1108:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1137:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1138:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1151:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1152:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1163:17-20: Unexpected keyword argument `key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1164:17-32: Unexpected keyword argument `translation_key` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1167:17-32: Unexpected keyword argument `entity_category` in function `SmartThingsSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/smartthings/sensor.py:1276:5-23: Class member `SmartThingsSensor.entity_description` overrides parent class `SmartThingsEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/smartthings/sensor.py:1276:5-23: Class member `SmartThingsSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/smartthings/switch.py:64:5-8: Unexpected keyword argument `key` in function `SmartThingsSwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/switch.py:66:5-9: Unexpected keyword argument `name` in function `SmartThingsSwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smartthings/switch.py:72:9-12: Unexpected keyword argument `key` in function `SmartThingsCommandSwitchEntityDescription.__init__` [unexpected-keyword] @@ -26230,8 +26530,6 @@ ERROR homeassistant/components/smlight/button.py:108:5-16: Class member `SmButto ERROR homeassistant/components/smlight/button.py:109:5-23: Class member `SmButton.entity_description` overrides parent class `SmEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/smlight/button.py:109:5-23: Class member `SmButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/smlight/coordinator.py:56:5-17: Class member `SmBaseDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smlight/coordinator.py:157:14-29: Class member `SmFirmwareUpdateCoordinator.update_interval` overrides parent class `SmBaseDataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/smlight/coordinator.py:157:32-54: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@SmFirmwareUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/smlight/sensor.py:47:9-12: Unexpected keyword argument `key` in function `SmInfoEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smlight/sensor.py:48:9-24: Unexpected keyword argument `translation_key` in function `SmInfoEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/smlight/sensor.py:54:9-12: Unexpected keyword argument `key` in function `SmInfoEntityDescription.__init__` [unexpected-keyword] @@ -26336,7 +26634,7 @@ ERROR homeassistant/components/snoo/sensor.py:33:9-12: Unexpected keyword argume ERROR homeassistant/components/snoo/sensor.py:34:9-24: Unexpected keyword argument `translation_key` in function `SnooSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/snoo/sensor.py:40:9-12: Unexpected keyword argument `key` in function `SnooSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/snoo/sensor.py:41:9-24: Unexpected keyword argument `translation_key` in function `SnooSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/snoo/sensor.py:42:18-69: Argument `(data: SnooData) -> datetime | None` is not assignable to parameter `value_fn` with type `(SnooData) -> float | int | str | None` in function `SnooSensorEntityDescription.__init__` [bad-argument-type] +ERROR homeassistant/components/snoo/sensor.py:42:18-69: Argument `(data: SnooData) -> datetime | None` is not assignable to parameter `value_fn` with type `(SnooData) -> StateType` in function `SnooSensorEntityDescription.__init__` [bad-argument-type] ERROR homeassistant/components/snoo/sensor.py:44:9-24: Unexpected keyword argument `entity_category` in function `SnooSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/snoo/sensor.py:66:5-23: Class member `SnooSensor.entity_description` overrides parent class `SnooDescriptionEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/snoo/sensor.py:66:5-23: Class member `SnooSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] @@ -26349,7 +26647,7 @@ ERROR homeassistant/components/snoo/switch.py:68:5-23: Class member `SnooSwitch. ERROR homeassistant/components/snoo/switch.py:68:5-23: Class member `SnooSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/snooz/__init__.py:63:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/snooz/fan.py:80:5-29: Class member `SnoozFan._attr_supported_features` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/solaredge/coordinator.py:341:5-17: Class member `SolarEdgeModulesCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/solaredge/coordinator.py:340:5-17: Class member `SolarEdgeModulesCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/solaredge/sensor.py:46:9-12: Unexpected keyword argument `key` in function `SolarEdgeSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/solaredge/sensor.py:48:9-24: Unexpected keyword argument `translation_key` in function `SolarEdgeSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/solaredge/sensor.py:54:9-12: Unexpected keyword argument `key` in function `SolarEdgeSensorEntityDescription.__init__` [unexpected-keyword] @@ -26608,8 +26906,6 @@ ERROR homeassistant/components/sonos/media_player.py:325:36-56: Cannot index int ERROR homeassistant/components/sonos/media_player.py:328:13-42: Cannot index into `dict[tuple[bool, bool] | tuple[bool, str], str]` [bad-index] ERROR homeassistant/components/sonos/media_player.py:381:22-49: Object of class `DidlFavorite` has no attribute `resource_meta_data` [missing-attribute] ERROR homeassistant/components/sonos/media_player.py:487:46-490:22: Argument `dict[str, dict[str, Any] | str]` is not assignable to parameter `translation_placeholders` with type `dict[str, str] | None` in function `homeassistant.exceptions.HomeAssistantError.__init__` [bad-argument-type] -ERROR homeassistant/components/sonos/number.py:122:14-36: Class member `SonosLevelEntity._attr_native_min_value` overrides parent class `NumberEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/sonos/number.py:122:43-65: Class member `SonosLevelEntity._attr_native_max_value` overrides parent class `NumberEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/sonos/select.py:36:9-12: Unexpected keyword argument `key` in function `SonosSelectEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/sonos/select.py:37:9-24: Unexpected keyword argument `translation_key` in function `SonosSelectEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/sonos/sensor.py:100:5-23: Class member `SonosBatteryEntity._attr_device_class` overrides parent class `SonosEntity` in an inconsistent manner [bad-override] @@ -26650,15 +26946,12 @@ ERROR homeassistant/components/speedtestdotnet/sensor.py:85:5-23: Class member ` ERROR homeassistant/components/speedtestdotnet/sensor.py:85:5-23: Class member `SpeedtestSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/splunk/__init__.py:9:1-56: Could not find import of `hass_splunk` [missing-import] ERROR homeassistant/components/spotify/coordinator.py:57:5-17: Class member `SpotifyCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/spotify/coordinator.py:85:14-29: Class member `SpotifyCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/spotify/coordinator.py:85:32-47: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@SpotifyCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/spotify/coordinator.py:139:40-72: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@SpotifyCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/sql/config_flow.py:173:9-31: Class member `SQLConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/sql/config_flow.py:198:31-52: `db_url_for_validation` may be uninitialized [unbound-name] ERROR homeassistant/components/sql/sensor.py:284:17-31: `rendered_query` is uninitialized [unbound-name] ERROR homeassistant/components/sql/sensor.py:295:51-54: Cannot set item in `dict[str, Any]` [unsupported-operation] ERROR homeassistant/components/sql/services.py:78:25-34: Expected a callable, got `None` [not-callable] -ERROR homeassistant/components/sql/services.py:95:35-38: Cannot set item in `dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None]` [unsupported-operation] +ERROR homeassistant/components/sql/services.py:95:35-38: Cannot set item in `dict[str, JsonValueType]` [unsupported-operation] ERROR homeassistant/components/sql/util.py:92:29-37: `instance` may be uninitialized [unbound-name] ERROR homeassistant/components/sql/util.py:94:16-24: `instance` may be uninitialized [unbound-name] ERROR homeassistant/components/sql/util.py:95:54-62: `instance` may be uninitialized [unbound-name] @@ -26668,11 +26961,18 @@ ERROR homeassistant/components/squeezebox/__init__.py:168:46-70: Argument `int | ERROR homeassistant/components/squeezebox/__init__.py:176:21-41: Argument `set[tuple[str, str | None]]` is not assignable to parameter `identifiers` with type `UndefinedType | set[tuple[str, str]] | None` in function `homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create` [bad-argument-type] ERROR homeassistant/components/squeezebox/__init__.py:181:20-27: Argument `int | list[Unknown] | str | Unknown | None` is not assignable to parameter `sw_version` with type `UndefinedType | str | None` in function `homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create` [bad-argument-type] ERROR homeassistant/components/squeezebox/__init__.py:207:42-50: Argument `str | None` is not assignable to parameter `server_uuid` with type `str` in function `homeassistant.components.squeezebox.coordinator.SqueezeBoxPlayerUpdateCoordinator.__init__` [bad-argument-type] -ERROR homeassistant/components/squeezebox/binary_sensor.py:25:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/squeezebox/binary_sensor.py:29:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/squeezebox/binary_sensor.py:31:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/squeezebox/binary_sensor.py:51:7-31: Field `entity_description` is declared `EntityDescription` in ancestor `class LMSStatusEntity: ... +ERROR homeassistant/components/squeezebox/binary_sensor.py:34:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/squeezebox/binary_sensor.py:38:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/squeezebox/binary_sensor.py:40:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/squeezebox/binary_sensor.py:46:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/squeezebox/binary_sensor.py:47:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/squeezebox/binary_sensor.py:50:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/squeezebox/binary_sensor.py:51:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/squeezebox/binary_sensor.py:55:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/squeezebox/binary_sensor.py:56:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/squeezebox/binary_sensor.py:97:7-31: Field `entity_description` is declared `EntityDescription` in ancestor `class LMSStatusEntity: ... `, which is not assignable to the type `BinarySensorEntityDescription` implied by multiple inheritance [inconsistent-inheritance] +ERROR homeassistant/components/squeezebox/binary_sensor.py:118:14-32: Class member `SqueezeboxBinarySensorEntity.entity_description` overrides parent class `SqueezeboxEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/squeezebox/browse_media.py:162:43-47: Argument `int | str` is not assignable to parameter `*parameters` with type `str` in function `pysqueezebox.player.Player.async_query` [bad-argument-type] ERROR homeassistant/components/squeezebox/browse_media.py:164:24-44: Type `int` is not iterable [not-iterable] ERROR homeassistant/components/squeezebox/browse_media.py:165:36-46: Cannot index into `str` [bad-index] @@ -26862,7 +27162,7 @@ ERROR homeassistant/components/starlink/button.py:43:5-23: Class member `Starlin ERROR homeassistant/components/starlink/button.py:52:9-12: Unexpected keyword argument `key` in function `StarlinkButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/starlink/button.py:54:9-24: Unexpected keyword argument `entity_category` in function `StarlinkButtonEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/starlink/coordinator.py:56:5-17: Class member `StarlinkUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/starlink/coordinator.py:84:36-56: `int` is not assignable to attribute `history_stats_start` with type `None` [bad-assignment] +ERROR homeassistant/components/starlink/coordinator.py:83:36-56: `int` is not assignable to attribute `history_stats_start` with type `None` [bad-assignment] ERROR homeassistant/components/starlink/device_tracker.py:42:9-12: Unexpected keyword argument `key` in function `StarlinkDeviceTrackerEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/starlink/device_tracker.py:43:9-24: Unexpected keyword argument `translation_key` in function `StarlinkDeviceTrackerEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/starlink/device_tracker.py:44:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `StarlinkDeviceTrackerEntityDescription.__init__` [unexpected-keyword] @@ -26871,35 +27171,35 @@ ERROR homeassistant/components/starlink/device_tracker.py:46:22-61: Argument `(d ERROR homeassistant/components/starlink/device_tracker.py:47:21-59: Argument `(data: StarlinkData) -> float | None` is not assignable to parameter `altitude_fn` with type `(StarlinkData) -> float` in function `StarlinkDeviceTrackerEntityDescription.__init__` [bad-argument-type] ERROR homeassistant/components/starlink/device_tracker.py:55:5-23: Class member `StarlinkDeviceTrackerEntity.entity_description` overrides parent class `StarlinkEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/starlink/device_tracker.py:55:5-23: Class member `StarlinkDeviceTrackerEntity.entity_description` overrides parent class `TrackerEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/starlink/sensor.py:59:5-23: Class member `StarlinkSensorEntity.entity_description` overrides parent class `StarlinkEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/starlink/sensor.py:59:5-23: Class member `StarlinkSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/starlink/sensor.py:70:5-23: Class member `StarlinkAccumulationSensor._attr_native_value` overrides parent class `StarlinkSensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/starlink/sensor.py:70:5-23: Class member `StarlinkAccumulationSensor._attr_native_value` overrides parent class `RestoreSensor` in an inconsistent manner [bad-override] -ERROR homeassistant/components/starlink/sensor.py:96:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:97:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:105:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:106:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:108:9-24: Unexpected keyword argument `entity_category` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:110:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:116:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:117:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:119:9-24: Unexpected keyword argument `entity_category` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:121:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:127:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:128:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:138:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:139:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:149:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:150:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:152:9-24: Unexpected keyword argument `entity_category` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:159:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:160:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:167:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:176:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:185:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:186:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:196:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/starlink/sensor.py:197:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:60:5-23: Class member `StarlinkSensorEntity.entity_description` overrides parent class `StarlinkEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/starlink/sensor.py:60:5-23: Class member `StarlinkSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/starlink/sensor.py:71:5-23: Class member `StarlinkAccumulationSensor._attr_native_value` overrides parent class `StarlinkSensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/starlink/sensor.py:71:5-23: Class member `StarlinkAccumulationSensor._attr_native_value` overrides parent class `RestoreSensor` in an inconsistent manner [bad-override] +ERROR homeassistant/components/starlink/sensor.py:101:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:102:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:110:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:111:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:113:9-24: Unexpected keyword argument `entity_category` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:115:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:121:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:122:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:124:9-24: Unexpected keyword argument `entity_category` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:126:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:132:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:133:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:143:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:144:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:154:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:155:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:157:9-24: Unexpected keyword argument `entity_category` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:162:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:163:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:170:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:179:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:188:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:189:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:199:9-12: Unexpected keyword argument `key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/starlink/sensor.py:200:9-24: Unexpected keyword argument `translation_key` in function `StarlinkSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/starlink/switch.py:45:5-23: Class member `StarlinkSwitchEntity.entity_description` overrides parent class `StarlinkEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/starlink/switch.py:45:5-23: Class member `StarlinkSwitchEntity.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/starlink/switch.py:63:9-12: Unexpected keyword argument `key` in function `StarlinkSwitchEntityDescription.__init__` [unexpected-keyword] @@ -26992,8 +27292,10 @@ ERROR homeassistant/components/stream/__init__.py:398:31-44: Cannot delete item ERROR homeassistant/components/stream/fmp4utils.py:28:11-12: Integer literal used as condition. It's equivalent to `True` [redundant-condition] ERROR homeassistant/components/stream/fmp4utils.py:144:23-28: Argument `str` is not assignable to parameter `object` with type `LiteralString` in function `list.append` [bad-argument-type] ERROR homeassistant/components/stream/fmp4utils.py:153:11-12: Integer literal used as condition. It's equivalent to `True` [redundant-condition] -ERROR homeassistant/components/stream/worker.py:334:27-338:10: No matching overload found for function `min` called with arguments: (int, float) [no-matching-overload] -ERROR homeassistant/components/stream/worker.py:382:60-76: `segment_duration` may be uninitialized [unbound-name] +ERROR homeassistant/components/stream/hls.py:323:27-39: `last_segment` may be uninitialized [unbound-name] +ERROR homeassistant/components/stream/hls.py:326:25-37: `last_segment` may be uninitialized [unbound-name] +ERROR homeassistant/components/stream/worker.py:336:27-340:10: No matching overload found for function `min` called with arguments: (int, float) [no-matching-overload] +ERROR homeassistant/components/stream/worker.py:384:60-76: `segment_duration` may be uninitialized [unbound-name] ERROR homeassistant/components/streamlabswater/__init__.py:49:45-54: Argument `Any | None` is not assignable to parameter `home_or_away` with type `str` in function `streamlabswater.streamlabswater.StreamlabsClient.update_location` [bad-argument-type] ERROR homeassistant/components/streamlabswater/__init__.py:63:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/streamlabswater/coordinator.py:29:5-17: Class member `StreamlabsCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] @@ -27046,34 +27348,28 @@ ERROR homeassistant/components/sun/binary_sensor.py:35:9-12: Unexpected keyword ERROR homeassistant/components/sun/binary_sensor.py:36:9-24: Unexpected keyword argument `translation_key` in function `SunBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/sun/binary_sensor.py:38:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SunBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/sun/binary_sensor.py:67:5-23: Class member `SunBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/sun/sensor.py:44:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:46:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:51:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:53:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:58:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:60:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:65:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:67:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:72:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:74:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:79:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:81:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:86:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:87:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:90:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:95:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:96:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:99:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:104:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:105:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:107:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/sun/sensor.py:133:5-23: Class member `SunSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/sunricher_dali/__init__.py:52:21-69: Unpacked argument `tuple[HomeAssistant, str, bool]` is not assignable to parameter `*args` with type `tuple[HomeAssistant, SignalType[*Unknown], *Unknown]` in function `homeassistant.core.HomeAssistant.add_job` [bad-argument-type] -ERROR homeassistant/components/sunricher_dali/__init__.py:88:12-21: `unload_ok` may be uninitialized [unbound-name] -ERROR homeassistant/components/sunricher_dali/light.py:48:21-66: Unpacked argument `tuple[HomeAssistant, str, TypedDict[LightStatus]]` is not assignable to parameter `*args` with type `tuple[HomeAssistant, SignalType[*Unknown], *Unknown]` in function `homeassistant.core.HomeAssistant.add_job` [bad-argument-type] +ERROR homeassistant/components/sun/sensor.py:39:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:41:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:46:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:48:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:53:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:55:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:60:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:62:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:67:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:69:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:74:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:76:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:81:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:82:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:85:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:90:9-12: Unexpected keyword argument `key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:91:9-24: Unexpected keyword argument `translation_key` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:94:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `SunSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/sun/sensor.py:121:5-23: Class member `SunSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/sunricher_dali/__init__.py:81:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/supla/__init__.py:9:1-34: Could not find import of `asyncpysupla` [missing-import] ERROR homeassistant/components/supla/cover.py:101:5-23: Class member `SuplaDoorEntity._attr_device_class` overrides parent class `SuplaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/surepetcare/binary_sensor.py:83:14-25: Class member `Hub._attr_is_on` overrides parent class `SurePetcareBinarySensor` in an inconsistent manner [bad-override] ERROR homeassistant/components/surepetcare/coordinator.py:36:5-17: Class member `SurePetcareDataCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/surepetcare/sensor.py:51:5-23: Class member `SureBattery._attr_device_class` overrides parent class `SurePetcareEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/surepetcare/sensor.py:91:5-23: Class member `Felaqua._attr_device_class` overrides parent class `SurePetcareEntity` in an inconsistent manner [bad-override] @@ -27113,67 +27409,69 @@ ERROR homeassistant/components/switchbee/cover.py:48:5-23: Class member `SwitchB ERROR homeassistant/components/switchbee/cover.py:49:5-29: Class member `SwitchBeeSomfyEntity._attr_supported_features` overrides parent class `SwitchBeeDeviceEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbee/cover.py:79:5-23: Class member `SwitchBeeCoverEntity._attr_device_class` overrides parent class `SwitchBeeDeviceEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbee/cover.py:80:5-29: Class member `SwitchBeeCoverEntity._attr_supported_features` overrides parent class `SwitchBeeDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/switchbot/__init__.py:195:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.air_purifier.SwitchbotAirPurifier.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:195:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.evaporative_humidifier.SwitchbotEvaporativeHumidifier.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:195:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.relay_switch.SwitchbotGarageDoorOpener.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:195:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.lock.SwitchbotLock.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:195:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:195:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch2PM.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:195:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.light_strip.SwitchbotRgbicLight.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:195:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.smart_thermostat_radiator.SwitchbotSmartThermostatRadiator.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:195:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.light_strip.SwitchbotStripLight3.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:196:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.air_purifier.SwitchbotAirPurifier.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:196:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.evaporative_humidifier.SwitchbotEvaporativeHumidifier.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:196:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.relay_switch.SwitchbotGarageDoorOpener.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:196:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.lock.SwitchbotLock.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:196:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:196:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch2PM.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:196:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.light_strip.SwitchbotRgbicLight.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:196:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.smart_thermostat_radiator.SwitchbotSmartThermostatRadiator.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:196:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.light_strip.SwitchbotStripLight3.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `key_id` in function `switchbot.devices.air_purifier.SwitchbotAirPurifier.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `encryption_key` in function `switchbot.devices.air_purifier.SwitchbotAirPurifier.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `key_id` in function `switchbot.devices.evaporative_humidifier.SwitchbotEvaporativeHumidifier.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `encryption_key` in function `switchbot.devices.evaporative_humidifier.SwitchbotEvaporativeHumidifier.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `key_id` in function `switchbot.devices.relay_switch.SwitchbotGarageDoorOpener.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `encryption_key` in function `switchbot.devices.relay_switch.SwitchbotGarageDoorOpener.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `key_id` in function `switchbot.devices.lock.SwitchbotLock.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `encryption_key` in function `switchbot.devices.lock.SwitchbotLock.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `key_id` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `encryption_key` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `key_id` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch2PM.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `encryption_key` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch2PM.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `key_id` in function `switchbot.devices.light_strip.SwitchbotRgbicLight.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `encryption_key` in function `switchbot.devices.light_strip.SwitchbotRgbicLight.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `key_id` in function `switchbot.devices.smart_thermostat_radiator.SwitchbotSmartThermostatRadiator.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `encryption_key` in function `switchbot.devices.smart_thermostat_radiator.SwitchbotSmartThermostatRadiator.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `key_id` in function `switchbot.devices.light_strip.SwitchbotStripLight3.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:207:21-211:10: Missing argument `encryption_key` in function `switchbot.devices.light_strip.SwitchbotStripLight3.__init__` [missing-argument] -ERROR homeassistant/components/switchbot/__init__.py:217:9-15: Argument `Switchbot | SwitchbotAirPurifier | SwitchbotBlindTilt | SwitchbotBulb | SwitchbotCeilingLight | SwitchbotCurtain | SwitchbotDevice | SwitchbotEvaporativeHumidifier | SwitchbotFan | SwitchbotGarageDoorOpener | SwitchbotHumidifier | SwitchbotLightStrip | SwitchbotLock | SwitchbotPlugMini | SwitchbotRelaySwitch | SwitchbotRelaySwitch2PM | SwitchbotRgbicLight | SwitchbotRollerShade | SwitchbotSmartThermostatRadiator | SwitchbotStripLight3 | SwitchbotVacuum` is not assignable to parameter `device` with type `SwitchbotDevice` in function `homeassistant.components.switchbot.coordinator.SwitchbotDataUpdateCoordinator.__init__` [bad-argument-type] -ERROR homeassistant/components/switchbot/binary_sensor.py:21:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:22:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:23:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:26:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:30:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:31:9-13: Unexpected keyword argument `name` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:35:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:36:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:38:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:41:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:45:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:46:9-13: Unexpected keyword argument `name` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:50:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:51:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:52:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:56:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:57:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:58:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:62:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:63:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:64:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:67:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:68:9-13: Unexpected keyword argument `name` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot/binary_sensor.py:100:14-32: Class member `SwitchBotBinarySensor.entity_description` overrides parent class `SwitchbotEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/switchbot/__init__.py:196:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.air_purifier.SwitchbotAirPurifier.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:196:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.evaporative_humidifier.SwitchbotEvaporativeHumidifier.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:196:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.relay_switch.SwitchbotGarageDoorOpener.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:196:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.lock.SwitchbotLock.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:196:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:196:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch2PM.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:196:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.light_strip.SwitchbotRgbicLight.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:196:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.smart_thermostat_radiator.SwitchbotSmartThermostatRadiator.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:196:24-51: Argument `Any | None` is not assignable to parameter `key_id` with type `str` in function `switchbot.devices.light_strip.SwitchbotStripLight3.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:197:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.air_purifier.SwitchbotAirPurifier.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:197:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.evaporative_humidifier.SwitchbotEvaporativeHumidifier.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:197:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.relay_switch.SwitchbotGarageDoorOpener.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:197:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.lock.SwitchbotLock.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:197:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:197:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch2PM.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:197:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.light_strip.SwitchbotRgbicLight.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:197:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.smart_thermostat_radiator.SwitchbotSmartThermostatRadiator.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:197:32-67: Argument `Any | None` is not assignable to parameter `encryption_key` with type `str` in function `switchbot.devices.light_strip.SwitchbotStripLight3.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `key_id` in function `switchbot.devices.air_purifier.SwitchbotAirPurifier.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `encryption_key` in function `switchbot.devices.air_purifier.SwitchbotAirPurifier.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `key_id` in function `switchbot.devices.evaporative_humidifier.SwitchbotEvaporativeHumidifier.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `encryption_key` in function `switchbot.devices.evaporative_humidifier.SwitchbotEvaporativeHumidifier.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `key_id` in function `switchbot.devices.relay_switch.SwitchbotGarageDoorOpener.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `encryption_key` in function `switchbot.devices.relay_switch.SwitchbotGarageDoorOpener.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `key_id` in function `switchbot.devices.lock.SwitchbotLock.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `encryption_key` in function `switchbot.devices.lock.SwitchbotLock.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `key_id` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `encryption_key` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `key_id` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch2PM.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `encryption_key` in function `switchbot.devices.relay_switch.SwitchbotRelaySwitch2PM.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `key_id` in function `switchbot.devices.light_strip.SwitchbotRgbicLight.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `encryption_key` in function `switchbot.devices.light_strip.SwitchbotRgbicLight.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `key_id` in function `switchbot.devices.smart_thermostat_radiator.SwitchbotSmartThermostatRadiator.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `encryption_key` in function `switchbot.devices.smart_thermostat_radiator.SwitchbotSmartThermostatRadiator.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `key_id` in function `switchbot.devices.light_strip.SwitchbotStripLight3.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:208:21-212:10: Missing argument `encryption_key` in function `switchbot.devices.light_strip.SwitchbotStripLight3.__init__` [missing-argument] +ERROR homeassistant/components/switchbot/__init__.py:218:9-15: Argument `Switchbot | SwitchbotAirPurifier | SwitchbotBlindTilt | SwitchbotBulb | SwitchbotCeilingLight | SwitchbotCurtain | SwitchbotDevice | SwitchbotEvaporativeHumidifier | SwitchbotFan | SwitchbotGarageDoorOpener | SwitchbotHumidifier | SwitchbotLightStrip | SwitchbotLock | SwitchbotPlugMini | SwitchbotRelaySwitch | SwitchbotRelaySwitch2PM | SwitchbotRgbicLight | SwitchbotRollerShade | SwitchbotSmartThermostatRadiator | SwitchbotStripLight3 | SwitchbotVacuum` is not assignable to parameter `device` with type `SwitchbotDevice` in function `homeassistant.components.switchbot.coordinator.SwitchbotDataUpdateCoordinator.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot/binary_sensor.py:34:9-12: Unexpected keyword argument `key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:35:9-24: Unexpected keyword argument `translation_key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:36:9-24: Unexpected keyword argument `entity_category` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:39:9-12: Unexpected keyword argument `key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:45:9-12: Unexpected keyword argument `key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:46:9-13: Unexpected keyword argument `name` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:50:9-12: Unexpected keyword argument `key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:51:9-24: Unexpected keyword argument `translation_key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:53:9-24: Unexpected keyword argument `entity_category` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:56:9-12: Unexpected keyword argument `key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:60:9-12: Unexpected keyword argument `key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:61:9-13: Unexpected keyword argument `name` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:65:9-12: Unexpected keyword argument `key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:66:9-24: Unexpected keyword argument `translation_key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:67:9-24: Unexpected keyword argument `entity_category` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:71:9-12: Unexpected keyword argument `key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:72:9-24: Unexpected keyword argument `translation_key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:73:9-24: Unexpected keyword argument `entity_category` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:77:9-12: Unexpected keyword argument `key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:78:9-24: Unexpected keyword argument `translation_key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:79:9-24: Unexpected keyword argument `entity_category` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:82:9-12: Unexpected keyword argument `key` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:83:9-13: Unexpected keyword argument `name` in function `SwitchbotBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/switchbot/binary_sensor.py:106:5-23: Class member `SwitchBotBinarySensor.entity_description` overrides parent class `SwitchbotEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/switchbot/binary_sensor.py:106:5-23: Class member `SwitchBotBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/switchbot/binary_sensor.py:119:18-36: Class member `SwitchBotBinarySensor._attr_device_class` overrides parent class `SwitchbotEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbot/climate.py:61:5-29: Class member `SwitchBotClimateEntity._attr_supported_features` overrides parent class `SwitchbotEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbot/climate.py:75:16-44: Object of class `SwitchbotDevice` has no attribute `min_temperature` [missing-attribute] ERROR homeassistant/components/switchbot/climate.py:80:16-44: Object of class `SwitchbotDevice` has no attribute `max_temperature` [missing-attribute] @@ -27188,7 +27486,7 @@ ERROR homeassistant/components/switchbot/climate.py:127:22-48: Object of class ` ERROR homeassistant/components/switchbot/climate.py:134:22-50: Object of class `SwitchbotDevice` has no attribute `set_preset_mode` [missing-attribute] ERROR homeassistant/components/switchbot/climate.py:140:22-57: Object of class `SwitchbotDevice` has no attribute `set_target_temperature` [missing-attribute] ERROR homeassistant/components/switchbot/config_flow.py:83:9-31: Class member `SwitchbotConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/switchbot/const.py:144:5-162:2: `dict[SwitchbotModel, type[SwitchbotAirPurifier] | type[SwitchbotEvaporativeHumidifier] | type[SwitchbotLock] | type[SwitchbotRelaySwitch] | type[SwitchbotRelaySwitch2PM] | type[SwitchbotRgbicLight] | type[SwitchbotSmartThermostatRadiator] | type[SwitchbotStripLight3]]` is not assignable to `dict[SwitchbotModel, SwitchbotEncryptedDevice]` [bad-assignment] +ERROR homeassistant/components/switchbot/const.py:146:5-164:2: `dict[SwitchbotModel, type[SwitchbotAirPurifier] | type[SwitchbotEvaporativeHumidifier] | type[SwitchbotLock] | type[SwitchbotRelaySwitch] | type[SwitchbotRelaySwitch2PM] | type[SwitchbotRgbicLight] | type[SwitchbotSmartThermostatRadiator] | type[SwitchbotStripLight3]]` is not assignable to `dict[SwitchbotModel, SwitchbotEncryptedDevice]` [bad-assignment] ERROR homeassistant/components/switchbot/cover.py:51:5-12: Class member `SwitchBotCurtainEntity._device` overrides parent class `SwitchbotEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbot/cover.py:52:5-23: Class member `SwitchBotCurtainEntity._attr_device_class` overrides parent class `SwitchbotEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbot/cover.py:52:5-23: Class member `SwitchBotCurtainEntity._attr_device_class` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] @@ -27263,7 +27561,8 @@ ERROR homeassistant/components/switchbot/switch.py:118:36-49: Expected 0 positio ERROR homeassistant/components/switchbot/switch.py:127:37-50: Expected 0 positional arguments, got 1 in function `switchbot.devices.bot.Switchbot.turn_off` [bad-argument-count] ERROR homeassistant/components/switchbot/vacuum.py:88:5-12: Class member `SwitchbotVacuumEntity._device` overrides parent class `SwitchbotEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbot/vacuum.py:89:5-29: Class member `SwitchbotVacuumEntity._attr_supported_features` overrides parent class `SwitchbotEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/switchbot_cloud/__init__.py:330:12-21: `unload_ok` may be uninitialized [unbound-name] +ERROR homeassistant/components/switchbot_cloud/__init__.py:135:37-58: Argument `tuple[Device | Remote, SwitchBotCoordinator]` is not assignable to parameter `object` with type `tuple[Device, SwitchBotCoordinator]` in function `list.append` [bad-argument-type] +ERROR homeassistant/components/switchbot_cloud/__init__.py:343:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/switchbot_cloud/binary_sensor.py:35:5-8: Unexpected keyword argument `key` in function `SwitchBotCloudBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/switchbot_cloud/binary_sensor.py:36:5-9: Unexpected keyword argument `name` in function `SwitchBotCloudBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/switchbot_cloud/binary_sensor.py:37:5-20: Unexpected keyword argument `translation_key` in function `SwitchBotCloudBinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -27275,17 +27574,15 @@ ERROR homeassistant/components/switchbot_cloud/binary_sensor.py:66:5-8: Unexpect ERROR homeassistant/components/switchbot_cloud/binary_sensor.py:72:5-8: Unexpected keyword argument `key` in function `SwitchBotCloudBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/switchbot_cloud/binary_sensor.py:136:5-23: Class member `SwitchBotCloudBinarySensor.entity_description` overrides parent class `SwitchBotCloudEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbot_cloud/binary_sensor.py:136:5-23: Class member `SwitchBotCloudBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/switchbot_cloud/climate.py:68:5-29: Class member `SwitchBotCloudAirConditioner._attr_supported_features` overrides parent class `SwitchBotCloudEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/switchbot_cloud/climate.py:68:5-29: Class member `SwitchBotCloudAirConditioner._attr_supported_features` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/switchbot_cloud/climate.py:124:45-126:14: No matching overload found for function `dict.get` called with arguments: (HVACMode | None, int) [no-matching-overload] -ERROR homeassistant/components/switchbot_cloud/climate.py:127:41-86: No matching overload found for function `dict.get` called with arguments: (Literal[HVACMode.AUTO, HVACMode.COOL, HVACMode.DRY, HVACMode.FAN_ONLY, HVACMode.HEAT, HVACMode.HEAT_COOL] | None, int) [no-matching-overload] -ERROR homeassistant/components/switchbot_cloud/climate.py:137:49-139:10: No matching overload found for function `dict.get` called with arguments: (str | None, int) [no-matching-overload] -ERROR homeassistant/components/switchbot_cloud/climate.py:141:25-42: No matching overload found for function `int.__new__` called with arguments: (type[int], float | None) [no-matching-overload] -ERROR homeassistant/components/switchbot_cloud/climate.py:180:40-49: Argument `Literal[HVACMode.AUTO, HVACMode.COOL, HVACMode.DRY, HVACMode.FAN_ONLY, HVACMode.HEAT, HVACMode.HEAT_COOL] | None` is not assignable to parameter `hvac_mode` with type `HVACMode` in function `SwitchBotCloudAirConditioner.async_set_hvac_mode` [bad-argument-type] +ERROR homeassistant/components/switchbot_cloud/climate.py:88:5-29: Class member `SwitchBotCloudAirConditioner._attr_supported_features` overrides parent class `SwitchBotCloudEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/switchbot_cloud/climate.py:88:5-29: Class member `SwitchBotCloudAirConditioner._attr_supported_features` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/switchbot_cloud/climate.py:144:45-146:14: No matching overload found for function `dict.get` called with arguments: (HVACMode | None, int) [no-matching-overload] +ERROR homeassistant/components/switchbot_cloud/climate.py:147:41-86: No matching overload found for function `dict.get` called with arguments: (Literal[HVACMode.AUTO, HVACMode.COOL, HVACMode.DRY, HVACMode.FAN_ONLY, HVACMode.HEAT, HVACMode.HEAT_COOL] | None, int) [no-matching-overload] +ERROR homeassistant/components/switchbot_cloud/climate.py:157:49-159:10: No matching overload found for function `dict.get` called with arguments: (str | None, int) [no-matching-overload] +ERROR homeassistant/components/switchbot_cloud/climate.py:161:25-42: No matching overload found for function `int.__new__` called with arguments: (type[int], float | None) [no-matching-overload] +ERROR homeassistant/components/switchbot_cloud/climate.py:200:40-49: Argument `Literal[HVACMode.AUTO, HVACMode.COOL, HVACMode.DRY, HVACMode.FAN_ONLY, HVACMode.HEAT, HVACMode.HEAT_COOL] | None` is not assignable to parameter `hvac_mode` with type `HVACMode` in function `SwitchBotCloudAirConditioner.async_set_hvac_mode` [bad-argument-type] +ERROR homeassistant/components/switchbot_cloud/climate.py:221:5-29: Class member `SwitchBotCloudSmartRadiatorThermostat._attr_supported_features` overrides parent class `SwitchBotCloudEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbot_cloud/coordinator.py:23:5-17: Class member `SwitchBotCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/switchbot_cloud/coordinator.py:55:22-37: Class member `SwitchBotCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/switchbot_cloud/coordinator.py:55:40-44: `None` is not assignable to attribute `update_interval` with type `(self: Self@SwitchBotCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/switchbot_cloud/coordinator.py:57:40-61: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@SwitchBotCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/switchbot_cloud/cover.py:64:5-29: Class member `SwitchBotCloudCoverCurtain._attr_supported_features` overrides parent class `SwitchBotCloudCover` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbot_cloud/cover.py:104:5-29: Class member `SwitchBotCloudCoverRollerShade._attr_supported_features` overrides parent class `SwitchBotCloudCover` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbot_cloud/cover.py:138:5-29: Class member `SwitchBotCloudCoverBlindTilt._attr_supported_features` overrides parent class `SwitchBotCloudCover` in an inconsistent manner [bad-override] @@ -27316,8 +27613,8 @@ ERROR homeassistant/components/switchbot_cloud/sensor.py:146:5-8: Unexpected key ERROR homeassistant/components/switchbot_cloud/sensor.py:153:5-8: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/switchbot_cloud/sensor.py:160:5-8: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/switchbot_cloud/sensor.py:161:5-20: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/switchbot_cloud/sensor.py:291:14-32: Class member `SwitchBotCloudSensor.entity_description` overrides parent class `SwitchBotCloudEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/switchbot_cloud/sensor.py:343:38-44: Argument `Device | Remote` is not assignable to parameter `device` with type `Device` in function `SwitchBotCloudSensor.__init__` [bad-argument-type] +ERROR homeassistant/components/switchbot_cloud/sensor.py:292:14-32: Class member `SwitchBotCloudSensor.entity_description` overrides parent class `SwitchBotCloudEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/switchbot_cloud/sensor.py:344:38-44: Argument `Device | Remote` is not assignable to parameter `device` with type `Device` in function `SwitchBotCloudSensor.__init__` [bad-argument-type] ERROR homeassistant/components/switchbot_cloud/switch.py:45:5-23: Class member `SwitchBotCloudSwitch._attr_device_class` overrides parent class `SwitchBotCloudEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchbot_cloud/vacuum.py:79:5-29: Class member `SwitchBotCloudVacuum._attr_supported_features` overrides parent class `SwitchBotCloudEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switcher_kis/button.py:37:9-12: Unexpected keyword argument `key` in function `SwitcherThermostatButtonEntityDescription.__init__` [unexpected-keyword] @@ -27345,8 +27642,6 @@ ERROR homeassistant/components/switcher_kis/sensor.py:69:9-40: Unexpected keywor ERROR homeassistant/components/switcher_kis/sensor.py:75:9-12: Unexpected keyword argument `key` in function `SwitcherSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/switcher_kis/sensor.py:129:14-32: Class member `SwitcherSensorEntity.entity_description` overrides parent class `SwitcherEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switcher_kis/sensor.py:129:14-32: Class member `SwitcherSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/switcher_kis/switch.py:159:14-25: Class member `SwitcherWaterHeaterSwitchEntity._attr_is_on` overrides parent class `SwitcherBaseSwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/switcher_kis/switch.py:159:33-47: Class member `SwitcherWaterHeaterSwitchEntity.control_result` overrides parent class `SwitcherBaseSwitchEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switcher_kis/switch.py:166:5-23: Class member `SwitcherShutterChildLockBaseSwitchEntity._attr_device_class` overrides parent class `SwitcherEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/switchmate/switch.py:8:1-34: Could not find import of `switchmate` [missing-import] ERROR homeassistant/components/syncthing/__init__.py:48:12-35: Module `aiosyncthing.exceptions` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] @@ -28039,8 +28334,8 @@ ERROR homeassistant/components/tedee/sensor.py:48:9-24: Unexpected keyword argum ERROR homeassistant/components/tedee/sensor.py:75:5-23: Class member `TedeeSensorEntity.entity_description` overrides parent class `TedeeDescriptionEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tedee/sensor.py:75:5-23: Class member `TedeeSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/telegram_bot/bot.py:455:50-59: Object of class `NoneType` has no attribute `split` [missing-attribute] -ERROR homeassistant/components/telegram_bot/bot.py:1109:40-43: `req` may be uninitialized [unbound-name] -ERROR homeassistant/components/telegram_bot/bot.py:1112:56-59: `req` may be uninitialized [unbound-name] +ERROR homeassistant/components/telegram_bot/bot.py:1112:40-43: `req` may be uninitialized [unbound-name] +ERROR homeassistant/components/telegram_bot/bot.py:1115:56-59: `req` may be uninitialized [unbound-name] ERROR homeassistant/components/telegram_bot/config_flow.py:180:9-31: Class member `TelgramBotConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/telegram_bot/event.py:31:7-29: Field `entity_description` is declared `EntityDescription` in ancestor `class TelegramBotEntity: ... `, which is not assignable to the type `EventEntityDescription` implied by multiple inheritance [inconsistent-inheritance] @@ -28051,7 +28346,7 @@ ERROR homeassistant/components/telegram_bot/notify.py:33:7-30: Field `entity_des ERROR homeassistant/components/telegram_bot/notify.py:36:5-29: Class member `TelegramBotNotifyEntity._attr_supported_features` overrides parent class `TelegramBotEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/telegram_bot/notify.py:45:51-54: Unexpected keyword argument `key` in function `homeassistant.components.notify.NotifyEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tellduslive/config_flow.py:120:15-35: Class member `FlowHandler.async_step_discovery` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tellduslive/config_flow.py:148:54-150:10: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None]]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/tellduslive/config_flow.py:148:54-150:10: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, dict[str, JsonValueType]]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/tellduslive/sensor.py:46:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tellduslive/sensor.py:52:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tellduslive/sensor.py:58:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] @@ -28088,43 +28383,40 @@ ERROR homeassistant/components/tellstick/sensor.py:140:36-49: `named_sensors` ma ERROR homeassistant/components/tellstick/sensor.py:141:31-44: `named_sensors` may be uninitialized [unbound-name] ERROR homeassistant/components/template/alarm_control_panel.py:222:14-38: Class member `AbstractTemplateAlarmControlPanel._attr_supported_features` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/template/alarm_control_panel.py:222:14-38: Class member `AbstractTemplateAlarmControlPanel._attr_supported_features` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/binary_sensor.py:186:14-32: Class member `StateBinarySensorEntity._attr_device_class` overrides parent class `TemplateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/binary_sensor.py:186:14-32: Class member `StateBinarySensorEntity._attr_device_class` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/binary_sensor.py:187:14-23: Class member `StateBinarySensorEntity._template` overrides parent class `TemplateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/binary_sensor.py:257:17-77: Object of class `NoneType` has no attribute `total_seconds` [missing-attribute] -ERROR homeassistant/components/template/binary_sensor.py:259:30-76: `() -> None` is not assignable to attribute `_delay_cancel` with type `None` [bad-assignment] -ERROR homeassistant/components/template/binary_sensor.py:313:37-50: `auto_off_time` may be uninitialized [unbound-name] -ERROR homeassistant/components/template/binary_sensor.py:314:36-49: `auto_off_time` may be uninitialized [unbound-name] +ERROR homeassistant/components/template/binary_sensor.py:184:14-32: Class member `AbstractTemplateBinarySensor._attr_device_class` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/template/binary_sensor.py:184:14-32: Class member `AbstractTemplateBinarySensor._attr_device_class` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/template/binary_sensor.py:185:14-23: Class member `AbstractTemplateBinarySensor._template` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/template/binary_sensor.py:274:17-77: Object of class `NoneType` has no attribute `total_seconds` [missing-attribute] +ERROR homeassistant/components/template/binary_sensor.py:328:37-50: `auto_off_time` may be uninitialized [unbound-name] +ERROR homeassistant/components/template/binary_sensor.py:329:36-49: `auto_off_time` may be uninitialized [unbound-name] ERROR homeassistant/components/template/button.py:108:14-32: Class member `StateButtonEntity._attr_device_class` overrides parent class `TemplateEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/template/button.py:109:14-25: Class member `StateButtonEntity._attr_state` overrides parent class `TemplateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/config_flow.py:759:60-82: Argument `_HandlerT` is not assignable to parameter `entry_id` with type `str` in function `homeassistant.config_entries.ConfigEntries.async_get_entry` [bad-argument-type] -ERROR homeassistant/components/template/config_flow.py:767:30-52: Argument `_HandlerT` is not assignable to parameter `config_entry_id` with type `str` in function `homeassistant.helpers.entity_registry.async_entries_for_config_entry` [bad-argument-type] +ERROR homeassistant/components/template/config_flow.py:762:60-82: Argument `_HandlerT` is not assignable to parameter `entry_id` with type `str` in function `homeassistant.config_entries.ConfigEntries.async_get_entry` [bad-argument-type] +ERROR homeassistant/components/template/config_flow.py:770:30-52: Argument `_HandlerT` is not assignable to parameter `config_entry_id` with type `str` in function `homeassistant.helpers.entity_registry.async_entries_for_config_entry` [bad-argument-type] ERROR homeassistant/components/template/cover.py:230:14-32: Class member `AbstractTemplateCover._attr_device_class` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/cover.py:241:14-38: Class member `AbstractTemplateCover._attr_supported_features` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/cover.py:241:14-38: Class member `AbstractTemplateCover._attr_supported_features` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/cover.py:314:30-35: `float` is not assignable to attribute `_position` with type `int | None` [bad-assignment] -ERROR homeassistant/components/template/cover.py:336:32-37: `float` is not assignable to attribute `_tilt_value` with type `int | None` [bad-assignment] +ERROR homeassistant/components/template/cover.py:237:14-38: Class member `AbstractTemplateCover._attr_supported_features` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/template/cover.py:237:14-38: Class member `AbstractTemplateCover._attr_supported_features` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/template/cover.py:282:49-54: `float` is not assignable to attribute `_attr_current_cover_position` with type `int | None` [bad-assignment] +ERROR homeassistant/components/template/cover.py:304:54-59: `float` is not assignable to attribute `_attr_current_cover_tilt_position` with type `int | None` [bad-assignment] ERROR homeassistant/components/template/event.py:130:14-32: Class member `AbstractTemplateEvent._attr_device_class` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/image.py:100:5-20: Class member `StateImageEntity._attr_image_url` overrides parent class `ImageEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/image.py:141:5-20: Class member `TriggerImageEntity._attr_image_url` overrides parent class `ImageEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/light.py:620:36-51: `int` is not assignable to attribute `_brightness` with type `None` [bad-assignment] -ERROR homeassistant/components/template/light.py:657:29-40: `list[Unknown]` is not assignable to attribute `_effect_list` with type `None` [bad-assignment] -ERROR homeassistant/components/template/light.py:666:12-43: `not in` is not supported between `Unknown` and `None` [not-iterable] -ERROR homeassistant/components/template/light.py:736:30-44: `tuple[float | int, float | int]` is not assignable to attribute `_hs_color` with type `None` [bad-assignment] -ERROR homeassistant/components/template/light.py:778:31-52: `tuple[int | Unknown | None, int | Unknown | None, int | Unknown | None]` is not assignable to attribute `_rgb_color` with type `None` [bad-assignment] -ERROR homeassistant/components/template/light.py:823:32-60: `tuple[int | Unknown | None, int | Unknown | None, int | Unknown | None, int | Unknown | None]` is not assignable to attribute `_rgbw_color` with type `None` [bad-assignment] -ERROR homeassistant/components/template/light.py:869:33-70: `tuple[int | Unknown | None, int | Unknown | None, int | Unknown | None, int | Unknown | None, int | Unknown | None]` is not assignable to attribute `_rgbww_color` with type `None` [bad-assignment] -ERROR homeassistant/components/template/light.py:901:32-43: `int` is not assignable to attribute `_max_mireds` with type `None` [bad-assignment] -ERROR homeassistant/components/template/light.py:916:32-43: `int` is not assignable to attribute `_min_mireds` with type `None` [bad-assignment] -ERROR homeassistant/components/template/light.py:966:14-38: Class member `StateLightEntity._attr_supported_features` overrides parent class `TemplateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/light.py:1180:14-38: Class member `TriggerLightEntity._attr_supported_features` overrides parent class `TriggerEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/lock.py:311:45-80: Object of class `NoneType` has no attribute `template` [missing-attribute] -ERROR homeassistant/components/template/sensor.py:231:14-32: Class member `StateSensorEntity._attr_device_class` overrides parent class `TemplateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/template/sensor.py:233:14-23: Class member `StateSensorEntity._template` overrides parent class `TemplateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/template/helpers.py:219:34-74: Argument `dict[str, Any] | list[dict[str, Any]]` is not assignable to parameter `object` with type `dict[str, Any]` in function `list.append` [bad-argument-type] +ERROR homeassistant/components/template/helpers.py:267:5-21: `deprecation_list` may be uninitialized [unbound-name] +ERROR homeassistant/components/template/image.py:101:5-20: Class member `AbstractTemplateImage._attr_image_url` overrides parent class `ImageEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/template/light.py:292:14-30: Class member `AbstractTemplateLight._attr_color_mode` overrides parent class `LightEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/template/light.py:320:14-38: Class member `AbstractTemplateLight._attr_supported_features` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/template/light.py:616:12-48: `not in` is not supported between `Unknown` and `None` [not-iterable] +ERROR homeassistant/components/template/light.py:738:36-57: `tuple[int | Unknown | None, int | Unknown | None, int | Unknown | None]` is not assignable to attribute `_attr_rgb_color` with type `tuple[int, int, int] | None` [bad-assignment] +ERROR homeassistant/components/template/light.py:783:37-65: `tuple[int | Unknown | None, int | Unknown | None, int | Unknown | None, int | Unknown | None]` is not assignable to attribute `_attr_rgbw_color` with type `tuple[int, int, int, int] | None` [bad-assignment] +ERROR homeassistant/components/template/light.py:829:38-75: `tuple[int | Unknown | None, int | Unknown | None, int | Unknown | None, int | Unknown | None, int | Unknown | None]` is not assignable to attribute `_attr_rgbww_color` with type `tuple[int, int, int, int, int] | None` [bad-assignment] +ERROR homeassistant/components/template/light.py:859:22-38: `_attr_max_mireds` is declared as final in parent class `LightEntity` [bad-override] +ERROR homeassistant/components/template/light.py:880:22-38: `_attr_min_mireds` is declared as final in parent class `LightEntity` [bad-override] +ERROR homeassistant/components/template/lock.py:284:45-80: Object of class `NoneType` has no attribute `template` [missing-attribute] +ERROR homeassistant/components/template/sensor.py:199:14-32: Class member `AbstractTemplateSensor._attr_device_class` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/template/sensor.py:201:14-23: Class member `AbstractTemplateSensor._template` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/template/update.py:154:14-32: Class member `AbstractTemplateUpdate._attr_device_class` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/template/update.py:162:14-38: Class member `AbstractTemplateUpdate._attr_supported_features` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/template/vacuum.py:239:14-38: Class member `AbstractTemplateVacuum._attr_supported_features` overrides parent class `AbstractTemplateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tesla_fleet/__init__.py:102:16-22: Argument `str` is not assignable to parameter `region` with type `Literal['cn', 'eu', 'na'] | None` in function `tesla_fleet_api.tesla.fleet.TeslaFleetApi.__init__` [bad-argument-type] +ERROR homeassistant/components/tesla_fleet/__init__.py:103:16-22: Argument `str` is not assignable to parameter `region` with type `Literal['cn', 'eu', 'na'] | None` in function `tesla_fleet_api.tesla.fleet.TeslaFleetApi.__init__` [bad-argument-type] ERROR homeassistant/components/tesla_fleet/binary_sensor.py:41:9-12: Unexpected keyword argument `key` in function `TeslaFleetBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tesla_fleet/binary_sensor.py:46:9-12: Unexpected keyword argument `key` in function `TeslaFleetBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tesla_fleet/binary_sensor.py:48:9-24: Unexpected keyword argument `entity_category` in function `TeslaFleetBinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -28217,35 +28509,22 @@ ERROR homeassistant/components/tesla_fleet/climate.py:312:17-55: Object of class ERROR homeassistant/components/tesla_fleet/climate.py:316:17-55: Object of class `EnergySite` has no attribute `set_cabin_overheat_protection` [missing-attribute] ERROR homeassistant/components/tesla_fleet/climate.py:320:17-55: Object of class `EnergySite` has no attribute `set_cabin_overheat_protection` [missing-attribute] ERROR homeassistant/components/tesla_fleet/coordinator.py:64:5-17: Class member `TeslaFleetVehicleDataCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tesla_fleet/coordinator.py:124:14-29: Class member `TeslaFleetVehicleDataCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tesla_fleet/coordinator.py:124:32-48: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TeslaFleetVehicleDataCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/tesla_fleet/coordinator.py:144:44-56: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TeslaFleetVehicleDataCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/tesla_fleet/coordinator.py:152:5-17: Class member `TeslaFleetEnergySiteLiveCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tesla_fleet/coordinator.py:176:14-29: Class member `TeslaFleetEnergySiteLiveCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tesla_fleet/coordinator.py:176:32-47: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TeslaFleetEnergySiteLiveCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/tesla_fleet/coordinator.py:184:17-27: Object of class `NoneType` has no attribute `get` Object of class `str` has no attribute `get` [missing-attribute] ERROR homeassistant/components/tesla_fleet/coordinator.py:186:16-33: `in` is not supported between `Literal['after']` and `None` [not-iterable] -ERROR homeassistant/components/tesla_fleet/coordinator.py:187:40-79: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TeslaFleetEnergySiteLiveCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/tesla_fleet/coordinator.py:187:62-77: Cannot index into `str` [bad-index] ERROR homeassistant/components/tesla_fleet/coordinator.py:187:62-77: `None` is not subscriptable [unsupported-operation] ERROR homeassistant/components/tesla_fleet/coordinator.py:206:5-17: Class member `TeslaFleetEnergySiteHistoryCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tesla_fleet/coordinator.py:233:14-29: Class member `TeslaFleetEnergySiteHistoryCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tesla_fleet/coordinator.py:233:32-56: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TeslaFleetEnergySiteHistoryCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/tesla_fleet/coordinator.py:235:32-55: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TeslaFleetEnergySiteHistoryCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/tesla_fleet/coordinator.py:246:17-27: Object of class `NoneType` has no attribute `get` Object of class `str` has no attribute `get` [missing-attribute] ERROR homeassistant/components/tesla_fleet/coordinator.py:248:16-33: `in` is not supported between `Literal['after']` and `None` [not-iterable] -ERROR homeassistant/components/tesla_fleet/coordinator.py:249:40-79: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TeslaFleetEnergySiteHistoryCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/tesla_fleet/coordinator.py:249:62-77: Cannot index into `str` [bad-index] ERROR homeassistant/components/tesla_fleet/coordinator.py:249:62-77: `None` is not subscriptable [unsupported-operation] ERROR homeassistant/components/tesla_fleet/coordinator.py:276:5-17: Class member `TeslaFleetEnergySiteInfoCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tesla_fleet/coordinator.py:301:14-29: Class member `TeslaFleetEnergySiteInfoCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tesla_fleet/coordinator.py:301:32-47: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TeslaFleetEnergySiteInfoCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/tesla_fleet/coordinator.py:309:17-27: Object of class `NoneType` has no attribute `get` Object of class `str` has no attribute `get` [missing-attribute] ERROR homeassistant/components/tesla_fleet/coordinator.py:311:16-33: `in` is not supported between `Literal['after']` and `None` [not-iterable] -ERROR homeassistant/components/tesla_fleet/coordinator.py:312:40-79: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TeslaFleetEnergySiteInfoCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/tesla_fleet/coordinator.py:312:62-77: Cannot index into `str` [bad-index] ERROR homeassistant/components/tesla_fleet/coordinator.py:312:62-77: `None` is not subscriptable [unsupported-operation] ERROR homeassistant/components/tesla_fleet/cover.py:51:5-23: Class member `TeslaFleetWindowEntity._attr_device_class` overrides parent class `TeslaFleetVehicleEntity` in an inconsistent manner [bad-override] @@ -28423,6 +28702,8 @@ ERROR homeassistant/components/tesla_fleet/switch.py:203:13-40: Object of class ERROR homeassistant/components/tesla_fleet/switch.py:214:13-40: Object of class `VehicleFleet` has no attribute `grid_import_export` [missing-attribute] ERROR homeassistant/components/tesla_fleet/switch.py:244:30-49: Object of class `VehicleFleet` has no attribute `storm_mode` [missing-attribute] ERROR homeassistant/components/tesla_fleet/switch.py:251:30-49: Object of class `VehicleFleet` has no attribute `storm_mode` [missing-attribute] +ERROR homeassistant/components/tesla_fleet/update.py:44:5-29: Class member `TeslaFleetUpdateEntity._attr_supported_features` overrides parent class `TeslaFleetVehicleEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tesla_fleet/update.py:45:5-8: Class member `TeslaFleetUpdateEntity.api` overrides parent class `TeslaFleetVehicleEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tesla_wall_connector/__init__.py:85:21-45: Object of class `dict` has no attribute `part_number` [missing-attribute] ERROR homeassistant/components/tesla_wall_connector/__init__.py:86:26-55: Object of class `dict` has no attribute `firmware_version` [missing-attribute] ERROR homeassistant/components/tesla_wall_connector/__init__.py:87:23-49: Object of class `dict` has no attribute `serial_number` [missing-attribute] @@ -28439,50 +28720,52 @@ ERROR homeassistant/components/tesla_wall_connector/config_flow.py:36:38-59: Obj ERROR homeassistant/components/tesla_wall_connector/config_flow.py:72:30-51: Object of class `dict` has no attribute `serial_number` [missing-attribute] ERROR homeassistant/components/tesla_wall_connector/config_flow.py:110:27-31: `info` may be uninitialized [unbound-name] ERROR homeassistant/components/tesla_wall_connector/config_flow.py:116:50-54: `info` may be uninitialized [unbound-name] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:53:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:54:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:55:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:57:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:60:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:61:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:69:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:70:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:74:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:78:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:79:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:83:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:87:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:88:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:92:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:96:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:97:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:102:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:105:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:106:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:111:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:114:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:115:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:120:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:123:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:124:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:129:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:132:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:133:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:138:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:141:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:142:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:147:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:150:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:151:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:156:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:159:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:160:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:165:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:168:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:169:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:177:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:206:5-23: Class member `WallConnectorSensorEntity.entity_description` overrides parent class `WallConnectorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tesla_wall_connector/sensor.py:206:5-23: Class member `WallConnectorSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:54:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:55:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:56:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:58:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:61:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:62:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:70:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:71:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:75:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:79:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:80:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:84:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:88:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:89:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:93:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:97:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:98:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:103:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:106:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:107:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:112:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:115:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:116:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:121:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:124:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:125:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:130:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:133:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:134:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:139:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:142:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:143:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:148:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:151:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:152:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:157:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:160:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:161:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:166:9-24: Unexpected keyword argument `entity_category` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:169:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:170:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:178:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:179:9-24: Unexpected keyword argument `translation_key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:187:9-12: Unexpected keyword argument `key` in function `WallConnectorSensorDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:216:5-23: Class member `WallConnectorSensorEntity.entity_description` overrides parent class `WallConnectorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tesla_wall_connector/sensor.py:216:5-23: Class member `WallConnectorSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/teslemetry/__init__.py:112:19-45: Object of class `Vehicles` has no attribute `create` [missing-attribute] ERROR homeassistant/components/teslemetry/binary_sensor.py:59:9-12: Unexpected keyword argument `key` in function `TeslemetryBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/teslemetry/binary_sensor.py:66:9-12: Unexpected keyword argument `key` in function `TeslemetryBinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -28653,8 +28936,6 @@ ERROR homeassistant/components/teslemetry/climate.py:451:14-38: Class member `Te ERROR homeassistant/components/teslemetry/climate.py:502:14-38: Class member `TeslemetryStreamingCabinOverheatProtectionEntity._attr_supported_features` overrides parent class `TeslemetryVehicleStreamEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/teslemetry/climate.py:502:14-38: Class member `TeslemetryStreamingCabinOverheatProtectionEntity._attr_supported_features` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/teslemetry/coordinator.py:45:5-17: Class member `TeslemetryVehicleDataCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/teslemetry/coordinator.py:64:18-33: Class member `TeslemetryVehicleDataCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/teslemetry/coordinator.py:64:36-52: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TeslemetryVehicleDataCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/teslemetry/coordinator.py:86:5-17: Class member `TeslemetryEnergySiteLiveCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/teslemetry/coordinator.py:133:5-17: Class member `TeslemetryEnergySiteInfoCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/teslemetry/coordinator.py:169:5-17: Class member `TeslemetryEnergyHistoryCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] @@ -29296,8 +29577,9 @@ ERROR homeassistant/components/thermopro/sensor.py:58:9-12: Unexpected keyword a ERROR homeassistant/components/thermopro/sensor.py:62:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/thermopro/sensor.py:68:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/thermopro/sensor.py:72:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/thermopro/sensor.py:129:7-37: Field `entity_description` is declared `EntityDescription` in ancestor `class PassiveBluetoothProcessorEntity: ... +ERROR homeassistant/components/thermopro/sensor.py:131:7-37: Field `entity_description` is declared `EntityDescription` in ancestor `class PassiveBluetoothProcessorEntity: ... `, which is not assignable to the type `SensorEntityDescription` implied by multiple inheritance [inconsistent-inheritance] +ERROR homeassistant/components/thermoworks_smoke/sensor.py:12:1-33: Could not find import of `stringcase` [missing-import] ERROR homeassistant/components/thermoworks_smoke/sensor.py:13:8-25: Could not find import of `thermoworks_smoke` [missing-import] ERROR homeassistant/components/thethingsnetwork/coordinator.py:22:5-17: Class member `TTNCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/thethingsnetwork/sensor.py:54:5-15: Class member `TtnDataSensor._ttn_value` overrides parent class `TTNEntity` in an inconsistent manner [bad-override] @@ -29325,7 +29607,7 @@ ERROR homeassistant/components/thread/dataset_store.py:181:16-20: `data` may be ERROR homeassistant/components/thread/diagnostics.py:73:10-13: Expected a type form, got instance of `Module[pyroute2.NDB]` [not-a-type] ERROR homeassistant/components/thread/diagnostics.py:104:26-29: Expected a type form, got instance of `Module[pyroute2.NDB]` [not-a-type] ERROR homeassistant/components/thread/diagnostics.py:122:10-13: Expected a callable, got `Module[pyroute2.NDB]` [not-callable] -ERROR homeassistant/components/thread/diagnostics.py:179:18-49: Cannot set item in `dict[str, TypedDict[Router]]` [unsupported-operation] +ERROR homeassistant/components/thread/diagnostics.py:179:18-49: Cannot set item in `dict[str, Router]` [unsupported-operation] ERROR homeassistant/components/thread/diagnostics.py:195:21-44: Object of class `NoneType` has no attribute `update` Object of class `list` has no attribute `update` Object of class `str` has no attribute `update` [missing-attribute] @@ -29390,7 +29672,6 @@ ERROR homeassistant/components/tibber/sensor.py:249:9-12: Unexpected keyword arg ERROR homeassistant/components/tibber/sensor.py:250:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tibber/sensor.py:254:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tibber/sensor.py:255:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tibber/sensor.py:416:14-32: Class member `TibberSensorElPrice._attr_native_value` overrides parent class `TibberSensor` in an inconsistent manner [bad-override] ERROR homeassistant/components/tibber/sensor.py:452:14-32: Class member `TibberDataSensor.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tibber/sensor.py:480:14-32: Class member `TibberSensorRT.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tibber/sensor.py:555:33-56: Object of class `NoneType` has no attribute `replace` [missing-attribute] @@ -29498,9 +29779,6 @@ ERROR homeassistant/components/tomato/device_tracker.py:69:18-31: Module `reques ERROR homeassistant/components/tomorrowio/__init__.py:35:11-22: `coordinator` may be uninitialized [unbound-name] ERROR homeassistant/components/tomorrowio/config_flow.py:120:9-31: Class member `TomorrowioConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/tomorrowio/coordinator.py:119:5-17: Class member `TomorrowioDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tomorrowio/coordinator.py:182:14-29: Class member `TomorrowioDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tomorrowio/coordinator.py:182:32-79: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TomorrowioDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/tomorrowio/coordinator.py:194:32-86: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TomorrowioDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/tomorrowio/sensor.py:111:9-12: Unexpected keyword argument `key` in function `TomorrowioSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tomorrowio/sensor.py:112:9-24: Unexpected keyword argument `translation_key` in function `TomorrowioSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tomorrowio/sensor.py:119:9-12: Unexpected keyword argument `key` in function `TomorrowioSensorEntityDescription.__init__` [unexpected-keyword] @@ -29550,6 +29828,7 @@ ERROR homeassistant/components/tomorrowio/sensor.py:321:9-24: Unexpected keyword ERROR homeassistant/components/tomorrowio/sensor.py:355:5-23: Class member `BaseTomorrowioSensorEntity.entity_description` overrides parent class `TomorrowioEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tomorrowio/sensor.py:355:5-23: Class member `BaseTomorrowioSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tomorrowio/weather.py:211:13-60: Argument `float | int | str | None` is not assignable to parameter `condition` with type `int | None` in function `TomorrowioWeatherEntity._translate_condition` [bad-argument-type] +ERROR homeassistant/components/toon/__init__.py:113:21-119:10: Argument `set[tuple[str, str | None, str]]` is not assignable to parameter `identifiers` with type `UndefinedType | set[tuple[str, str]] | None` in function `homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create` [bad-argument-type] ERROR homeassistant/components/toon/__init__.py:122:20-69: Argument `tuple[Literal['toon'], str | None]` is not assignable to parameter `via_device` with type `UndefinedType | tuple[str, str] | None` in function `homeassistant.helpers.device_registry.DeviceRegistry.async_get_or_create` [bad-argument-type] ERROR homeassistant/components/toon/binary_sensor.py:53:5-23: Class member `ToonBinarySensor.entity_description` overrides parent class `ToonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/toon/binary_sensor.py:53:5-23: Class member `ToonBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] @@ -29588,7 +29867,18 @@ ERROR homeassistant/components/toon/coordinator.py:153:20-44: Returned type `Sta ERROR homeassistant/components/toon/entity.py:26:25-59: Argument `set[tuple[str, str | None]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/toon/entity.py:28:19-64: Object of class `NoneType` has no attribute `rpartition` [missing-attribute] ERROR homeassistant/components/toon/entity.py:30:24-69: Object of class `NoneType` has no attribute `rpartition` [missing-attribute] +ERROR homeassistant/components/toon/entity.py:43:25-45:14: Argument `set[tuple[str, str | None, str]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/toon/entity.py:46:24-50:14: Argument `tuple[Literal['toon'], str | None, Literal['meter_adapter']]` is not assignable to parameter `via_device` with type `tuple[str, str]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/toon/entity.py:63:25-65:14: Argument `set[tuple[str, str | None, str]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/toon/entity.py:66:24-70:14: Argument `tuple[Literal['toon'], str | None, Literal['electricity']]` is not assignable to parameter `via_device` with type `tuple[str, str]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/toon/entity.py:83:25-85:14: Argument `set[tuple[str, str | None, str]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/toon/entity.py:86:24-90:14: Argument `tuple[Literal['toon'], str | None, Literal['electricity']]` is not assignable to parameter `via_device` with type `tuple[str, str]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/toon/entity.py:103:25-105:14: Argument `set[tuple[str, str | None, str]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/toon/entity.py:106:24-110:14: Argument `tuple[Literal['toon'], str | None, Literal['meter_adapter']]` is not assignable to parameter `via_device` with type `tuple[str, str]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/toon/entity.py:124:25-130:14: Argument `set[tuple[str, str | None, str]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/toon/entity.py:131:24-46: Argument `tuple[Literal['toon'], str | None]` is not assignable to parameter `via_device` with type `tuple[str, str]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/toon/entity.py:144:25-146:14: Argument `set[tuple[str, str | None, str]]` is not assignable to parameter `identifiers` with type `set[tuple[str, str]]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] +ERROR homeassistant/components/toon/entity.py:147:24-151:14: Argument `tuple[Literal['toon'], str | None, Literal['boiler_module']]` is not assignable to parameter `via_device` with type `tuple[str, str]` in function `homeassistant.helpers.device_registry.DeviceInfo.__init__` [bad-argument-type] ERROR homeassistant/components/toon/sensor.py:72:5-23: Class member `ToonSensor.entity_description` overrides parent class `ToonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/toon/sensor.py:72:5-23: Class member `ToonSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/toon/sensor.py:134:9-12: Unexpected keyword argument `key` in function `ToonSensorEntityDescription.__init__` [unexpected-keyword] @@ -29954,7 +30244,7 @@ ERROR homeassistant/components/tplink_omada/update.py:124:5-23: Class member `Om ERROR homeassistant/components/traccar/__init__.py:93:31-42: `requestdata` may be uninitialized [unbound-name] ERROR homeassistant/components/traccar/__init__.py:95:39-50: `requestdata` may be uninitialized [unbound-name] ERROR homeassistant/components/traccar/device_tracker.py:129:14-31: Class member `TraccarEntity._attr_device_info` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/traccar/device_tracker.py:129:34-132:10: `TypedDict[DeviceInfo]` is not assignable to attribute `_attr_device_info` with type `None` [bad-assignment] +ERROR homeassistant/components/traccar/device_tracker.py:129:34-132:10: `DeviceInfo` is not assignable to attribute `_attr_device_info` with type `None` [bad-assignment] ERROR homeassistant/components/traccar/device_tracker.py:142:34-144:10: `() -> None` is not assignable to attribute `_unsub_dispatcher` with type `None` [bad-assignment] ERROR homeassistant/components/traccar/device_tracker.py:176:9-31: Expected a callable, got `None` [not-callable] ERROR homeassistant/components/traccar_server/__init__.py:93:12-21: `unload_ok` may be uninitialized [unbound-name] @@ -30044,9 +30334,6 @@ Object of class `MethodType` has no attribute `append` [missing-attribute] ERROR homeassistant/components/tradfri/__init__.py:274:50-59: `device_id` may be uninitialized [unbound-name] ERROR homeassistant/components/tradfri/__init__.py:280:66-75: `device_id` may be uninitialized [unbound-name] ERROR homeassistant/components/tradfri/coordinator.py:25:5-17: Class member `TradfriDeviceDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tradfri/coordinator.py:73:14-29: Class member `TradfriDeviceDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tradfri/coordinator.py:73:32-52: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TradfriDeviceDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/tradfri/coordinator.py:98:36-68: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@TradfriDeviceDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/tradfri/fan.py:25:21-69: No matching overload found for function `max` called with arguments: (Literal[2], float) [no-matching-overload] ERROR homeassistant/components/tradfri/fan.py:58:5-29: Class member `TradfriAirPurifierFan._attr_supported_features` overrides parent class `TradfriBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tradfri/light.py:55:5-29: Class member `TradfriLight._attr_supported_features` overrides parent class `TradfriBaseEntity` in an inconsistent manner [bad-override] @@ -30172,46 +30459,38 @@ ERROR homeassistant/components/trafikverket_weatherstation/sensor.py:197:9-24: U ERROR homeassistant/components/trafikverket_weatherstation/sensor.py:199:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `TrafikverketSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/trafikverket_weatherstation/sensor.py:227:5-23: Class member `TrafikverketWeatherStation.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/trafikverket_weatherstation/sensor.py:227:5-23: Class member `TrafikverketWeatherStation.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/transmission/__init__.py:133:32-35: `new` may be uninitialized [unbound-name] +ERROR homeassistant/components/transmission/__init__.py:151:32-35: `new` may be uninitialized [unbound-name] ERROR homeassistant/components/transmission/config_flow.py:62:9-31: Class member `TransmissionFlowHandler.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/transmission/coordinator.py:36:5-17: Class member `TransmissionDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/transmission/coordinator.py:118:36-62: `list[Never]` is not assignable to attribute `_completed_torrents` with type `list[Torrent]` [bad-assignment] ERROR homeassistant/components/transmission/coordinator.py:139:34-58: `list[Never]` is not assignable to attribute `_started_torrents` with type `list[Torrent]` [bad-assignment] -ERROR homeassistant/components/transmission/sensor.py:54:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:55:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:63:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:64:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:72:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:73:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:76:38-47: `get_state` is uninitialized [unbound-name] -ERROR homeassistant/components/transmission/sensor.py:81:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:82:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:84:51-70: `_torrents_info_attr` is uninitialized [unbound-name] -ERROR homeassistant/components/transmission/sensor.py:89:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:90:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:92:51-70: `_torrents_info_attr` is uninitialized [unbound-name] -ERROR homeassistant/components/transmission/sensor.py:97:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:98:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:100:51-70: `_torrents_info_attr` is uninitialized [unbound-name] -ERROR homeassistant/components/transmission/sensor.py:105:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:106:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:108:13-29: `_filter_torrents` is uninitialized [unbound-name] -ERROR homeassistant/components/transmission/sensor.py:110:51-70: `_torrents_info_attr` is uninitialized [unbound-name] -ERROR homeassistant/components/transmission/sensor.py:115:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:116:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/sensor.py:118:13-29: `_filter_torrents` is uninitialized [unbound-name] -ERROR homeassistant/components/transmission/sensor.py:120:51-70: `_torrents_info_attr` is uninitialized [unbound-name] -ERROR homeassistant/components/transmission/sensor.py:144:5-23: Class member `TransmissionSensor.entity_description` overrides parent class `TransmissionEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/transmission/sensor.py:144:5-23: Class member `TransmissionSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/transmission/services.py:110:50-88: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[BinaryIO | Path | bytes | str, float | int | tuple[float | int, float | int] | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/components/transmission/services.py:118:46-89: Unpacked argument `tuple[Any]` is not assignable to parameter `*args` with type `tuple[int | list[int | str] | str | None, bool, float | int | tuple[float | int, float | int] | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/components/transmission/services.py:126:46-88: Unpacked argument `tuple[Any]` is not assignable to parameter `*args` with type `tuple[int | list[int | str] | str | None, float | int | tuple[float | int, float | int] | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/components/transmission/switch.py:26:9-12: Unexpected keyword argument `key` in function `TransmissionSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/switch.py:27:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/switch.py:33:9-12: Unexpected keyword argument `key` in function `TransmissionSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/switch.py:34:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/transmission/switch.py:59:5-23: Class member `TransmissionSwitch.entity_description` overrides parent class `TransmissionEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/transmission/switch.py:59:5-23: Class member `TransmissionSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/transmission/sensor.py:56:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:57:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:65:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:66:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:74:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:75:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:83:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:84:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:91:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:92:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:99:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:100:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:107:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:108:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:117:9-12: Unexpected keyword argument `key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:118:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/sensor.py:146:5-23: Class member `TransmissionSensor.entity_description` overrides parent class `TransmissionEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/transmission/sensor.py:146:5-23: Class member `TransmissionSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/transmission/services.py:110:50-88: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[BinaryIO | Path | bytes | str, float | int | tuple[_Number, _Number] | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/transmission/services.py:118:46-89: Unpacked argument `tuple[Any]` is not assignable to parameter `*args` with type `tuple[_TorrentIDs, bool, float | int | tuple[_Number, _Number] | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/transmission/services.py:126:46-88: Unpacked argument `tuple[Any]` is not assignable to parameter `*args` with type `tuple[_TorrentIDs, float | int | tuple[_Number, _Number] | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/transmission/switch.py:28:9-12: Unexpected keyword argument `key` in function `TransmissionSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/switch.py:29:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/switch.py:35:9-12: Unexpected keyword argument `key` in function `TransmissionSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/switch.py:36:9-24: Unexpected keyword argument `translation_key` in function `TransmissionSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/transmission/switch.py:61:5-23: Class member `TransmissionSwitch.entity_description` overrides parent class `TransmissionEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/transmission/switch.py:61:5-23: Class member `TransmissionSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/travisci/sensor.py:8:1-30: Could not find import of `travispy` [missing-import] ERROR homeassistant/components/travisci/sensor.py:9:1-40: Could not find import of `travispy.errors` [missing-import] ERROR homeassistant/components/travisci/sensor.py:40:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] @@ -30252,7 +30531,7 @@ ERROR homeassistant/components/tts/media_source.py:145:61-80: Unpacked keyword a ERROR homeassistant/components/tts/media_source.py:145:61-80: Unpacked keyword argument `object` is not assignable to parameter `options` with type `dict[Unknown, Unknown] | None` in function `homeassistant.components.tts.SpeechManager.async_create_result_stream` [bad-argument-type] ERROR homeassistant/components/tts/media_source.py:145:70-79: TypedDict `ParsedMediaSourceStreamId` does not have key `options` [bad-typed-dict-key] ERROR homeassistant/components/tts/media_source.py:146:49-58: TypedDict `ParsedMediaSourceStreamId` does not have key `message` [bad-typed-dict-key] -ERROR homeassistant/components/tuya/__init__.py:130:12-21: `unload_ok` may be uninitialized [unbound-name] +ERROR homeassistant/components/tuya/__init__.py:134:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/tuya/alarm_control_panel.py:28:13-16: Unexpected keyword argument `key` in function `homeassistant.components.alarm_control_panel.AlarmControlPanelEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/alarm_control_panel.py:29:13-17: Unexpected keyword argument `name` in function `homeassistant.components.alarm_control_panel.AlarmControlPanelEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/alarm_control_panel.py:120:41-58: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] @@ -30358,201 +30637,205 @@ ERROR homeassistant/components/tuya/button.py:62:13-28: Unexpected keyword argum ERROR homeassistant/components/tuya/button.py:82:43-60: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] ERROR homeassistant/components/tuya/button.py:114:14-32: Class member `TuyaButtonEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tuya/camera.py:64:5-29: Class member `TuyaCameraEntity._attr_supported_features` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/climate.py:63:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/climate.py:67:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/climate.py:71:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/climate.py:75:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/climate.py:79:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/climate.py:83:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/climate.py:108:46-61: Cannot index into `dict[DeviceCategory, TuyaClimateEntityDescription]` [bad-index] -ERROR homeassistant/components/tuya/climate.py:133:5-23: Class member `TuyaClimateEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/climate.py:133:5-23: Class member `TuyaClimateEntity.entity_description` overrides parent class `ClimateEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/climate.py:301:17-78: Argument `dict[str, DPCode | bool | str]` is not assignable to parameter `object` with type `dict[str, DPCode | bool]` in function `list.append` [bad-argument-type] +ERROR homeassistant/components/tuya/climate.py:151:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/climate.py:155:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/climate.py:159:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/climate.py:163:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/climate.py:167:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/climate.py:171:9-12: Unexpected keyword argument `key` in function `TuyaClimateEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/climate.py:289:46-61: Cannot index into `dict[DeviceCategory, TuyaClimateEntityDescription]` [bad-index] +ERROR homeassistant/components/tuya/climate.py:326:5-23: Class member `TuyaClimateEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/climate.py:326:5-23: Class member `TuyaClimateEntity.entity_description` overrides parent class `ClimateEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tuya/config_flow.py:144:19-39: Argument `Any | None` is not assignable to parameter `title` with type `str` in function `homeassistant.config_entries.ConfigFlow.async_create_entry` [bad-argument-type] ERROR homeassistant/components/tuya/config_flow.py:205:16-23: `success` may be uninitialized [unbound-name] -ERROR homeassistant/components/tuya/cover.py:95:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:96:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:97:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:103:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:104:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:105:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:111:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:112:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:113:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:121:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:122:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:129:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:130:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:131:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:137:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:138:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:139:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:145:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:146:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:157:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:158:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:166:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:167:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:174:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:175:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:176:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:185:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:186:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/cover.py:209:42-59: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] -ERROR homeassistant/components/tuya/cover.py:247:5-23: Class member `TuyaCoverEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/cover.py:247:5-23: Class member `TuyaCoverEntity.entity_description` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/cover.py:263:14-38: Class member `TuyaCoverEntity._attr_supported_features` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/diagnostics.py:50:8-25: Object of class `NoneType` has no attribute `client` [missing-attribute] -ERROR homeassistant/components/tuya/diagnostics.py:51:26-56: Object of class `object` has no attribute `is_connected` [missing-attribute] -ERROR homeassistant/components/tuya/diagnostics.py:106:13-35: Cannot set item in `bool` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:106:13-35: Cannot set item in `str` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:106:13-35: Cannot set item in `None` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:106:38-46: Cannot set item in `dict[str, dict[str, dict[str, Any] | str]]` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:109:9-31: Cannot set item in `bool` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:109:9-31: Cannot set item in `str` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:109:9-31: Cannot set item in `None` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:113:9-40: Cannot set item in `bool` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:113:9-40: Cannot set item in `str` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:113:9-40: Cannot set item in `None` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:120:9-48: Cannot set item in `bool` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:120:9-48: Cannot set item in `str` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:120:9-48: Cannot set item in `None` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:130:34-136:10: Cannot set item in `dict[str, bool | dict[str, dict[str, dict[str, Any] | str]] | str | None]` [unsupported-operation] -ERROR homeassistant/components/tuya/diagnostics.py:160:13-54: Object of class `DeviceEntryDisabler` has no attribute `append` +ERROR homeassistant/components/tuya/cover.py:180:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:181:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:182:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:188:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:189:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:190:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:196:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:197:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:198:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:206:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:207:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:214:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:215:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:216:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:222:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:223:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:224:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:230:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:231:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:240:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:241:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:249:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:250:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:257:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:258:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:259:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:268:13-16: Unexpected keyword argument `key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:269:13-28: Unexpected keyword argument `translation_key` in function `TuyaCoverEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/cover.py:307:42-59: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] +ERROR homeassistant/components/tuya/cover.py:350:5-23: Class member `TuyaCoverEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/cover.py:350:5-23: Class member `TuyaCoverEntity.entity_description` overrides parent class `CoverEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/cover.py:368:14-38: Class member `TuyaCoverEntity._attr_supported_features` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/diagnostics.py:51:8-25: Object of class `NoneType` has no attribute `client` [missing-attribute] +ERROR homeassistant/components/tuya/diagnostics.py:52:26-56: Object of class `object` has no attribute `is_connected` [missing-attribute] +ERROR homeassistant/components/tuya/diagnostics.py:108:13-35: Cannot set item in `bool` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:108:13-35: Cannot set item in `set[str]` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:108:13-35: Cannot set item in `str` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:108:13-35: Cannot set item in `None` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:108:38-46: Cannot set item in `dict[str, dict[str, dict[str, Any] | str]]` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:111:9-31: Cannot set item in `bool` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:111:9-31: Cannot set item in `set[str]` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:111:9-31: Cannot set item in `str` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:111:9-31: Cannot set item in `None` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:115:9-40: Cannot set item in `bool` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:115:9-40: Cannot set item in `set[str]` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:115:9-40: Cannot set item in `str` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:115:9-40: Cannot set item in `None` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:122:9-48: Cannot set item in `bool` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:122:9-48: Cannot set item in `set[str]` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:122:9-48: Cannot set item in `str` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:122:9-48: Cannot set item in `None` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:132:34-138:10: Cannot set item in `dict[str, bool | dict[str, dict[str, dict[str, Any] | str]] | set[str] | str | None]` [unsupported-operation] +ERROR homeassistant/components/tuya/diagnostics.py:162:13-54: Object of class `DeviceEntryDisabler` has no attribute `append` Object of class `NoneType` has no attribute `append` Object of class `bool` has no attribute `append` Object of class `str` has no attribute `append` [missing-attribute] -ERROR homeassistant/components/tuya/event.py:27:13-16: Unexpected keyword argument `key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:29:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:30:13-37: Unexpected keyword argument `translation_placeholders` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:33:13-16: Unexpected keyword argument `key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:35:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:36:13-37: Unexpected keyword argument `translation_placeholders` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:39:13-16: Unexpected keyword argument `key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:41:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:42:13-37: Unexpected keyword argument `translation_placeholders` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:45:13-16: Unexpected keyword argument `key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:47:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:48:13-37: Unexpected keyword argument `translation_placeholders` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:51:13-16: Unexpected keyword argument `key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:53:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:54:13-37: Unexpected keyword argument `translation_placeholders` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:57:13-16: Unexpected keyword argument `key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:59:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:60:13-37: Unexpected keyword argument `translation_placeholders` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:63:13-16: Unexpected keyword argument `key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:65:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:66:13-37: Unexpected keyword argument `translation_placeholders` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:69:13-16: Unexpected keyword argument `key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:71:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:72:13-37: Unexpected keyword argument `translation_placeholders` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:75:13-16: Unexpected keyword argument `key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:77:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:78:13-37: Unexpected keyword argument `translation_placeholders` in function `homeassistant.components.event.EventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/event.py:98:42-59: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] -ERROR homeassistant/components/tuya/event.py:123:5-23: Class member `TuyaEventEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/fan.py:213:25-43: Argument `list[str]` is not assignable to parameter `ordered_list` with type `list[bool | int | str]` in function `homeassistant.util.percentage.percentage_to_ordered_list_item` [bad-argument-type] +ERROR homeassistant/components/tuya/event.py:111:13-16: Unexpected keyword argument `key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:113:13-28: Unexpected keyword argument `translation_key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:117:13-16: Unexpected keyword argument `key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:119:13-28: Unexpected keyword argument `translation_key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:125:13-16: Unexpected keyword argument `key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:127:13-28: Unexpected keyword argument `translation_key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:128:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:131:13-16: Unexpected keyword argument `key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:133:13-28: Unexpected keyword argument `translation_key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:134:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:137:13-16: Unexpected keyword argument `key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:139:13-28: Unexpected keyword argument `translation_key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:140:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:143:13-16: Unexpected keyword argument `key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:145:13-28: Unexpected keyword argument `translation_key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:146:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:149:13-16: Unexpected keyword argument `key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:151:13-28: Unexpected keyword argument `translation_key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:152:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:155:13-16: Unexpected keyword argument `key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:157:13-28: Unexpected keyword argument `translation_key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:158:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:161:13-16: Unexpected keyword argument `key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:163:13-28: Unexpected keyword argument `translation_key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:164:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:167:13-16: Unexpected keyword argument `key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:169:13-28: Unexpected keyword argument `translation_key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:170:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:173:13-16: Unexpected keyword argument `key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:175:13-28: Unexpected keyword argument `translation_key` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:176:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/event.py:196:42-59: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] +ERROR homeassistant/components/tuya/event.py:221:5-23: Class member `TuyaEventEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tuya/humidifier.py:64:9-12: Unexpected keyword argument `key` in function `TuyaHumidifierEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/humidifier.py:71:9-12: Unexpected keyword argument `key` in function `TuyaHumidifierEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/humidifier.py:95:47-64: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] ERROR homeassistant/components/tuya/humidifier.py:130:5-23: Class member `TuyaHumidifierEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tuya/humidifier.py:130:5-23: Class member `TuyaHumidifierEntity.entity_description` overrides parent class `HumidifierEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/light.py:154:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:155:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:162:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:163:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:164:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:169:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:170:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:179:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:180:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:190:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:191:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:200:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:201:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:202:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:208:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:209:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:216:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:217:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:223:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:224:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:225:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:231:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:232:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:240:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:241:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:246:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:247:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:256:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:257:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:266:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:267:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:275:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:276:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:284:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:285:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:286:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:291:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:292:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:293:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:298:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:299:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:300:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:305:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:306:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:307:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:312:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:313:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:321:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:322:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:323:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:328:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:329:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:337:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:338:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:339:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:344:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:346:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:349:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:350:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:351:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:356:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:358:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:363:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:364:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:365:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:234:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:235:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:242:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:243:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:244:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:249:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:250:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:259:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:260:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:270:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:271:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:280:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:281:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:282:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:288:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:289:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:296:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:297:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:303:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:304:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:305:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:311:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:312:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:320:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:321:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:326:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:327:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:336:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:337:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:346:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:347:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:355:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:356:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:364:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:365:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:366:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/light.py:371:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/light.py:372:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:373:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:379:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:380:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:381:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:389:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:390:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:396:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:397:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:398:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:402:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:403:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:404:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:410:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:411:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:420:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:421:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:430:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:431:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:438:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:439:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:444:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:445:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/light.py:522:42-59: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] -ERROR homeassistant/components/tuya/light.py:554:5-23: Class member `TuyaLightEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/light.py:554:5-23: Class member `TuyaLightEntity.entity_description` overrides parent class `LightEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/light.py:703:37-42: `color` may be uninitialized [unbound-name] -ERROR homeassistant/components/tuya/light.py:708:37-42: `color` may be uninitialized [unbound-name] -ERROR homeassistant/components/tuya/light.py:713:37-47: `brightness` may be uninitialized [unbound-name] -ERROR homeassistant/components/tuya/models.py:431:33-58: Argument `dict[str, Any] | str` is not assignable to parameter `data` with type `str` in function `TypeInformation.from_json` [bad-argument-type] +ERROR homeassistant/components/tuya/light.py:373:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:378:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:379:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:380:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:385:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:386:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:387:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:392:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:393:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:401:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:402:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:403:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:408:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:409:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:417:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:418:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:419:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:424:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:426:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:429:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:430:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:431:13-28: Unexpected keyword argument `entity_category` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:436:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:438:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:443:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:444:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:445:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:451:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:452:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:453:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:459:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:460:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:461:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:469:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:470:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:476:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:477:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:478:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:482:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:483:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:484:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:490:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:491:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:500:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:501:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:510:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:511:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:518:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:519:13-28: Unexpected keyword argument `translation_key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:524:13-16: Unexpected keyword argument `key` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:525:13-17: Unexpected keyword argument `name` in function `TuyaLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/light.py:619:42-59: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] +ERROR homeassistant/components/tuya/light.py:661:5-23: Class member `TuyaLightEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/light.py:661:5-23: Class member `TuyaLightEntity.entity_description` overrides parent class `LightEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/light.py:765:35-40: `color` may be uninitialized [unbound-name] +ERROR homeassistant/components/tuya/light.py:765:42-52: `brightness` may be uninitialized [unbound-name] ERROR homeassistant/components/tuya/number.py:33:13-16: Unexpected keyword argument `key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/number.py:34:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/number.py:36:13-28: Unexpected keyword argument `entity_category` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] @@ -30755,8 +31038,8 @@ ERROR homeassistant/components/tuya/number.py:433:13-28: Unexpected keyword argu ERROR homeassistant/components/tuya/number.py:438:13-16: Unexpected keyword argument `key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/number.py:439:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.number.NumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/number.py:463:43-60: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] -ERROR homeassistant/components/tuya/number.py:497:14-32: Class member `TuyaNumberEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/number.py:534:22-40: Class member `TuyaNumberEntity._attr_device_class` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/number.py:495:14-32: Class member `TuyaNumberEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/number.py:532:22-40: Class member `TuyaNumberEntity._attr_device_class` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tuya/scene.py:61:41-59: Argument `int` is not assignable to parameter `home_id` with type `str` in function `tuya_sharing.manager.Manager.trigger_scene` [bad-argument-type] ERROR homeassistant/components/tuya/select.py:23:13-16: Unexpected keyword argument `key` in function `homeassistant.components.select.SelectEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/select.py:24:13-28: Unexpected keyword argument `entity_category` in function `homeassistant.components.select.SelectEntityDescription.__init__` [unexpected-keyword] @@ -30927,314 +31210,310 @@ ERROR homeassistant/components/tuya/select.py:337:13-28: Unexpected keyword argu ERROR homeassistant/components/tuya/select.py:366:43-60: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] ERROR homeassistant/components/tuya/select.py:400:14-32: Class member `TuyaSelectEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tuya/sensor.py:83:45-56: No matching overload found for function `dict.get` called with arguments: (Any | None) [no-matching-overload] -ERROR homeassistant/components/tuya/sensor.py:177:9-12: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:178:9-24: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:182:9-24: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:185:9-12: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:186:9-24: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:190:9-24: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:193:9-12: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:194:9-24: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:195:9-24: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:198:9-12: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:199:9-24: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:201:9-24: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:205:9-12: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:206:9-24: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:208:9-24: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:219:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:220:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:224:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:227:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:228:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:231:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:234:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:235:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:239:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:187:9-12: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:188:9-24: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:192:9-24: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:195:9-12: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:196:9-24: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:200:9-24: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:203:9-12: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:204:9-24: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:205:9-24: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:208:9-12: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:209:9-24: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:211:9-24: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:215:9-12: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:216:9-24: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:218:9-24: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:229:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:230:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:234:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:237:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:238:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:241:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:244:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:245:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:250:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:251:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:256:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:257:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:262:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:263:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:264:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:269:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:270:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:275:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:276:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:281:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:282:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:288:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:289:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:293:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:294:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:299:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:300:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:306:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:307:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:315:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:316:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:249:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:254:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:255:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:260:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:261:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:266:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:267:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:272:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:273:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:274:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:279:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:280:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:285:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:286:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:291:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:292:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:298:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:299:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:303:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:304:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:309:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:310:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:316:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:317:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:325:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:326:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:331:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:332:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:339:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:340:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:346:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:347:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:353:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:354:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:357:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:360:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:361:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:366:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:367:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:372:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:373:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:376:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:379:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:379:37-52: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:384:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:385:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:335:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:336:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:341:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:342:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:349:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:350:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:356:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:357:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:363:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:364:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:367:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:370:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:371:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:376:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:377:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:382:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:383:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:386:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:389:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:390:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:391:13-17: Unexpected keyword argument `name` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:395:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:396:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:401:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:402:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:408:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:409:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:415:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:416:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:422:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:423:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:427:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:428:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:431:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:432:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:389:37-52: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:394:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:395:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:399:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:400:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:401:13-17: Unexpected keyword argument `name` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:405:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:406:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:411:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:412:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:418:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:419:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:425:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:426:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:432:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:433:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:437:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:438:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:443:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:444:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:449:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:450:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:451:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:458:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:459:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:464:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:465:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:470:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:471:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:476:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:477:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:482:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:483:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:485:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:489:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:491:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:497:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:499:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:505:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:507:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:513:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:515:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:521:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:523:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:529:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:531:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:537:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:539:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:545:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:547:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:553:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:555:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:561:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:562:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:566:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:569:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:570:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:573:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:576:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:577:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:581:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:441:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:442:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:447:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:448:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:453:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:454:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:459:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:460:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:461:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:468:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:469:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:474:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:475:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:480:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:481:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:486:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:487:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:492:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:493:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:495:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:499:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:501:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:507:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:509:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:515:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:517:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:523:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:525:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:531:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:533:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:539:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:541:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:547:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:549:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:555:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:557:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:563:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:565:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:571:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:572:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:576:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:579:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:580:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:583:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:586:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:587:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:595:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:596:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:599:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:600:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:591:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:596:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:597:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:605:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:606:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:611:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:612:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:618:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:619:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:623:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:624:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:629:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:630:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:636:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:637:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:609:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:610:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:615:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:616:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:621:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:622:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:628:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:629:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:633:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:634:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:639:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:640:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:646:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:647:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:653:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:654:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:659:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:660:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:666:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:667:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:672:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:673:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:678:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:679:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:686:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:687:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:692:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:693:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:698:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:699:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:704:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:705:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:706:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:711:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:712:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:719:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:720:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:724:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:727:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:728:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:731:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:734:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:735:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:739:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:742:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:743:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:748:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:749:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:756:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:757:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:758:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:761:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:762:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:768:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:769:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:774:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:775:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:780:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:781:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:786:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:787:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:793:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:794:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:796:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:799:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:800:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:802:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:805:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:806:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:811:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:812:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:656:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:657:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:663:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:664:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:669:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:670:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:676:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:677:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:682:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:683:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:688:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:689:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:696:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:697:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:702:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:703:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:708:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:709:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:714:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:715:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:716:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:721:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:722:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:729:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:730:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:734:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:737:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:738:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:741:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:744:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:745:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:749:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:752:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:753:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:758:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:759:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:766:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:767:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:768:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:771:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:772:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:778:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:779:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:784:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:785:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:790:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:791:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:796:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:797:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:803:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:804:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:806:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:809:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:810:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:812:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:815:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:816:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:821:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:822:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:827:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:828:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:833:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:834:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:845:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:846:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:851:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:852:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:856:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:857:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:862:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:863:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:868:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:869:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:872:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:873:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:880:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:881:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:825:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:826:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:831:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:832:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:837:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:838:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:843:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:844:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:855:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:856:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:861:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:862:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:867:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:868:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:871:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:872:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:877:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:878:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:883:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:884:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:887:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:888:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:892:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:893:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:898:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:899:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:904:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:905:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:911:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:912:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:917:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:918:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:924:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:925:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:934:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:935:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:942:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:943:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:948:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:949:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:954:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:955:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:960:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:961:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:962:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:967:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:968:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:969:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:974:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:975:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:976:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:981:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:982:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:987:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:988:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:993:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:994:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:999:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1000:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1001:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1006:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1007:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1008:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1013:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1014:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1015:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1020:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1021:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1026:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1027:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1032:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1037:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1038:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1043:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1044:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1049:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1050:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1054:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1055:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1061:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1062:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1067:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1068:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1073:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1074:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1079:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1080:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:895:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:896:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:902:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:903:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:907:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:908:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:913:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:914:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:919:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:920:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:926:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:927:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:932:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:933:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:939:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:940:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:949:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:950:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:957:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:958:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:963:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:964:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:969:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:970:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:975:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:976:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:977:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:982:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:983:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:984:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:989:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:990:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:991:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:996:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:997:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1002:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1003:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1008:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1009:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1014:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1015:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1016:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1021:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1022:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1023:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1028:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1029:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1030:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1035:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1036:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1041:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1042:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1047:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1052:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1053:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1058:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1059:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1064:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1065:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1069:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1070:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1076:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1077:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1082:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1083:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1088:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1089:13-17: Unexpected keyword argument `name` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1090:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1097:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1098:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1102:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1103:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1107:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1108:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1089:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1094:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1095:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1103:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1104:13-17: Unexpected keyword argument `name` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1105:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1112:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1113:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1117:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] @@ -31249,183 +31528,189 @@ ERROR homeassistant/components/tuya/sensor.py:1137:13-16: Unexpected keyword arg ERROR homeassistant/components/tuya/sensor.py:1138:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1142:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1143:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1145:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1147:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1148:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1152:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1153:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1155:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1164:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1165:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1170:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1171:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1176:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1177:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1179:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1157:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1158:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1160:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1167:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1168:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1170:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1179:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1180:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1185:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1186:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1191:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1192:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1193:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1201:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1202:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1207:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1208:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1215:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1216:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1220:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1221:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1194:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1200:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1201:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1206:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1207:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1208:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1216:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1217:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1222:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1223:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1230:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1231:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1235:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1238:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1239:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1242:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1235:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1236:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1245:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1246:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1250:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1253:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1254:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1259:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1260:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1265:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1266:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1271:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1272:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1277:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1278:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1283:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1284:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1293:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1294:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1300:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1301:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1307:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1308:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1312:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1313:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1318:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1319:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1324:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1325:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1334:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1335:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1340:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1341:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1346:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1347:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1351:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1354:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1355:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1358:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1257:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1260:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1261:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1265:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1268:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1269:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1274:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1275:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1280:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1281:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1286:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1287:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1292:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1293:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1298:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1299:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1308:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1309:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1315:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1316:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1322:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1323:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1327:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1328:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1333:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1334:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1339:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1340:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1349:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1350:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1355:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1356:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1361:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1362:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1366:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1372:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1373:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1378:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1379:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1384:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1385:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1389:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1390:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1369:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1370:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1373:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1376:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1377:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1381:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1387:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1388:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1393:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1394:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1397:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1398:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1401:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1402:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1406:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1407:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1412:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1413:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1418:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1419:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1424:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1425:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1430:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1431:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1436:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1437:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1446:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1447:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1450:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1453:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1454:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1459:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1460:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1461:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1466:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1467:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1468:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1473:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1474:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1479:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1480:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1485:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1486:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1491:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1492:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1497:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1498:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1503:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1504:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1509:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1510:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1517:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1518:13-17: Unexpected keyword argument `name` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1526:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1527:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1528:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1535:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1536:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1539:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1540:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1545:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1546:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1553:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1554:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1559:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1560:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1565:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1566:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1571:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1573:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1578:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1579:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1581:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1585:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1587:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1399:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1400:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1404:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1405:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1408:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1409:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1412:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1413:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1416:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1417:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1421:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1422:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1427:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1428:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1433:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1434:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1439:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1440:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1445:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1446:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1451:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1452:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1461:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1462:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1465:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1468:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1469:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1474:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1475:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1476:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1481:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1482:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1483:13-37: Unexpected keyword argument `translation_placeholders` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1488:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1489:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1494:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1495:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1500:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1501:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1506:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1507:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1512:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1513:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1518:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1519:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1524:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1525:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1532:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1533:13-17: Unexpected keyword argument `name` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1541:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1542:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1543:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1550:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1551:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1554:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1555:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1560:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1561:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1568:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1569:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1574:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1575:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1580:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1581:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1586:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1588:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1593:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1595:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1601:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1603:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1609:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1611:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1617:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1619:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1625:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1627:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1633:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1635:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1641:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1643:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1649:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1651:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1659:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1660:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1665:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1594:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1596:13-28: Unexpected keyword argument `entity_category` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1600:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1602:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1608:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1610:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1616:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1618:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1624:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1626:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1632:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1634:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1640:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1642:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1648:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1650:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1656:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1658:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1664:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1666:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1674:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/sensor.py:1675:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1682:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1683:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1690:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1691:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1696:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1697:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/tuya/sensor.py:1750:43-60: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] -ERROR homeassistant/components/tuya/sensor.py:1769:5-23: Class member `TuyaSensorEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/sensor.py:1769:5-23: Class member `TuyaSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/sensor.py:1817:22-40: Class member `TuyaSensorEntity._attr_device_class` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/sensor.py:1680:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1681:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1689:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1690:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1697:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1698:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1705:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1706:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1711:13-16: Unexpected keyword argument `key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1712:13-28: Unexpected keyword argument `translation_key` in function `TuyaSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/tuya/sensor.py:1765:43-60: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] +ERROR homeassistant/components/tuya/sensor.py:1784:5-23: Class member `TuyaSensorEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/sensor.py:1784:5-23: Class member `TuyaSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/sensor.py:1832:22-40: Class member `TuyaSensorEntity._attr_device_class` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tuya/siren.py:27:13-16: Unexpected keyword argument `key` in function `homeassistant.components.siren.SirenEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/siren.py:28:13-28: Unexpected keyword argument `entity_category` in function `homeassistant.components.siren.SirenEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/siren.py:33:13-16: Unexpected keyword argument `key` in function `homeassistant.components.siren.SirenEntityDescription.__init__` [unexpected-keyword] @@ -31871,7 +32156,9 @@ ERROR homeassistant/components/tuya/switch.py:919:13-16: Unexpected keyword argu ERROR homeassistant/components/tuya/switch.py:920:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/switch.py:947:44-61: No matching overload found for function `dict.get` called with arguments: (str) [no-matching-overload] ERROR homeassistant/components/tuya/switch.py:1034:14-32: Class member `TuyaSwitchEntity.entity_description` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/tuya/vacuum.py:122:14-38: Class member `TuyaVacuumEntity._attr_supported_features` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/tuya/type_information.py:28:23-38: `device_warnings` may be uninitialized [unbound-name] +ERROR homeassistant/components/tuya/type_information.py:333:50-75: Argument `dict[str, Any] | str` is not assignable to parameter `type_data` with type `str` in function `TypeInformation.from_json` [bad-argument-type] +ERROR homeassistant/components/tuya/vacuum.py:131:14-38: Class member `TuyaVacuumEntity._attr_supported_features` overrides parent class `TuyaEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/tuya/valve.py:25:13-16: Unexpected keyword argument `key` in function `homeassistant.components.valve.ValveEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/valve.py:26:13-28: Unexpected keyword argument `translation_key` in function `homeassistant.components.valve.ValveEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/tuya/valve.py:30:13-16: Unexpected keyword argument `key` in function `homeassistant.components.valve.ValveEntityDescription.__init__` [unexpected-keyword] @@ -31919,7 +32206,7 @@ ERROR homeassistant/components/twinkly/coordinator.py:39:5-17: Class member `Twi ERROR homeassistant/components/twinkly/coordinator.py:97:13-18: Argument `bool | None` is not assignable to parameter `is_on` with type `bool` in function `TwinklyData.__init__` [bad-argument-type] ERROR homeassistant/components/twinkly/light.py:63:18-42: Class member `TwinklyLight._attr_supported_features` overrides parent class `TwinklyEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/twitch/coordinator.py:49:5-17: Class member `TwitchCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/twitch/sensor.py:49:5-23: Class member `TwitchSensor._attr_device_class` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/twitch/sensor.py:50:5-23: Class member `TwitchSensor._attr_device_class` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/twitter/notify.py:13:1-34: Could not find import of `TwitterAPI` [missing-import] ERROR homeassistant/components/ubus/device_tracker.py:8:1-30: Could not find import of `openwrt.ubus` [missing-import] ERROR homeassistant/components/ubus/device_tracker.py:101:25-27: `dict[@_, @_]` is not assignable to attribute `mac2name` with type `None` [bad-assignment] @@ -31978,69 +32265,73 @@ ERROR homeassistant/components/unifi/image.py:52:9-24: Unexpected keyword argume ERROR homeassistant/components/unifi/image.py:53:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiImageEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifi/image.py:82:5-23: Class member `UnifiImageEntity.entity_description` overrides parent class `UnifiEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/unifi/image.py:82:5-23: Class member `UnifiImageEntity.entity_description` overrides parent class `ImageEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifi/light.py:93:9-12: Unexpected keyword argument `key` in function `UnifiLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/light.py:94:9-24: Unexpected keyword argument `translation_key` in function `UnifiLightEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/light.py:128:5-23: Class member `UnifiLightEntity.entity_description` overrides parent class `UnifiEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifi/light.py:128:5-23: Class member `UnifiLightEntity.entity_description` overrides parent class `LightEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifi/light.py:129:5-29: Class member `UnifiLightEntity._attr_supported_features` overrides parent class `UnifiEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifi/sensor.py:247:24-52: Cannot index into `object` [bad-index] -ERROR homeassistant/components/unifi/sensor.py:261:13-16: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:262:13-28: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:266:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:331:13-16: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:333:13-28: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:336:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:377:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:378:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:380:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:394:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:395:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:397:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:411:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:413:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:416:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:427:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:428:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:430:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:431:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:445:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:446:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:448:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:449:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:463:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:465:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:466:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:478:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:479:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:480:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:491:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:492:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:493:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:495:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:506:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:508:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:522:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:524:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:538:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:540:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:554:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:556:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:567:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:569:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:581:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:582:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:583:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:595:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:596:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:598:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:609:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:610:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:611:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:624:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:625:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:626:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifi/sensor.py:659:5-23: Class member `UnifiSensorEntity.entity_description` overrides parent class `UnifiEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifi/sensor.py:659:5-23: Class member `UnifiSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifi/light.py:118:9-12: Unexpected keyword argument `key` in function `UnifiLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/light.py:119:9-24: Unexpected keyword argument `translation_key` in function `UnifiLightEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/light.py:153:5-23: Class member `UnifiLightEntity.entity_description` overrides parent class `UnifiEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifi/light.py:153:5-23: Class member `UnifiLightEntity.entity_description` overrides parent class `LightEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifi/light.py:154:5-29: Class member `UnifiLightEntity._attr_supported_features` overrides parent class `UnifiEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifi/sensor.py:256:24-52: Cannot index into `object` [bad-index] +ERROR homeassistant/components/unifi/sensor.py:270:13-16: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:271:13-28: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:275:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:340:13-16: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:342:13-28: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:345:13-44: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:386:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:387:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:389:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:403:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:404:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:406:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:420:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:421:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:423:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:426:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:437:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:439:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:442:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:453:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:454:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:456:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:457:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:471:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:472:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:474:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:475:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:489:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:491:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:492:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:504:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:505:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:506:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:517:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:518:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:519:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:521:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:532:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:534:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:548:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:550:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:564:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:566:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:580:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:582:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:593:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:595:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:607:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:608:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:609:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:621:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:622:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:624:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:635:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:636:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:637:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:650:9-12: Unexpected keyword argument `key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:651:9-24: Unexpected keyword argument `translation_key` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:652:9-24: Unexpected keyword argument `entity_category` in function `UnifiSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifi/sensor.py:685:5-23: Class member `UnifiSensorEntity.entity_description` overrides parent class `UnifiEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifi/sensor.py:685:5-23: Class member `UnifiSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/unifi/services.py:77:15-18: `hub` is uninitialized [unbound-name] ERROR homeassistant/components/unifi/services.py:93:23-26: `hub` is uninitialized [unbound-name] ERROR homeassistant/components/unifi/services.py:107:19-22: `hub` is uninitialized [unbound-name] @@ -32084,308 +32375,321 @@ ERROR homeassistant/components/unifi/update.py:88:14-38: Class member `UnifiDevi ERROR homeassistant/components/unifi_direct/device_tracker.py:8:1-79: Could not find import of `unifi_ap` [missing-import] ERROR homeassistant/components/unifiled/light.py:8:1-30: Could not find import of `unifiled` [missing-import] ERROR homeassistant/components/unifiprotect/__init__.py:172:12-21: `unload_ok` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:67:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:68:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:69:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:73:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:74:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:75:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:76:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:77:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:82:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:83:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:84:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:85:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:91:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:92:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:93:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:94:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:100:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:101:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:102:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:103:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:109:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:110:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:111:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:112:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:119:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:120:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:121:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:122:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:127:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:128:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:129:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:130:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:135:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:136:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:137:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:138:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:143:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:144:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:145:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:146:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:151:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:152:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:153:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:158:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:159:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:160:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:161:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:167:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:168:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:169:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:170:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:176:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:177:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:178:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:179:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:185:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:186:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:187:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:188:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:194:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:195:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:196:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:197:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:203:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:204:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:205:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:206:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:212:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:213:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:214:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:215:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:221:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:222:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:223:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:224:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:230:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:231:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:232:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:233:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:239:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:240:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:241:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:242:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:248:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:249:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:250:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:251:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:257:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:258:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:259:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:260:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:266:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:267:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:268:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:269:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:275:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:276:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:277:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:278:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:284:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:285:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:286:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:287:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:296:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:297:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:298:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:302:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:307:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:308:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:309:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:310:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:315:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:316:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:317:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:318:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:319:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:324:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:325:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:326:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:327:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:337:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:338:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:347:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:353:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:355:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:359:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:365:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:370:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:371:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:372:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:373:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:378:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:379:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:380:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:381:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:386:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:387:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:388:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:389:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:394:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:395:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:396:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:397:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:402:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:403:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:404:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:405:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:410:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:411:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:412:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:420:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:421:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:423:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:428:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:434:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:435:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:436:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:439:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:442:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:443:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:444:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:451:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:452:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:453:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:460:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:461:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:462:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:469:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:470:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:471:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:472:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:479:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:480:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:481:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:484:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:487:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:488:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:489:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:496:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:497:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:498:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:505:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:506:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:507:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:514:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:515:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:516:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:523:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:524:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:525:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:532:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:533:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:534:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:541:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:542:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:543:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:550:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:551:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:552:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:559:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:560:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:561:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:571:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:573:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:577:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:578:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:579:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:580:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:588:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:589:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:590:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:591:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:592:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:601:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:603:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:625:5-23: Class member `ProtectDeviceBinarySensor.entity_description` overrides parent class `ProtectIsOnEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:625:5-23: Class member `ProtectDeviceBinarySensor.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:625:5-23: Class member `ProtectDeviceBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:631:5-11: Class member `MountableProtectDeviceBinarySensor.device` overrides parent class `ProtectDeviceBinarySensor` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:647:5-23: Class member `ProtectDiskBinarySensor.entity_description` overrides parent class `ProtectNVREntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:647:5-23: Class member `ProtectDiskBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:690:5-23: Class member `ProtectEventBinarySensor.entity_description` overrides parent class `EventEntityMixin` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:690:5-23: Class member `ProtectEventBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:710:13-18: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:713:51-56: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:721:31-36: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/binary_sensor.py:722:12-17: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/button.py:52:9-12: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:53:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:59:9-12: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:60:9-24: Unexpected keyword argument `translation_key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:61:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:62:9-13: Unexpected keyword argument `icon` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:69:5-8: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:70:5-20: Unexpected keyword argument `translation_key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:71:5-9: Unexpected keyword argument `icon` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:77:9-12: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:78:9-24: Unexpected keyword argument `translation_key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:79:9-13: Unexpected keyword argument `icon` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:87:9-12: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:88:9-24: Unexpected keyword argument `translation_key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:89:22-47: Argument `Literal['unifiprotect__chime_button']` is not assignable to parameter `device_class` with type `ButtonDeviceClass | None` in function `ProtectButtonEntityDescription.__init__` [bad-argument-type] -ERROR homeassistant/components/unifiprotect/button.py:90:9-13: Unexpected keyword argument `icon` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:94:9-12: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:95:9-24: Unexpected keyword argument `translation_key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:96:9-13: Unexpected keyword argument `icon` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/button.py:168:5-23: Class member `ProtectButton.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/button.py:168:5-23: Class member `ProtectButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/camera.py:166:5-11: Class member `ProtectCamera.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/camera.py:213:14-38: Class member `ProtectCamera._attr_supported_features` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/config_flow.py:226:9-31: Class member `ProtectFlowHandler.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:68:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:69:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:70:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:74:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:75:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:76:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:77:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:78:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:83:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:84:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:85:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:86:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:92:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:93:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:94:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:95:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:101:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:102:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:103:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:104:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:110:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:111:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:112:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:113:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:120:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:121:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:122:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:123:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:128:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:129:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:130:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:131:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:136:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:137:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:138:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:139:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:144:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:145:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:146:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:147:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:152:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:153:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:154:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:159:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:160:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:161:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:162:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:168:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:169:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:170:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:171:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:177:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:178:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:179:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:180:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:186:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:187:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:188:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:189:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:195:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:196:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:197:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:198:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:204:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:205:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:206:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:207:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:213:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:214:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:215:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:216:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:222:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:223:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:224:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:225:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:231:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:232:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:233:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:234:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:240:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:241:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:242:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:243:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:249:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:250:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:251:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:252:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:258:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:259:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:260:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:261:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:267:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:268:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:269:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:270:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:276:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:277:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:278:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:279:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:285:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:286:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:287:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:288:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:297:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:298:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:299:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:303:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:308:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:309:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:310:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:311:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:316:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:317:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:318:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:319:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:320:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:325:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:326:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:327:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:328:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:338:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:339:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:348:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:354:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:356:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:360:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:366:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:371:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:372:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:373:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:374:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:379:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:380:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:381:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:382:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:387:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:388:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:389:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:390:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:395:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:396:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:397:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:398:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:403:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:404:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:405:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:406:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:411:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:412:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:413:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:421:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:422:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:424:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:429:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:435:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:436:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:437:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:440:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:443:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:444:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:445:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:452:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:453:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:454:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:461:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:462:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:463:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:470:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:471:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:472:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:473:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:480:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:481:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:482:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:485:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:488:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:489:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:490:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:497:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:498:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:499:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:506:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:507:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:508:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:515:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:516:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:517:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:524:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:525:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:526:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:533:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:534:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:535:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:542:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:543:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:544:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:551:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:552:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:553:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:560:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:561:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:562:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:572:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:574:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:578:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:579:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:580:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:581:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:589:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:590:9-24: Unexpected keyword argument `translation_key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:591:9-13: Unexpected keyword argument `icon` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:592:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:593:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:602:9-12: Unexpected keyword argument `key` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:604:9-24: Unexpected keyword argument `entity_category` in function `ProtectBinaryEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:626:5-23: Class member `ProtectDeviceBinarySensor.entity_description` overrides parent class `ProtectIsOnEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:626:5-23: Class member `ProtectDeviceBinarySensor.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:626:5-23: Class member `ProtectDeviceBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:632:5-11: Class member `MountableProtectDeviceBinarySensor.device` overrides parent class `ProtectDeviceBinarySensor` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:648:5-23: Class member `ProtectDiskBinarySensor.entity_description` overrides parent class `ProtectNVREntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:648:5-23: Class member `ProtectDiskBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:691:5-23: Class member `ProtectEventBinarySensor.entity_description` overrides parent class `EventEntityMixin` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:691:5-23: Class member `ProtectEventBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:711:13-18: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:714:51-56: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:722:31-36: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/binary_sensor.py:723:12-17: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/button.py:53:9-12: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:54:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:60:9-12: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:61:9-24: Unexpected keyword argument `translation_key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:62:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:63:9-13: Unexpected keyword argument `icon` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:70:5-8: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:71:5-20: Unexpected keyword argument `translation_key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:72:5-9: Unexpected keyword argument `icon` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:78:9-12: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:79:9-24: Unexpected keyword argument `translation_key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:80:9-13: Unexpected keyword argument `icon` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:88:9-12: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:89:9-24: Unexpected keyword argument `translation_key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:90:22-47: Argument `Literal['unifiprotect__chime_button']` is not assignable to parameter `device_class` with type `ButtonDeviceClass | None` in function `ProtectButtonEntityDescription.__init__` [bad-argument-type] +ERROR homeassistant/components/unifiprotect/button.py:91:9-13: Unexpected keyword argument `icon` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:95:9-12: Unexpected keyword argument `key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:96:9-24: Unexpected keyword argument `translation_key` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:97:9-13: Unexpected keyword argument `icon` in function `ProtectButtonEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/button.py:169:5-23: Class member `ProtectButton.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/button.py:169:5-23: Class member `ProtectButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/camera.py:171:5-11: Class member `ProtectCamera.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/camera.py:218:14-38: Class member `ProtectCamera._attr_supported_features` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/config_flow.py:225:9-31: Class member `ProtectFlowHandler.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/unifiprotect/entity.py:228:25-45: `last_updated_success` may be uninitialized [unbound-name] ERROR homeassistant/components/unifiprotect/entity.py:237:25-45: `last_updated_success` may be uninitialized [unbound-name] ERROR homeassistant/components/unifiprotect/entity.py:282:5-23: Class member `ProtectIsOnEntity.entity_description` overrides parent class `BaseProtectEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/unifiprotect/entity.py:313:5-11: Class member `ProtectNVREntity.device` overrides parent class `BaseProtectEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/unifiprotect/entity.py:331:5-23: Class member `EventEntityMixin.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/event.py:62:5-23: Class member `ProtectDeviceRingEventEntity.entity_description` overrides parent class `EventEntityMixin` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/event.py:62:5-23: Class member `ProtectDeviceRingEventEntity.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/event.py:62:5-23: Class member `ProtectDeviceRingEventEntity.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/event.py:76:13-18: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:78:17-22: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:80:75-80: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:87:5-23: Class member `ProtectDeviceNFCEventEntity.entity_description` overrides parent class `EventEntityMixin` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/event.py:87:5-23: Class member `ProtectDeviceNFCEventEntity.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/event.py:87:5-23: Class member `ProtectDeviceNFCEventEntity.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/event.py:101:13-18: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:103:17-22: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:106:32-37: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:113:16-21: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:113:35-40: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:113:58-63: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:114:26-31: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:131:5-23: Class member `ProtectDeviceFingerprintEventEntity.entity_description` overrides parent class `EventEntityMixin` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/event.py:131:5-23: Class member `ProtectDeviceFingerprintEventEntity.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/event.py:131:5-23: Class member `ProtectDeviceFingerprintEventEntity.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/event.py:145:13-18: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:147:17-22: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:150:32-37: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:156:17-22: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:157:21-26: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:158:21-26: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:161:26-31: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/event.py:172:9-12: Unexpected keyword argument `key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/event.py:173:9-24: Unexpected keyword argument `translation_key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/event.py:175:9-13: Unexpected keyword argument `icon` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/event.py:182:9-12: Unexpected keyword argument `key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/event.py:183:9-24: Unexpected keyword argument `translation_key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/event.py:184:9-13: Unexpected keyword argument `icon` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/event.py:191:9-12: Unexpected keyword argument `key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/event.py:192:9-24: Unexpected keyword argument `translation_key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/event.py:193:9-13: Unexpected keyword argument `icon` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/light.py:56:5-11: Class member `ProtectLight.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/lock.py:42:65-68: Unexpected keyword argument `key` in function `homeassistant.components.lock.LockEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/lock.py:42:77-81: Unexpected keyword argument `name` in function `homeassistant.components.lock.LockEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/lock.py:51:5-11: Class member `ProtectLock.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/lock.py:52:5-23: Class member `ProtectLock.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/media_player.py:32:5-8: Unexpected keyword argument `key` in function `homeassistant.components.media_player.MediaPlayerEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/media_player.py:33:5-20: Unexpected keyword argument `translation_key` in function `homeassistant.components.media_player.MediaPlayerEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/media_player.py:64:5-11: Class member `ProtectMediaPlayer.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/media_player.py:65:5-23: Class member `ProtectMediaPlayer.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/media_player.py:66:5-29: Class member `ProtectMediaPlayer._attr_supported_features` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/media_player.py:86:18-29: Class member `ProtectMediaPlayer._attr_state` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:81:5-23: Class member `ProtectDeviceRingEventEntity.entity_description` overrides parent class `EventEntityMixin` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:81:5-23: Class member `ProtectDeviceRingEventEntity.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:81:5-23: Class member `ProtectDeviceRingEventEntity.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:95:13-18: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:97:17-22: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:99:75-80: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:106:5-23: Class member `ProtectDeviceNFCEventEntity.entity_description` overrides parent class `EventEntityMixin` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:106:5-23: Class member `ProtectDeviceNFCEventEntity.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:106:5-23: Class member `ProtectDeviceNFCEventEntity.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:120:13-18: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:122:17-22: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:125:32-37: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:132:16-21: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:132:35-40: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:132:58-63: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:133:26-31: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:150:5-23: Class member `ProtectDeviceFingerprintEventEntity.entity_description` overrides parent class `EventEntityMixin` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:150:5-23: Class member `ProtectDeviceFingerprintEventEntity.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:150:5-23: Class member `ProtectDeviceFingerprintEventEntity.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:164:13-18: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:166:17-22: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:169:32-37: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:175:17-22: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:176:21-26: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:177:21-26: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:180:26-31: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:201:5-23: Class member `ProtectDeviceVehicleEventEntity.entity_description` overrides parent class `EventEntityMixin` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:201:5-23: Class member `ProtectDeviceVehicleEventEntity.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:201:5-23: Class member `ProtectDeviceVehicleEventEntity.entity_description` overrides parent class `EventEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/event.py:332:13-18: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:333:17-22: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:334:61-66: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:338:41-46: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:340:43-48: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:346:67-72: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:353:37-42: `event` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/event.py:365:9-12: Unexpected keyword argument `key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/event.py:366:9-24: Unexpected keyword argument `translation_key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/event.py:368:9-13: Unexpected keyword argument `icon` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/event.py:375:9-12: Unexpected keyword argument `key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/event.py:376:9-24: Unexpected keyword argument `translation_key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/event.py:377:9-13: Unexpected keyword argument `icon` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/event.py:384:9-12: Unexpected keyword argument `key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/event.py:385:9-24: Unexpected keyword argument `translation_key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/event.py:386:9-13: Unexpected keyword argument `icon` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/event.py:396:9-12: Unexpected keyword argument `key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/event.py:397:9-24: Unexpected keyword argument `translation_key` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/event.py:398:9-13: Unexpected keyword argument `icon` in function `ProtectEventEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/light.py:58:5-11: Class member `ProtectLight.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/lock.py:43:65-68: Unexpected keyword argument `key` in function `homeassistant.components.lock.LockEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/lock.py:43:77-81: Unexpected keyword argument `name` in function `homeassistant.components.lock.LockEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/lock.py:52:5-11: Class member `ProtectLock.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/lock.py:53:5-23: Class member `ProtectLock.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/media_player.py:34:5-8: Unexpected keyword argument `key` in function `homeassistant.components.media_player.MediaPlayerEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/media_player.py:35:5-20: Unexpected keyword argument `translation_key` in function `homeassistant.components.media_player.MediaPlayerEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/media_player.py:66:5-11: Class member `ProtectMediaPlayer.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/media_player.py:67:5-23: Class member `ProtectMediaPlayer.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/media_player.py:68:5-29: Class member `ProtectMediaPlayer._attr_supported_features` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/media_player.py:94:18-29: Class member `ProtectMediaPlayer._attr_state` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/unifiprotect/media_source.py:180:5-9: Class member `ProtectMediaSource.name` overrides parent class `MediaSource` in an inconsistent manner [bad-override] ERROR homeassistant/components/unifiprotect/media_source.py:212:17-21: `data` may be uninitialized [unbound-name] ERROR homeassistant/components/unifiprotect/media_source.py:215:31-35: `data` may be uninitialized [unbound-name] @@ -32418,99 +32722,107 @@ ERROR homeassistant/components/unifiprotect/media_source.py:381:46-51: `event` m ERROR homeassistant/components/unifiprotect/media_source.py:444:22-32: `event_text` may be uninitialized [unbound-name] ERROR homeassistant/components/unifiprotect/media_source.py:593:21-36: `recording_start` may be uninitialized [unbound-name] ERROR homeassistant/components/unifiprotect/media_source.py:771:23-49: Object of class `NoneType` has no attribute `format` [missing-attribute] -ERROR homeassistant/components/unifiprotect/number.py:66:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:67:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:68:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:69:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:79:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:80:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:81:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:82:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:94:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:95:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:96:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:97:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:108:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:109:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:110:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:111:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:123:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:124:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:125:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:126:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:68:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:69:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:70:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:71:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:81:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:82:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:83:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:84:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:96:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:97:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:98:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:99:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:111:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:112:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:113:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:114:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:126:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:127:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:128:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:129:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifiprotect/number.py:140:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifiprotect/number.py:141:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifiprotect/number.py:142:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifiprotect/number.py:143:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:154:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:155:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:156:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:157:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:171:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:172:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:173:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:174:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:188:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:189:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:190:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:191:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:205:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:206:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:207:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:208:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/number.py:259:5-11: Class member `ProtectNumbers.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/number.py:260:5-23: Class member `ProtectNumbers.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/number.py:260:5-23: Class member `ProtectNumbers.entity_description` overrides parent class `NumberEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/select.py:195:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:196:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:197:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:198:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:206:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:207:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:208:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:209:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:218:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:219:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:220:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:221:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:222:9-21: Unexpected keyword argument `device_class` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:230:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:231:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:232:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:233:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:242:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:243:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:244:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:245:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:256:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:257:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:258:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:259:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:266:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:267:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:268:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:269:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:279:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:280:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:281:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:282:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:290:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:291:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:292:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:293:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:303:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:304:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:305:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:306:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:316:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:317:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:318:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:319:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/select.py:366:5-11: Class member `ProtectSelects.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/select.py:367:5-23: Class member `ProtectSelects.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/select.py:367:5-23: Class member `ProtectSelects.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/select.py:397:13-24: `unifi_value` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/select.py:397:26-37: `unifi_value` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/number.py:155:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:156:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:157:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:158:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:172:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:173:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:174:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:175:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:186:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:187:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:188:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:189:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:203:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:204:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:205:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:206:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:220:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:221:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:222:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:223:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:237:9-12: Unexpected keyword argument `key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:238:9-24: Unexpected keyword argument `translation_key` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:239:9-13: Unexpected keyword argument `icon` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:240:9-24: Unexpected keyword argument `entity_category` in function `ProtectNumberEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/number.py:291:5-11: Class member `ProtectNumbers.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/number.py:292:5-23: Class member `ProtectNumbers.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/number.py:292:5-23: Class member `ProtectNumbers.entity_description` overrides parent class `NumberEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/select.py:196:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:197:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:198:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:199:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:207:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:208:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:209:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:210:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:219:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:220:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:221:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:222:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:223:9-21: Unexpected keyword argument `device_class` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:231:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:232:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:233:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:234:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:243:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:244:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:245:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:246:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:257:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:258:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:259:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:260:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:267:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:268:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:269:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:270:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:280:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:281:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:282:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:283:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:291:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:292:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:293:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:294:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:304:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:305:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:306:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:307:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:317:9-12: Unexpected keyword argument `key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:318:9-24: Unexpected keyword argument `translation_key` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:319:9-13: Unexpected keyword argument `icon` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:320:9-24: Unexpected keyword argument `entity_category` in function `ProtectSelectEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/select.py:367:5-11: Class member `ProtectSelects.device` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/select.py:368:5-23: Class member `ProtectSelects.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/select.py:368:5-23: Class member `ProtectSelects.entity_description` overrides parent class `SelectEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/select.py:398:13-24: `unifi_value` may be uninitialized [unbound-name] +ERROR homeassistant/components/unifiprotect/select.py:398:26-37: `unifi_value` may be uninitialized [unbound-name] ERROR homeassistant/components/unifiprotect/sensor.py:127:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifiprotect/sensor.py:128:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifiprotect/sensor.py:129:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] @@ -32661,220 +32973,211 @@ ERROR homeassistant/components/unifiprotect/sensor.py:525:9-24: Unexpected keywo ERROR homeassistant/components/unifiprotect/sensor.py:527:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifiprotect/sensor.py:528:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifiprotect/sensor.py:529:9-24: Unexpected keyword argument `entity_category` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:538:9-12: Unexpected keyword argument `key` in function `ProtectSensorEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:539:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:540:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEventEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:550:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:551:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:554:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:557:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:558:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:559:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:561:9-24: Unexpected keyword argument `entity_category` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:566:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:567:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:568:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:569:9-24: Unexpected keyword argument `entity_category` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:574:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:575:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:576:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:577:9-24: Unexpected keyword argument `entity_category` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:585:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:586:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:589:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:595:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:596:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:598:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:538:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:539:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:542:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:545:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:546:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:547:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:549:9-24: Unexpected keyword argument `entity_category` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:554:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:555:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:556:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:557:9-24: Unexpected keyword argument `entity_category` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:562:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:563:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:564:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:565:9-24: Unexpected keyword argument `entity_category` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:573:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:574:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:577:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:583:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:584:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:586:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:590:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:591:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:592:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:594:9-24: Unexpected keyword argument `entity_category` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifiprotect/sensor.py:602:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifiprotect/sensor.py:603:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/unifiprotect/sensor.py:604:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:606:9-24: Unexpected keyword argument `entity_category` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:614:9-12: Unexpected keyword argument `key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:615:9-24: Unexpected keyword argument `translation_key` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:616:9-13: Unexpected keyword argument `icon` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:617:9-24: Unexpected keyword argument `entity_category` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/sensor.py:716:5-23: Class member `BaseProtectSensor.entity_description` overrides parent class `BaseProtectEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/sensor.py:716:5-23: Class member `BaseProtectSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/sensor.py:735:5-23: Class member `ProtectEventSensor.entity_description` overrides parent class `EventEntityMixin` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/sensor.py:735:5-23: Class member `ProtectEventSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/sensor.py:746:5-11: Class member `ProtectLicensePlateEventSensor.device` overrides parent class `ProtectEventSensor` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/sensor.py:765:13-18: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/sensor.py:766:30-35: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/sensor.py:768:48-53: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/sensor.py:775:31-36: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/sensor.py:776:12-17: `event` may be uninitialized [unbound-name] -ERROR homeassistant/components/unifiprotect/services.py:177:34-46: Argument `int | None` is not assignable to parameter `index` with type `SupportsIndex` in function `list.pop` [bad-argument-type] -ERROR homeassistant/components/unifiprotect/switch.py:54:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:55:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:56:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:57:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:58:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:64:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:65:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:66:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:67:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:74:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:75:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:76:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:77:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:78:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:85:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:86:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:87:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:88:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:95:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:96:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:97:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:98:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:106:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:107:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:108:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:109:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:115:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:116:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:117:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:118:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:124:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:125:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:126:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:127:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:133:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:134:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:135:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:136:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:142:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:143:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:144:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:145:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:152:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:153:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:154:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:155:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:162:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:163:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:164:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:165:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:173:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:174:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:175:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:176:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:184:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:185:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:186:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:187:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:195:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:196:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:197:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:198:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:206:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:207:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:208:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:209:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:217:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:218:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:219:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:220:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:228:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:229:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:230:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:231:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:239:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:240:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:241:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:242:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:250:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:251:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:252:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:253:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:261:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:262:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:263:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:264:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:272:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:273:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:274:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:275:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:283:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:284:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:285:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:286:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:294:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:295:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:296:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:297:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:305:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:306:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:307:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:308:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:316:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:317:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:318:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:319:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:328:5-8: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:329:5-20: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:330:5-9: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:331:5-20: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:339:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:340:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:341:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:342:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:348:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:349:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:350:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:351:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:357:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:358:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:359:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:360:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:366:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:367:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:368:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:369:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:375:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:376:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:377:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:378:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:384:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:385:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:386:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:396:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:397:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:398:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:399:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:400:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:406:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:407:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:408:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:409:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:418:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:419:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:420:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:421:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:430:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:431:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:432:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:433:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:434:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:443:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:444:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:445:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:446:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:451:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:452:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:453:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:454:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/switch.py:476:5-23: Class member `ProtectBaseSwitch.entity_description` overrides parent class `ProtectIsOnEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/switch.py:490:5-23: Class member `ProtectSwitch.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/switch.py:490:5-23: Class member `ProtectSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/switch.py:496:5-23: Class member `ProtectNVRSwitch.entity_description` overrides parent class `ProtectNVREntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/switch.py:496:5-23: Class member `ProtectNVRSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/switch.py:502:5-11: Class member `ProtectPrivacyModeSwitch.device` overrides parent class `ProtectSwitch` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/switch.py:503:5-23: Class member `ProtectPrivacyModeSwitch.entity_description` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/text.py:48:9-12: Unexpected keyword argument `key` in function `ProtectTextEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/text.py:49:9-24: Unexpected keyword argument `translation_key` in function `ProtectTextEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/text.py:50:9-24: Unexpected keyword argument `entity_category` in function `ProtectTextEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/unifiprotect/text.py:93:5-23: Class member `ProtectDeviceText.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/unifiprotect/text.py:93:5-23: Class member `ProtectDeviceText.entity_description` overrides parent class `TextEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/sensor.py:605:9-24: Unexpected keyword argument `entity_category` in function `ProtectSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/sensor.py:690:5-23: Class member `BaseProtectSensor.entity_description` overrides parent class `BaseProtectEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/sensor.py:690:5-23: Class member `BaseProtectSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/sensor.py:709:5-23: Class member `ProtectEventSensor.entity_description` overrides parent class `EventEntityMixin` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/sensor.py:709:5-23: Class member `ProtectEventSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/services.py:197:34-46: Argument `int | None` is not assignable to parameter `index` with type `SupportsIndex` in function `list.pop` [bad-argument-type] +ERROR homeassistant/components/unifiprotect/switch.py:55:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:56:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:57:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:58:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:59:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:65:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:66:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:67:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:68:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:75:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:76:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:77:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:78:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:79:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:86:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:87:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:88:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:89:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:96:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:97:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:98:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:99:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:107:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:108:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:109:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:110:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:116:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:117:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:118:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:119:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:125:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:126:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:127:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:128:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:134:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:135:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:136:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:137:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:143:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:144:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:145:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:146:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:153:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:154:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:155:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:156:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:163:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:164:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:165:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:166:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:174:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:175:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:176:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:177:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:185:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:186:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:187:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:188:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:196:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:197:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:198:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:199:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:207:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:208:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:209:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:210:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:218:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:219:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:220:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:221:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:229:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:230:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:231:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:232:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:240:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:241:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:242:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:243:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:251:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:252:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:253:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:254:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:262:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:263:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:264:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:265:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:273:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:274:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:275:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:276:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:284:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:285:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:286:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:287:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:295:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:296:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:297:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:298:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:306:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:307:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:308:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:309:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:317:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:318:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:319:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:320:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:329:5-8: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:330:5-20: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:331:5-9: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:332:5-20: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:340:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:341:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:342:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:343:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:349:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:350:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:351:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:352:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:358:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:359:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:360:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:361:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:367:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:368:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:369:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:370:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:376:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:377:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:378:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:379:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:385:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:386:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:387:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:397:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:398:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:399:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:400:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:401:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:407:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:408:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:409:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:410:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:419:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:420:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:421:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:422:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:431:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:432:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:433:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:434:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:435:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:444:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:445:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:446:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:447:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:452:9-12: Unexpected keyword argument `key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:453:9-24: Unexpected keyword argument `translation_key` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:454:9-13: Unexpected keyword argument `icon` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:455:9-24: Unexpected keyword argument `entity_category` in function `ProtectSwitchEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/switch.py:477:5-23: Class member `ProtectBaseSwitch.entity_description` overrides parent class `ProtectIsOnEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/switch.py:491:5-23: Class member `ProtectSwitch.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/switch.py:491:5-23: Class member `ProtectSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/switch.py:497:5-23: Class member `ProtectNVRSwitch.entity_description` overrides parent class `ProtectNVREntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/switch.py:497:5-23: Class member `ProtectNVRSwitch.entity_description` overrides parent class `SwitchEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/switch.py:503:5-11: Class member `ProtectPrivacyModeSwitch.device` overrides parent class `ProtectSwitch` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/switch.py:504:5-23: Class member `ProtectPrivacyModeSwitch.entity_description` overrides parent class `RestoreEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/text.py:50:9-12: Unexpected keyword argument `key` in function `ProtectTextEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/text.py:51:9-24: Unexpected keyword argument `translation_key` in function `ProtectTextEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/text.py:52:9-24: Unexpected keyword argument `entity_category` in function `ProtectTextEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/unifiprotect/text.py:95:5-23: Class member `ProtectDeviceText.entity_description` overrides parent class `ProtectDeviceEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/unifiprotect/text.py:95:5-23: Class member `ProtectDeviceText.entity_description` overrides parent class `TextEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/unifiprotect/views.py:174:16-22: `camera` may be uninitialized [unbound-name] ERROR homeassistant/components/universal/media_player.py:174:29-33: Argument `None` is not assignable to parameter `object` with type `str` in function `list.append` [bad-argument-type] ERROR homeassistant/components/universal/media_player.py:669:33-89: `State | None` is not assignable to attribute `_child_state` with type `None` [bad-assignment] @@ -32889,8 +33192,6 @@ ERROR homeassistant/components/upc_connect/device_tracker.py:7:1-35: Could not f ERROR homeassistant/components/upc_connect/device_tracker.py:8:1-73: Could not find import of `connect_box.exceptions` [missing-import] ERROR homeassistant/components/upcloud/binary_sensor.py:28:5-23: Class member `UpCloudBinarySensor._attr_device_class` overrides parent class `UpCloudServerEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/upcloud/config_flow.py:90:9-31: Class member `UpCloudConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/upcloud/coordinator.py:47:14-29: Class member `UpCloudDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/upcloud/coordinator.py:47:32-49:10: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@UpCloudDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/upcloud/entity.py:75:13-31: Object of class `Server` has no attribute `state` [missing-attribute] ERROR homeassistant/components/upcloud/entity.py:75:33-51: Object of class `Server` has no attribute `state` [missing-attribute] ERROR homeassistant/components/update/__init__.py:181:5-17: Class member `UpdateEntityDescription.device_class` overrides parent class `EntityDescription` in an inconsistent manner [bad-override] @@ -33010,7 +33311,6 @@ ERROR homeassistant/components/utility_meter/sensor.py:633:38-71: `Decimal | Non ERROR homeassistant/components/utility_meter/sensor.py:636:36-48: `() -> None` is not assignable to attribute `_collecting` with type `None` [bad-assignment] ERROR homeassistant/components/utility_meter/sensor.py:665:32-667:14: `() -> None` is not assignable to attribute `_collecting` with type `None` [bad-assignment] ERROR homeassistant/components/utility_meter/sensor.py:675:36-62: `str` is not assignable to attribute `_current_tz` with type `None` [bad-assignment] -ERROR homeassistant/components/uvc/camera.py:102:27-42: Class member `UnifiVideoCamera._attr_unique_id` overrides parent class `Camera` in an inconsistent manner [bad-override] ERROR homeassistant/components/v2c/binary_sensor.py:31:9-12: Unexpected keyword argument `key` in function `V2CBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/v2c/binary_sensor.py:32:9-24: Unexpected keyword argument `translation_key` in function `V2CBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/v2c/binary_sensor.py:37:9-12: Unexpected keyword argument `key` in function `V2CBinarySensorEntityDescription.__init__` [unexpected-keyword] @@ -33163,8 +33463,8 @@ ERROR homeassistant/components/vegehub/switch.py:37:25-36: Argument `VegeHub` is ERROR homeassistant/components/vegehub/switch.py:40:24-43: Object of class `VegeHub` has no attribute `vegehub` [missing-attribute] ERROR homeassistant/components/vegehub/switch.py:47:5-23: Class member `VegeHubSwitch._attr_device_class` overrides parent class `VegeHubEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/vegehub/switch.py:58:14-32: Class member `VegeHubSwitch.entity_description` overrides parent class `VegeHubEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/velbus/__init__.py:128:38-131:6: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[bytes] | PathLike[str] | bytes | str, bool, (((...) -> Any, str, tuple[type[BaseException], BaseException, TracebackType]) -> object) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/components/velbus/__init__.py:150:46-73: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[bytes] | PathLike[str] | bytes | str, bool, (((...) -> Any, str, tuple[type[BaseException], BaseException, TracebackType]) -> object) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/velbus/__init__.py:128:38-131:6: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[StrOrBytesPath, bool, (((...) -> Any, str, tuple[type[BaseException], BaseException, TracebackType]) -> object) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/velbus/__init__.py:150:46-73: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[StrOrBytesPath, bool, (((...) -> Any, str, tuple[type[BaseException], BaseException, TracebackType]) -> object) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/velbus/binary_sensor.py:31:5-13: Class member `VelbusBinarySensor._channel` overrides parent class `VelbusEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/velbus/button.py:37:5-13: Class member `VelbusButton._channel` overrides parent class `VelbusEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/velbus/climate.py:42:5-13: Class member `VelbusClimate._channel` overrides parent class `VelbusEntity` in an inconsistent manner [bad-override] @@ -33181,7 +33481,7 @@ ERROR homeassistant/components/velbus/select.py:32:5-13: Class member `VelbusSel ERROR homeassistant/components/velbus/sensor.py:39:5-13: Class member `VelbusSensor._channel` overrides parent class `VelbusEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/velbus/sensor.py:50:18-36: Class member `VelbusSensor._attr_device_class` overrides parent class `VelbusEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/velbus/services.py:41:62-70: `entry_id` may be uninitialized [unbound-name] -ERROR homeassistant/components/velbus/services.py:87:50-90:18: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[bytes] | PathLike[str] | bytes | str, bool, (((...) -> Any, str, tuple[type[BaseException], BaseException, TracebackType]) -> object) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/velbus/services.py:87:50-90:18: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[StrOrBytesPath, bool, (((...) -> Any, str, tuple[type[BaseException], BaseException, TracebackType]) -> object) | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/velbus/switch.py:33:5-13: Class member `VelbusSwitch._channel` overrides parent class `VelbusEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/velux/binary_sensor.py:43:5-9: Class member `VeluxRainSensor.node` overrides parent class `VeluxEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/velux/binary_sensor.py:46:5-23: Class member `VeluxRainSensor._attr_device_class` overrides parent class `VeluxEntity` in an inconsistent manner [bad-override] @@ -33255,9 +33555,8 @@ ERROR homeassistant/components/vesync/binary_sensor.py:39:9-12: Unexpected keywo ERROR homeassistant/components/vesync/binary_sensor.py:40:9-24: Unexpected keyword argument `translation_key` in function `VeSyncBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/vesync/binary_sensor.py:46:9-12: Unexpected keyword argument `key` in function `VeSyncBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/vesync/binary_sensor.py:47:9-24: Unexpected keyword argument `translation_key` in function `VeSyncBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/vesync/binary_sensor.py:69:24-53: Missing argument `coordinator` in function `_setup_entities` [missing-argument] -ERROR homeassistant/components/vesync/binary_sensor.py:96:5-23: Class member `VeSyncBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/vesync/binary_sensor.py:96:5-23: Class member `VeSyncBinarySensor.entity_description` overrides parent class `VeSyncBaseEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/vesync/binary_sensor.py:100:5-23: Class member `VeSyncBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/vesync/binary_sensor.py:100:5-23: Class member `VeSyncBinarySensor.entity_description` overrides parent class `VeSyncBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/vesync/coordinator.py:22:5-17: Class member `VeSyncDataCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/vesync/fan.py:84:5-29: Class member `VeSyncFanHA._attr_supported_features` overrides parent class `VeSyncBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/vesync/fan.py:125:17-39: Object of class `VeSyncBaseDevice` has no attribute `fan_levels` [missing-attribute] @@ -33376,7 +33675,7 @@ ERROR homeassistant/components/viaggiatreno/sensor.py:184:31-47: `Literal['Cance ERROR homeassistant/components/viaggiatreno/sensor.py:188:31-50: `Literal['Not departed yet']` is not assignable to attribute `_state` with type `None` [bad-assignment] ERROR homeassistant/components/viaggiatreno/sensor.py:191:31-45: `Literal['Arrived']` is not assignable to attribute `_state` with type `None` [bad-assignment] ERROR homeassistant/components/vicare/__init__.py:39:30-41:10: `PyViCare` is not assignable to attribute `runtime_data` with type `ViCareData` [bad-assignment] -ERROR homeassistant/components/vicare/__init__.py:80:12-54: Returned type `ViCareData` is not assignable to declared return type `PyViCare` [bad-return] +ERROR homeassistant/components/vicare/__init__.py:81:12-54: Returned type `ViCareData` is not assignable to declared return type `PyViCare` [bad-return] ERROR homeassistant/components/vicare/binary_sensor.py:55:9-12: Unexpected keyword argument `key` in function `ViCareBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/vicare/binary_sensor.py:56:9-24: Unexpected keyword argument `translation_key` in function `ViCareBinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/vicare/binary_sensor.py:58:34-62: Object of class `Device` has no attribute `getCirculationPumpActive` [missing-attribute] @@ -34218,6 +34517,62 @@ ERROR homeassistant/components/vicare/water_heater.py:128:21-68: Object of class Object of class `HeatingDeviceWithComponent` has no attribute `getDomesticHotWaterDesiredTemperature` [missing-attribute] ERROR homeassistant/components/vicare/water_heater.py:146:13-53: Object of class `Device` has no attribute `setDomesticHotWaterTemperature` Object of class `HeatingDeviceWithComponent` has no attribute `setDomesticHotWaterTemperature` [missing-attribute] +ERROR homeassistant/components/victron_ble/sensor.py:188:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:189:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:195:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:197:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:201:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:202:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:208:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:210:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:214:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:216:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:220:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:222:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:226:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:227:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:233:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:234:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:240:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:241:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:247:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:249:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:254:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:255:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:260:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:266:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:268:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:272:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:274:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:278:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:279:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:285:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:286:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:292:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:294:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:316:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:317:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:323:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:325:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:340:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:341:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:347:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:348:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:354:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:360:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:361:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:367:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:373:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:379:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:385:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:391:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:393:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:397:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:398:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:408:9-12: Unexpected keyword argument `key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:409:9-24: Unexpected keyword argument `translation_key` in function `VictronBLESensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/victron_ble/sensor.py:467:5-23: Class member `VictronBLESensorEntity.entity_description` overrides parent class `PassiveBluetoothProcessorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/victron_ble/sensor.py:467:5-23: Class member `VictronBLESensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/victron_remote_monitoring/coordinator.py:57:15-35: Argument `ForecastAggregations | dict[Unknown, Unknown] | None` is not assignable to parameter `solar` with type `ForecastAggregations | None` in function `VRMForecastStore.__init__` [bad-argument-type] ERROR homeassistant/components/victron_remote_monitoring/coordinator.py:57:21-34: Cannot index into `dict[Literal['records', 'totals'], dict[Unknown, Unknown]]` [bad-index] ERROR homeassistant/components/victron_remote_monitoring/coordinator.py:58:21-41: Argument `ForecastAggregations | dict[Unknown, Unknown] | None` is not assignable to parameter `consumption` with type `ForecastAggregations | None` in function `VRMForecastStore.__init__` [bad-argument-type] @@ -34275,7 +34630,7 @@ ERROR homeassistant/components/vilfo/sensor.py:38:9-24: Unexpected keyword argum ERROR homeassistant/components/vilfo/sensor.py:43:9-12: Unexpected keyword argument `key` in function `VilfoSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/vilfo/sensor.py:44:9-24: Unexpected keyword argument `translation_key` in function `VilfoSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/vilfo/sensor.py:67:5-23: Class member `VilfoRouterSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/vivotek/camera.py:5:1-39: Could not find import of `libpyvivotek` [missing-import] +ERROR homeassistant/components/vivotek/config_flow.py:104:9-31: Class member `VivotekConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/vizio/config_flow.py:179:9-31: Class member `VizioConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/vizio/config_flow.py:244:25-58: Argument `Any | None` is not assignable to parameter `auth_token` with type `str` in function `pyvizio.VizioAsync.validate_ha_config` [bad-argument-type] ERROR homeassistant/components/vizio/config_flow.py:343:17-30: Argument `str | None` is not assignable to parameter `ch_type` with type `int | str` in function `pyvizio.VizioAsync.pair` [bad-argument-type] @@ -34302,9 +34657,6 @@ ERROR homeassistant/components/vodafone_station/button.py:105:5-23: Class member ERROR homeassistant/components/vodafone_station/button.py:105:5-23: Class member `VodafoneStationSensorEntity.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/vodafone_station/config_flow.py:86:9-31: Class member `VodafoneStationConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/vodafone_station/coordinator.py:62:5-17: Class member `VodafoneStationRouter.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/vodafone_station/device_tracker.py:84:14-28: Class member `VodafoneStationTracker._attr_hostname` overrides parent class `ScannerEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/vodafone_station/device_tracker.py:84:36-46: Class member `VodafoneStationTracker._attr_name` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/vodafone_station/device_tracker.py:84:36-46: Class member `VodafoneStationTracker._attr_name` overrides parent class `ScannerEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/vodafone_station/sensor.py:86:9-12: Unexpected keyword argument `key` in function `VodafoneStationEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/vodafone_station/sensor.py:87:9-24: Unexpected keyword argument `translation_key` in function `VodafoneStationEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/vodafone_station/sensor.py:91:9-12: Unexpected keyword argument `key` in function `VodafoneStationEntityDescription.__init__` [unexpected-keyword] @@ -34456,15 +34808,14 @@ ERROR homeassistant/components/volvo/button.py:48:9-12: Unexpected keyword argum ERROR homeassistant/components/volvo/button.py:53:9-12: Unexpected keyword argument `key` in function `VolvoButtonDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/volvo/button.py:58:9-12: Unexpected keyword argument `key` in function `VolvoButtonDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/volvo/button.py:63:9-12: Unexpected keyword argument `key` in function `VolvoButtonDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/volvo/button.py:89:5-23: Class member `VolvoButton.entity_description` overrides parent class `VolvoBaseEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/volvo/button.py:89:5-23: Class member `VolvoButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/volvo/button.py:105:18-24: `result` may be uninitialized [unbound-name] -ERROR homeassistant/components/volvo/button.py:105:42-48: `result` may be uninitialized [unbound-name] -ERROR homeassistant/components/volvo/button.py:109:49-55: `result` may be uninitialized [unbound-name] -ERROR homeassistant/components/volvo/button.py:109:67-73: `result` may be uninitialized [unbound-name] +ERROR homeassistant/components/volvo/button.py:68:9-12: Unexpected keyword argument `key` in function `VolvoButtonDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/volvo/button.py:94:5-23: Class member `VolvoButton.entity_description` overrides parent class `VolvoBaseEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/volvo/button.py:94:5-23: Class member `VolvoButton.entity_description` overrides parent class `ButtonEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/volvo/button.py:110:18-24: `result` may be uninitialized [unbound-name] +ERROR homeassistant/components/volvo/button.py:110:42-48: `result` may be uninitialized [unbound-name] +ERROR homeassistant/components/volvo/button.py:114:49-55: `result` may be uninitialized [unbound-name] +ERROR homeassistant/components/volvo/button.py:114:67-73: `result` may be uninitialized [unbound-name] ERROR homeassistant/components/volvo/coordinator.py:72:5-17: Class member `VolvoBaseCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/volvo/coordinator.py:108:18-33: Class member `VolvoBaseCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/volvo/coordinator.py:108:36-40: `None` is not assignable to attribute `update_interval` with type `(self: Self@VolvoBaseCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/volvo/device_tracker.py:27:9-12: Unexpected keyword argument `key` in function `VolvoTrackerDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/volvo/device_tracker.py:52:5-23: Class member `VolvoDeviceTracker.entity_description` overrides parent class `VolvoEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/volvo/device_tracker.py:52:5-23: Class member `VolvoDeviceTracker.entity_description` overrides parent class `TrackerEntity` in an inconsistent manner [bad-override] @@ -34508,9 +34859,11 @@ ERROR homeassistant/components/volvo/sensor.py:415:5-23: Class member `VolvoSens ERROR homeassistant/components/w800rf32/__init__.py:6:8-24: Could not find import of `W800rf32` [missing-import] ERROR homeassistant/components/w800rf32/binary_sensor.py:8:8-24: Could not find import of `W800rf32` [missing-import] ERROR homeassistant/components/w800rf32/binary_sensor.py:130:36-132:14: `() -> None` is not assignable to attribute `_delay_listener` with type `None` [bad-assignment] -ERROR homeassistant/components/wallbox/coordinator.py:128:5-17: Class member `WallboxCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/wallbox/coordinator.py:214:14-29: Class member `WallboxCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/wallbox/coordinator.py:214:32-217:10: `timedelta` is not assignable to attribute `update_interval` with type `(self: Self@WallboxCoordinator, value: timedelta | None) -> None` [bad-assignment] +ERROR homeassistant/components/wallbox/__init__.py:40:28-61: `Any | None` is not assignable to attribute `jwtToken` with type `str` [bad-assignment] +ERROR homeassistant/components/wallbox/__init__.py:41:35-76: `Any | None` is not assignable to attribute `jwtRefreshToken` with type `str` [bad-assignment] +ERROR homeassistant/components/wallbox/__init__.py:42:31-62: `Any | None` is not assignable to attribute `jwtTokenTtl` with type `int` [bad-assignment] +ERROR homeassistant/components/wallbox/__init__.py:43:38-77: `Any | None` is not assignable to attribute `jwtRefreshTokenTtl` with type `int` [bad-assignment] +ERROR homeassistant/components/wallbox/coordinator.py:130:5-17: Class member `WallboxCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/wallbox/lock.py:21:9-12: Unexpected keyword argument `key` in function `homeassistant.components.lock.LockEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/wallbox/lock.py:22:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.lock.LockEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/wallbox/lock.py:56:14-32: Class member `WallboxLock.entity_description` overrides parent class `WallboxEntity` in an inconsistent manner [bad-override] @@ -34900,8 +35253,8 @@ ERROR homeassistant/components/weatherflow_cloud/sensor.py:450:5-23: Class membe ERROR homeassistant/components/weatherflow_cloud/sensor.py:462:5-23: Class member `WeatherFlowWebsocketSensorWind.entity_description` overrides parent class `WeatherFlowSensorBase` in an inconsistent manner [bad-override] ERROR homeassistant/components/weatherflow_cloud/sensor.py:478:5-23: Class member `WeatherFlowCloudSensorREST.entity_description` overrides parent class `WeatherFlowSensorBase` in an inconsistent manner [bad-override] ERROR homeassistant/components/weatherflow_cloud/sensor.py:480:5-16: Class member `WeatherFlowCloudSensorREST.coordinator` overrides parent class `WeatherFlowSensorBase` in an inconsistent manner [bad-override] -ERROR homeassistant/components/weatherflow_cloud/weather.py:120:16-79: Returned type `list[dict[Unknown, Unknown]]` is not assignable to declared return type `list[TypedDict[Forecast]] | None` [bad-return] -ERROR homeassistant/components/weatherflow_cloud/weather.py:125:16-80: Returned type `list[dict[Unknown, Unknown]]` is not assignable to declared return type `list[TypedDict[Forecast]] | None` [bad-return] +ERROR homeassistant/components/weatherflow_cloud/weather.py:120:16-79: Returned type `list[dict[Unknown, Unknown]]` is not assignable to declared return type `list[Forecast] | None` [bad-return] +ERROR homeassistant/components/weatherflow_cloud/weather.py:125:16-80: Returned type `list[dict[Unknown, Unknown]]` is not assignable to declared return type `list[Forecast] | None` [bad-return] ERROR homeassistant/components/weatherkit/__init__.py:64:12-20: `unloaded` may be uninitialized [unbound-name] ERROR homeassistant/components/weatherkit/coordinator.py:29:5-17: Class member `WeatherKitDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/weatherkit/coordinator.py:73:17-41: Argument `list[DataSetType] | None` is not assignable to parameter `data_sets` with type `list[DataSetType]` in function `apple_weatherkit.client.WeatherKitApiClient.get_weather_data` [bad-argument-type] @@ -35181,9 +35534,6 @@ ERROR homeassistant/components/wirelesstag/switch.py:103:16-27: Returned type `N ERROR homeassistant/components/wirelesstag/util.py:5:1-46: Could not find import of `wirelesstagpy.sensortag` [missing-import] ERROR homeassistant/components/withings/binary_sensor.py:52:5-23: Class member `WithingsBinarySensor._attr_device_class` overrides parent class `WithingsEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/withings/coordinator.py:41:5-17: Class member `WithingsDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/withings/coordinator.py:69:18-33: Class member `WithingsDataUpdateCoordinator.update_interval` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] -ERROR homeassistant/components/withings/coordinator.py:69:36-40: `None` is not assignable to attribute `update_interval` with type `(self: Self@WithingsDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] -ERROR homeassistant/components/withings/coordinator.py:71:36-65: `timedelta | None` is not assignable to attribute `update_interval` with type `(self: Self@WithingsDataUpdateCoordinator, value: timedelta | None) -> None` [bad-assignment] ERROR homeassistant/components/withings/sensor.py:77:9-12: Unexpected keyword argument `key` in function `WithingsMeasurementSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/withings/sensor.py:85:9-12: Unexpected keyword argument `key` in function `WithingsMeasurementSensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/withings/sensor.py:87:9-24: Unexpected keyword argument `translation_key` in function `WithingsMeasurementSensorEntityDescription.__init__` [unexpected-keyword] @@ -35360,11 +35710,12 @@ ERROR homeassistant/components/wiz/light.py:80:59-83: Cannot index into `dict[in ERROR homeassistant/components/wiz/light.py:92:48-58: Object of class `NoneType` has no attribute `max` [missing-attribute] ERROR homeassistant/components/wiz/light.py:93:48-58: Object of class `NoneType` has no attribute `min` [missing-attribute] ERROR homeassistant/components/wiz/light.py:95:18-42: Class member `WizBulbEntity._attr_supported_features` overrides parent class `WizToggleEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/wiz/light.py:104:27-47: Object of class `NoneType` has no attribute `get_brightness` [missing-attribute] -ERROR homeassistant/components/wiz/light.py:107:27-46: Object of class `NoneType` has no attribute `get_colortemp` [missing-attribute] -ERROR homeassistant/components/wiz/light.py:112:58-73: Object of class `NoneType` has no attribute `get_rgbww` [missing-attribute] -ERROR homeassistant/components/wiz/light.py:116:57-71: Object of class `NoneType` has no attribute `get_rgbw` [missing-attribute] -ERROR homeassistant/components/wiz/light.py:119:29-44: Object of class `NoneType` has no attribute `get_scene` [missing-attribute] +ERROR homeassistant/components/wiz/light.py:103:27-47: Object of class `NoneType` has no attribute `get_brightness` [missing-attribute] +ERROR homeassistant/components/wiz/light.py:110:27-46: Object of class `NoneType` has no attribute `get_colortemp` [missing-attribute] +ERROR homeassistant/components/wiz/light.py:115:58-73: Object of class `NoneType` has no attribute `get_rgbww` [missing-attribute] +ERROR homeassistant/components/wiz/light.py:119:57-71: Object of class `NoneType` has no attribute `get_rgbw` [missing-attribute] +ERROR homeassistant/components/wiz/light.py:123:38-53: Object of class `NoneType` has no attribute `get_scene` [missing-attribute] +ERROR homeassistant/components/wiz/light.py:125:16-26: `brightness` may be uninitialized [unbound-name] ERROR homeassistant/components/wiz/number.py:44:9-12: Unexpected keyword argument `key` in function `WizNumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/wiz/number.py:45:9-24: Unexpected keyword argument `translation_key` in function `WizNumberEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/wiz/number.py:49:50-72: Object of class `NoneType` has no attribute `get_speed` [missing-attribute] @@ -35386,8 +35737,8 @@ ERROR homeassistant/components/wiz/sensor.py:94:22-50: Object of class `NoneType ERROR homeassistant/components/wiz/switch.py:25:8-50: Object of class `NoneType` has no attribute `bulb_type` [missing-attribute] ERROR homeassistant/components/wled/__init__.py:65:12-21: `unload_ok` may be uninitialized [unbound-name] ERROR homeassistant/components/wled/button.py:29:5-23: Class member `WLEDRestartButton._attr_device_class` overrides parent class `WLEDEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/wled/config_flow.py:34:9-31: Class member `WLEDFlowHandler.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/wled/coordinator.py:36:5-17: Class member `WLEDDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] +ERROR homeassistant/components/wled/config_flow.py:36:9-31: Class member `WLEDFlowHandler.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] +ERROR homeassistant/components/wled/coordinator.py:39:5-17: Class member `WLEDDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/wled/light.py:64:5-29: Class member `WLEDMainLight._attr_supported_features` overrides parent class `WLEDEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/wled/light.py:113:5-29: Class member `WLEDSegmentLight._attr_supported_features` overrides parent class `WLEDEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/wled/number.py:51:9-12: Unexpected keyword argument `key` in function `WLEDNumberEntityDescription.__init__` [unexpected-keyword] @@ -35476,8 +35827,6 @@ ERROR homeassistant/components/ws66i/config_flow.py:129:9-31: Class member `WS66 ERROR homeassistant/components/ws66i/coordinator.py:21:5-17: Class member `Ws66iDataUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/ws66i/media_player.py:50:5-29: Class member `Ws66iZone._attr_supported_features` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/ws66i/media_player.py:102:14-25: Class member `Ws66iZone._attr_state` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/ws66i/media_player.py:105:14-26: Class member `Ws66iZone._attr_source` overrides parent class `MediaPlayerEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/ws66i/media_player.py:105:34-51: Class member `Ws66iZone._attr_media_title` overrides parent class `MediaPlayerEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/wyoming/assist_satellite.py:90:5-23: Class member `WyomingAssistSatellite.entity_description` overrides parent class `WyomingSatelliteEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/wyoming/assist_satellite.py:90:59-62: Unexpected keyword argument `key` in function `homeassistant.components.assist_satellite.entity.AssistSatelliteEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/wyoming/assist_satellite.py:806:34-89: No matching overload found for function `max` called with arguments: (Literal[0], float) [no-matching-overload] @@ -35504,21 +35853,21 @@ ERROR homeassistant/components/wyoming/switch.py:40:5-23: Class member `WyomingS ERROR homeassistant/components/wyoming/switch.py:41:9-12: Unexpected keyword argument `key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/wyoming/switch.py:42:9-24: Unexpected keyword argument `translation_key` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/wyoming/switch.py:43:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.switch.SwitchEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/binary_sensor.py:77:9-12: Unexpected keyword argument `key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/binary_sensor.py:78:9-24: Unexpected keyword argument `translation_key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/binary_sensor.py:80:9-13: Unexpected keyword argument `name` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/binary_sensor.py:85:9-12: Unexpected keyword argument `key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/binary_sensor.py:90:9-12: Unexpected keyword argument `key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/binary_sensor.py:91:9-24: Unexpected keyword argument `translation_key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/binary_sensor.py:95:9-12: Unexpected keyword argument `key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/binary_sensor.py:100:9-12: Unexpected keyword argument `key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/binary_sensor.py:101:9-24: Unexpected keyword argument `translation_key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/binary_sensor.py:142:5-23: Class member `XboxBinarySensorEntity.entity_description` overrides parent class `XboxBaseEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/xbox/binary_sensor.py:142:5-23: Class member `XboxBinarySensorEntity.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/xbox/browse_media.py:33:9-27: Multiple values for argument `cls` in function `MediaTypeDetails.__new__` [bad-keyword-argument] -ERROR homeassistant/components/xbox/browse_media.py:33:13-27: Argument `Literal[MediaClass.APP]` is not assignable to parameter `cls` with type `type[MediaTypeDetails]` in function `MediaTypeDetails.__new__` [bad-argument-type] -ERROR homeassistant/components/xbox/browse_media.py:37:9-28: Multiple values for argument `cls` in function `MediaTypeDetails.__new__` [bad-keyword-argument] -ERROR homeassistant/components/xbox/browse_media.py:37:13-28: Argument `Literal[MediaClass.GAME]` is not assignable to parameter `cls` with type `type[MediaTypeDetails]` in function `MediaTypeDetails.__new__` [bad-argument-type] +ERROR homeassistant/components/xbox/binary_sensor.py:79:9-12: Unexpected keyword argument `key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/binary_sensor.py:80:9-24: Unexpected keyword argument `translation_key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/binary_sensor.py:82:9-13: Unexpected keyword argument `name` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/binary_sensor.py:87:9-12: Unexpected keyword argument `key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/binary_sensor.py:92:9-12: Unexpected keyword argument `key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/binary_sensor.py:93:9-24: Unexpected keyword argument `translation_key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/binary_sensor.py:97:9-12: Unexpected keyword argument `key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/binary_sensor.py:102:9-12: Unexpected keyword argument `key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/binary_sensor.py:103:9-24: Unexpected keyword argument `translation_key` in function `XboxBinarySensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/binary_sensor.py:144:5-23: Class member `XboxBinarySensorEntity.entity_description` overrides parent class `XboxBaseEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/xbox/binary_sensor.py:144:5-23: Class member `XboxBinarySensorEntity.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/xbox/browse_media.py:35:9-27: Multiple values for argument `cls` in function `MediaTypeDetails.__new__` [bad-keyword-argument] +ERROR homeassistant/components/xbox/browse_media.py:35:13-27: Argument `Literal[MediaClass.APP]` is not assignable to parameter `cls` with type `type[MediaTypeDetails]` in function `MediaTypeDetails.__new__` [bad-argument-type] +ERROR homeassistant/components/xbox/browse_media.py:39:9-28: Multiple values for argument `cls` in function `MediaTypeDetails.__new__` [bad-keyword-argument] +ERROR homeassistant/components/xbox/browse_media.py:39:13-28: Argument `Literal[MediaClass.GAME]` is not assignable to parameter `cls` with type `type[MediaTypeDetails]` in function `MediaTypeDetails.__new__` [bad-argument-type] ERROR homeassistant/components/xbox/coordinator.py:69:5-17: Class member `XboxUpdateCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] ERROR homeassistant/components/xbox/coordinator.py:260:32-43: `new_friends` may be uninitialized [unbound-name] ERROR homeassistant/components/xbox/coordinator.py:312:5-17: Class member `XboxConsolesCoordinator.config_entry` overrides parent class `DataUpdateCoordinator` in an inconsistent manner [bad-override] @@ -35531,37 +35880,37 @@ ERROR homeassistant/components/xbox/image.py:50:9-12: Unexpected keyword argumen ERROR homeassistant/components/xbox/image.py:51:9-24: Unexpected keyword argument `translation_key` in function `XboxImageEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/xbox/image.py:95:5-23: Class member `XboxImageEntity.entity_description` overrides parent class `XboxBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/xbox/image.py:95:5-23: Class member `XboxImageEntity.entity_description` overrides parent class `ImageEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/xbox/media_source.py:89:5-9: Class member `XboxSource.name` overrides parent class `MediaSource` in an inconsistent manner [bad-override] -ERROR homeassistant/components/xbox/sensor.py:152:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:153:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:157:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:158:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:162:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:167:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:172:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:173:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:182:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:183:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:187:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:188:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:192:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:193:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:199:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:200:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:204:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:205:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:213:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:214:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:223:9-12: Unexpected keyword argument `key` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:224:9-24: Unexpected keyword argument `translation_key` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:230:9-24: Unexpected keyword argument `entity_category` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:234:9-12: Unexpected keyword argument `key` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:235:9-24: Unexpected keyword argument `translation_key` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:241:9-24: Unexpected keyword argument `entity_category` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/xbox/sensor.py:294:5-23: Class member `XboxSensorEntity.entity_description` overrides parent class `XboxBaseEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/xbox/sensor.py:294:5-23: Class member `XboxSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/xbox/sensor.py:308:5-23: Class member `XboxStorageDeviceSensorEntity.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/xbox/sensor.py:308:5-23: Class member `XboxStorageDeviceSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/xbox/media_source.py:90:5-9: Class member `XboxSource.name` overrides parent class `MediaSource` in an inconsistent manner [bad-override] +ERROR homeassistant/components/xbox/sensor.py:155:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:156:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:160:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:161:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:165:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:170:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:175:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:176:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:185:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:186:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:190:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:191:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:195:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:196:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:202:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:203:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:207:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:208:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:216:9-12: Unexpected keyword argument `key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:217:9-24: Unexpected keyword argument `translation_key` in function `XboxSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:226:9-12: Unexpected keyword argument `key` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:227:9-24: Unexpected keyword argument `translation_key` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:233:9-24: Unexpected keyword argument `entity_category` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:237:9-12: Unexpected keyword argument `key` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:238:9-24: Unexpected keyword argument `translation_key` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:244:9-24: Unexpected keyword argument `entity_category` in function `XboxStorageDeviceSensorEntityDescription.__init__` [unexpected-keyword] +ERROR homeassistant/components/xbox/sensor.py:297:5-23: Class member `XboxSensorEntity.entity_description` overrides parent class `XboxBaseEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/xbox/sensor.py:297:5-23: Class member `XboxSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/xbox/sensor.py:311:5-23: Class member `XboxStorageDeviceSensorEntity.entity_description` overrides parent class `CoordinatorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/xbox/sensor.py:311:5-23: Class member `XboxStorageDeviceSensorEntity.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/xeoma/camera.py:7:1-44: Could not find import of `pyxeoma.xeoma` [missing-import] ERROR homeassistant/components/xiaomi/camera.py:166:32-172:14: `bytes | None` is not assignable to attribute `_last_image` with type `None` [bad-assignment] ERROR homeassistant/components/xiaomi/camera.py:181:34-48: Argument `None` is not assignable to parameter `input_source` with type `str` in function `haffmpeg.camera.CameraMjpeg.open_camera` [bad-argument-type] @@ -35584,7 +35933,7 @@ ERROR homeassistant/components/xiaomi_aqara/binary_sensor.py:607:29-39: `Literal ERROR homeassistant/components/xiaomi_aqara/binary_sensor.py:635:21-53: No matching overload found for function `typing.MutableMapping.update` called with arguments: (Mapping[str, Any] | None) [no-matching-overload] ERROR homeassistant/components/xiaomi_aqara/binary_sensor.py:666:33-41: `Literal['rotate']` is not assignable to attribute `_last_action` with type `None` [bad-assignment] ERROR homeassistant/components/xiaomi_aqara/binary_sensor.py:682:33-41: `Literal['rotate']` is not assignable to attribute `_last_action` with type `None` [bad-assignment] -ERROR homeassistant/components/xiaomi_aqara/config_flow.py:120:25-40: `defaultdict[Unknown, list[Unknown]]` is not assignable to attribute `gateways` with type `dict[str, XiaomiGateway]` [bad-assignment] +ERROR homeassistant/components/xiaomi_aqara/config_flow.py:130:25-40: `defaultdict[Unknown, list[Unknown]]` is not assignable to attribute `gateways` with type `dict[str, XiaomiGateway]` [bad-assignment] ERROR homeassistant/components/xiaomi_aqara/entity.py:130:47-132:10: `() -> None` is not assignable to attribute `_remove_unavailability_tracker` with type `None` [bad-assignment] ERROR homeassistant/components/xiaomi_aqara/light.py:89:20-52: `tuple[float, float]` is not assignable to attribute `_hs` with type `tuple[Literal[0], Literal[0]]` [bad-assignment] ERROR homeassistant/components/xiaomi_aqara/sensor.py:35:9-12: Unexpected keyword argument `key` in function `homeassistant.components.sensor.SensorEntityDescription.__init__` [unexpected-keyword] @@ -36167,7 +36516,6 @@ ERROR homeassistant/components/xiaomi_miio/switch.py:1137:32-50: Object of class ERROR homeassistant/components/xiaomi_miio/switch.py:1138:66-82: Object of class `object` has no attribute `load_power` [missing-attribute] ERROR homeassistant/components/xiaomi_miio/vacuum.py:184:5-29: Class member `MiroboVacuum._attr_supported_features` overrides parent class `XiaomiCoordinatedMiioEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/xiaomi_tv/media_player.py:7:8-14: Could not find import of `pymitv` [missing-import] -ERROR homeassistant/components/xmpp/notify.py:147:18-22: Class member `SendNotificationBot.loop` overrides parent class `ClientXMPP` in an inconsistent manner [bad-override] ERROR homeassistant/components/xmpp/notify.py:243:16-24: Object of class `NoneType` has no attribute `get` [missing-attribute] ERROR homeassistant/components/xmpp/notify.py:244:55-78: `None` is not subscriptable [unsupported-operation] ERROR homeassistant/components/xmpp/notify.py:245:50-73: `None` is not subscriptable [unsupported-operation] @@ -36361,13 +36709,13 @@ ERROR homeassistant/components/yardian/coordinator.py:43:5-17: Class member `Yar ERROR homeassistant/components/yeelight/config_flow.py:64:9-31: Class member `YeelightConfigFlow.async_get_options_flow` overrides parent class `ConfigFlow` in an inconsistent manner [bad-override] ERROR homeassistant/components/yeelight/config_flow.py:323:12-28: `is_unknown_model` may be uninitialized [unbound-name] ERROR homeassistant/components/yeelight/device.py:200:29-83: `CaseInsensitiveDict | dict[str, Any]` is not assignable to attribute `capabilities` with type `dict[str, Any]` [bad-assignment] -ERROR homeassistant/components/yeelight/light.py:416:5-29: Class member `YeelightBaseLight._attr_supported_features` overrides parent class `YeelightEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/yeelight/light.py:725:77-85: `duration` may be uninitialized [unbound-name] -ERROR homeassistant/components/yeelight/light.py:726:28-64: Argument `SleepTransition` is not assignable to parameter `object` with type `RGBTransition` in function `list.append` [bad-argument-type] -ERROR homeassistant/components/yeelight/light.py:729:72-80: `duration` may be uninitialized [unbound-name] -ERROR homeassistant/components/yeelight/light.py:733:27-32: `count` may be uninitialized [unbound-name] -ERROR homeassistant/components/yeelight/light.py:826:40-828:10: `() -> None` is not assignable to attribute `_unexpected_state_check` with type `None` [bad-assignment] -ERROR homeassistant/components/yeelight/light.py:1097:38-45: `bg_prop` may be uninitialized [unbound-name] +ERROR homeassistant/components/yeelight/light.py:424:5-29: Class member `YeelightBaseLight._attr_supported_features` overrides parent class `YeelightEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/yeelight/light.py:733:77-85: `duration` may be uninitialized [unbound-name] +ERROR homeassistant/components/yeelight/light.py:734:28-64: Argument `SleepTransition` is not assignable to parameter `object` with type `RGBTransition` in function `list.append` [bad-argument-type] +ERROR homeassistant/components/yeelight/light.py:737:72-80: `duration` may be uninitialized [unbound-name] +ERROR homeassistant/components/yeelight/light.py:741:27-32: `count` may be uninitialized [unbound-name] +ERROR homeassistant/components/yeelight/light.py:834:40-836:10: `() -> None` is not assignable to attribute `_unexpected_state_check` with type `None` [bad-assignment] +ERROR homeassistant/components/yeelight/light.py:1105:38-45: `bg_prop` may be uninitialized [unbound-name] ERROR homeassistant/components/yeelightsunflower/light.py:9:8-25: Could not find import of `yeelightsunflower` [missing-import] ERROR homeassistant/components/yi/camera.py:7:1-43: Could not find import of `aioftp` [missing-import] ERROR homeassistant/components/yi/camera.py:144:34-48: Argument `None` is not assignable to parameter `input_source` with type `str` in function `haffmpeg.camera.CameraMjpeg.open_camera` [bad-argument-type] @@ -36662,8 +37010,8 @@ ERROR homeassistant/components/zha/climate.py:223:15-60: Object of class `GroupE Object of class `PlatformEntity` has no attribute `async_set_preset_mode` [missing-attribute] ERROR homeassistant/components/zha/climate.py:229:15-60: Object of class `GroupEntity` has no attribute `async_set_temperature` Object of class `PlatformEntity` has no attribute `async_set_temperature` [missing-attribute] -ERROR homeassistant/components/zha/config_flow.py:206:9-13: Class member `BaseZhaFlow.hass` overrides parent class `ConfigEntryBaseFlow` in an inconsistent manner [bad-override] -ERROR homeassistant/components/zha/config_flow.py:251:61-89: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[@_]]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/components/zha/config_flow.py:205:9-13: Class member `BaseZhaFlow.hass` overrides parent class `ConfigEntryBaseFlow` in an inconsistent manner [bad-override] +ERROR homeassistant/components/zha/config_flow.py:250:61-89: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[PathLike[@_]]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] ERROR homeassistant/components/zha/cover.py:66:18-36: Class member `ZhaCover._attr_device_class` overrides parent class `ZHAEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/zha/cover.py:71:47-89: Object of class `GroupEntity` has no attribute `supported_features` Object of class `PlatformEntity` has no attribute `supported_features` [missing-attribute] @@ -36801,7 +37149,8 @@ ERROR homeassistant/components/zha/lock.py:138:9-66: Object of class `GroupEntit Object of class `PlatformEntity` has no attribute `restore_external_state_attributes` [missing-attribute] ERROR homeassistant/components/zha/logbook.py:67:41-53: `ATTR_COMMAND` may be uninitialized [unbound-name] ERROR homeassistant/components/zha/logbook.py:80:26-33: `message` may be uninitialized [unbound-name] -ERROR homeassistant/components/zha/logbook.py:84:36-43: `message` may be uninitialized [unbound-name] +ERROR homeassistant/components/zha/logbook.py:83:26-33: `message` may be uninitialized [unbound-name] +ERROR homeassistant/components/zha/logbook.py:87:36-43: `message` may be uninitialized [unbound-name] ERROR homeassistant/components/zha/number.py:51:16-52: Object of class `GroupEntity` has no attribute `native_value` Object of class `PlatformEntity` has no attribute `native_value` [missing-attribute] ERROR homeassistant/components/zha/number.py:56:16-56: Object of class `GroupEntity` has no attribute `native_min_value` @@ -36981,8 +37330,8 @@ ERROR homeassistant/components/zwave_js/binary_sensor.py:350:9-40: Unexpected ke ERROR homeassistant/components/zwave_js/binary_sensor.py:353:9-12: Unexpected keyword argument `key` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/zwave_js/binary_sensor.py:354:9-24: Unexpected keyword argument `entity_category` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] ERROR homeassistant/components/zwave_js/binary_sensor.py:355:9-40: Unexpected keyword argument `entity_registry_enabled_default` in function `homeassistant.components.binary_sensor.BinarySensorEntityDescription.__init__` [unexpected-keyword] -ERROR homeassistant/components/zwave_js/binary_sensor.py:495:18-36: Class member `ZWaveBooleanBinarySensor.entity_description` overrides parent class `ZWaveBaseEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/zwave_js/binary_sensor.py:520:18-36: Class member `ZWaveNotificationBinarySensor.entity_description` overrides parent class `ZWaveBaseEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/zwave_js/binary_sensor.py:495:18-36: Class member `ZWaveBooleanBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/zwave_js/binary_sensor.py:520:18-36: Class member `ZWaveNotificationBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/zwave_js/binary_sensor.py:539:5-23: Class member `ZWavePropertyBinarySensor.entity_description` overrides parent class `ZWaveBaseEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/zwave_js/binary_sensor.py:539:5-23: Class member `ZWavePropertyBinarySensor.entity_description` overrides parent class `BinarySensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/zwave_js/binary_sensor.py:599:13-16: Unexpected keyword argument `key` in function `NotificationZWaveJSEntityDescription.__init__` [unexpected-keyword] @@ -36996,8 +37345,8 @@ ERROR homeassistant/components/zwave_js/button.py:137:7-34: Field `entity_descri `, which is not assignable to the type `ButtonEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/zwave_js/climate.py:126:7-19: Field `entity_description` is declared `EntityDescription` in ancestor `class ZWaveBaseEntity: ... `, which is not assignable to the type `ClimateEntityDescription` implied by multiple inheritance [inconsistent-inheritance] -ERROR homeassistant/components/zwave_js/config_flow.py:496:16-35: Object of class `object` has no attribute `get` [missing-attribute] -ERROR homeassistant/components/zwave_js/config_flow.py:568:12-34: `current_config_entries` may be uninitialized [unbound-name] +ERROR homeassistant/components/zwave_js/config_flow.py:497:16-35: Object of class `object` has no attribute `get` [missing-attribute] +ERROR homeassistant/components/zwave_js/config_flow.py:569:12-34: `current_config_entries` may be uninitialized [unbound-name] ERROR homeassistant/components/zwave_js/cover.py:82:7-25: Field `entity_description` is declared `EntityDescription` in ancestor `class ZWaveBaseEntity: ... `, which is not assignable to the type `CoverEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/zwave_js/cover.py:96:14-38: Class member `CoverPositionMixin._attr_supported_features` overrides parent class `ZWaveBaseEntity` in an inconsistent manner [bad-override] @@ -37189,9 +37538,9 @@ ERROR homeassistant/components/zwave_js/sensor.py:676:21-27: Argument `Driver | ERROR homeassistant/components/zwave_js/sensor.py:677:21-38: Object of class `NoneType` has no attribute `controller` [missing-attribute] ERROR homeassistant/components/zwave_js/sensor.py:677:42-59: Object of class `NoneType` has no attribute `controller` [missing-attribute] ERROR homeassistant/components/zwave_js/sensor.py:682:24-41: Object of class `NoneType` has no attribute `controller` [missing-attribute] -ERROR homeassistant/components/zwave_js/sensor.py:743:14-32: Class member `ZwaveSensor.entity_description` overrides parent class `ZWaveBaseEntity` in an inconsistent manner [bad-override] +ERROR homeassistant/components/zwave_js/sensor.py:743:14-32: Class member `ZwaveSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] ERROR homeassistant/components/zwave_js/sensor.py:1042:5-23: Class member `ZWaveStatisticsSensor.entity_description` overrides parent class `SensorEntity` in an inconsistent manner [bad-override] -ERROR homeassistant/components/zwave_js/services.py:510:39-530:10: No matching overload found for function `asyncio.tasks.gather` called with arguments: (*Generator[Coroutine[Unknown, Unknown, SetConfigParameterResult] | Coroutine[Unknown, Unknown, tuple[ConfigurationValue, SetConfigParameterResult]], None, None], return_exceptions=Literal[True]) [no-matching-overload] +ERROR homeassistant/components/zwave_js/services.py:513:39-533:10: No matching overload found for function `asyncio.tasks.gather` called with arguments: (*Generator[Coroutine[Unknown, Unknown, SetConfigParameterResult] | Coroutine[Unknown, Unknown, tuple[ConfigurationValue, SetConfigParameterResult]], None, None], return_exceptions=Literal[True]) [no-matching-overload] ERROR homeassistant/components/zwave_js/siren.py:55:7-23: Field `entity_description` is declared `EntityDescription` in ancestor `class ZWaveBaseEntity: ... `, which is not assignable to the type `SirenEntityDescription` implied by multiple inheritance [inconsistent-inheritance] ERROR homeassistant/components/zwave_js/siren.py:68:14-38: Class member `ZwaveSirenEntity._attr_supported_features` overrides parent class `ZWaveBaseEntity` in an inconsistent manner [bad-override] @@ -37245,28 +37594,30 @@ ERROR homeassistant/config_entries.py:199:42-61: Expected a type form, got insta ERROR homeassistant/config_entries.py:199:63-76: Expected a type form, got instance of `Literal['ConfigEntry']` [not-a-type] ERROR homeassistant/config_entries.py:720:16-37: `domain_is_integration` may be uninitialized [unbound-name] ERROR homeassistant/config_entries.py:726:12-33: `domain_is_integration` may be uninitialized [unbound-name] -ERROR homeassistant/config_entries.py:857:16-37: `domain_is_integration` may be uninitialized [unbound-name] -ERROR homeassistant/config_entries.py:966:16-37: `domain_is_integration` may be uninitialized [unbound-name] -ERROR homeassistant/config_entries.py:972:12-33: `domain_is_integration` may be uninitialized [unbound-name] -ERROR homeassistant/config_entries.py:980:16-37: `domain_is_integration` may be uninitialized [unbound-name] -ERROR homeassistant/config_entries.py:996:16-37: `domain_is_integration` may be uninitialized [unbound-name] -ERROR homeassistant/config_entries.py:1030:27-38: `integration` may be uninitialized [unbound-name] -ERROR homeassistant/config_entries.py:1039:17-28: `integration` may be uninitialized [unbound-name] -ERROR homeassistant/config_entries.py:1091:46-53: `handler` may be uninitialized [unbound-name] -ERROR homeassistant/config_entries.py:1091:46-61: Object of class `FunctionType` has no attribute `VERSION` [missing-attribute] -ERROR homeassistant/config_entries.py:1092:57-64: `handler` may be uninitialized [unbound-name] -ERROR homeassistant/config_entries.py:1092:57-78: Object of class `FunctionType` has no attribute `MINOR_VERSION` [missing-attribute] -ERROR homeassistant/config_entries.py:1097:27-38: `integration` may be uninitialized [unbound-name] -ERROR homeassistant/config_entries.py:1289:16-35: Object of class `object` has no attribute `get` [missing-attribute] -ERROR homeassistant/config_entries.py:1443:25-32: Argument `str` is not assignable to parameter `handler` with type `_HandlerT` in function `ConfigFlowResult.__init__` [bad-argument-type] -ERROR homeassistant/config_entries.py:1567:25-42: Argument `_HandlerT` is not assignable to parameter `domain` with type `str` in function `ConfigEntries.async_entry_for_domain_unique_id` [bad-argument-type] -ERROR homeassistant/config_entries.py:1613:25-37: Argument `str` is not assignable to parameter `handler` with type `_HandlerT` in function `ConfigFlowResult.__init__` [bad-argument-type] -ERROR homeassistant/config_entries.py:1624:34-62: Object of class `object` has no attribute `get` [missing-attribute] -ERROR homeassistant/config_entries.py:1649:17-34: Argument `_HandlerT` is not assignable to parameter `domain` with type `str` in function `ConfigEntries.async_entry_for_domain_unique_id` [bad-argument-type] -ERROR homeassistant/config_entries.py:1687:20-37: Argument `_HandlerT` is not assignable to parameter `domain` with type `str` in function `ConfigEntry.__init__` [bad-argument-type] -ERROR homeassistant/config_entries.py:1811:9-20: Class member `ConfigEntryItems.__setitem__` overrides parent class `UserDict` in an inconsistent manner [bad-param-name-override] -ERROR homeassistant/config_entries.py:1882:9-20: Class member `ConfigEntryItems.__delitem__` overrides parent class `UserDict` in an inconsistent manner [bad-param-name-override] -ERROR homeassistant/config_entries.py:2987:17-42: `_FlowContextT` is not subscriptable [unsupported-operation] +ERROR homeassistant/config_entries.py:866:31-52: `domain_is_integration` may be uninitialized [unbound-name] +ERROR homeassistant/config_entries.py:879:16-37: `domain_is_integration` may be uninitialized [unbound-name] +ERROR homeassistant/config_entries.py:988:16-37: `domain_is_integration` may be uninitialized [unbound-name] +ERROR homeassistant/config_entries.py:994:12-33: `domain_is_integration` may be uninitialized [unbound-name] +ERROR homeassistant/config_entries.py:1002:16-37: `domain_is_integration` may be uninitialized [unbound-name] +ERROR homeassistant/config_entries.py:1018:16-37: `domain_is_integration` may be uninitialized [unbound-name] +ERROR homeassistant/config_entries.py:1052:27-38: `integration` may be uninitialized [unbound-name] +ERROR homeassistant/config_entries.py:1061:17-28: `integration` may be uninitialized [unbound-name] +ERROR homeassistant/config_entries.py:1113:46-53: `handler` may be uninitialized [unbound-name] +ERROR homeassistant/config_entries.py:1113:46-61: Object of class `FunctionType` has no attribute `VERSION` [missing-attribute] +ERROR homeassistant/config_entries.py:1114:57-64: `handler` may be uninitialized [unbound-name] +ERROR homeassistant/config_entries.py:1114:57-78: Object of class `FunctionType` has no attribute `MINOR_VERSION` [missing-attribute] +ERROR homeassistant/config_entries.py:1119:27-38: `integration` may be uninitialized [unbound-name] +ERROR homeassistant/config_entries.py:1311:16-35: Object of class `object` has no attribute `get` [missing-attribute] +ERROR homeassistant/config_entries.py:1465:25-32: Argument `str` is not assignable to parameter `handler` with type `_HandlerT` in function `ConfigFlowResult.__init__` [bad-argument-type] +ERROR homeassistant/config_entries.py:1589:25-42: Argument `_HandlerT` is not assignable to parameter `domain` with type `str` in function `ConfigEntries.async_entry_for_domain_unique_id` [bad-argument-type] +ERROR homeassistant/config_entries.py:1635:25-37: Argument `str` is not assignable to parameter `handler` with type `_HandlerT` in function `ConfigFlowResult.__init__` [bad-argument-type] +ERROR homeassistant/config_entries.py:1646:34-62: Object of class `object` has no attribute `get` [missing-attribute] +ERROR homeassistant/config_entries.py:1671:17-34: Argument `_HandlerT` is not assignable to parameter `domain` with type `str` in function `ConfigEntries.async_entry_for_domain_unique_id` [bad-argument-type] +ERROR homeassistant/config_entries.py:1709:20-37: Argument `_HandlerT` is not assignable to parameter `domain` with type `str` in function `ConfigEntry.__init__` [bad-argument-type] +ERROR homeassistant/config_entries.py:1833:9-20: Class member `ConfigEntryItems.__setitem__` overrides parent class `UserDict` in an inconsistent manner [bad-param-name-override] +ERROR homeassistant/config_entries.py:1904:9-20: Class member `ConfigEntryItems.__delitem__` overrides parent class `UserDict` in an inconsistent manner [bad-param-name-override] +ERROR homeassistant/config_entries.py:2724:16-2726:10: Returned type `dict[str, list[Fragment]]` is not assignable to declared return type `dict[str, list[dict[str, Any]]]` [bad-return] +ERROR homeassistant/config_entries.py:3009:17-42: `_FlowContextT` is not subscriptable [unsupported-operation] ERROR homeassistant/core.py:582:9-22: Implementation signature `(self: Self@HomeAssistant, target: ((**tuple[*_Ts]) -> Coroutine[Any, Any, _R] | _R) | Coroutine[Any, Any, _R], *args: *_Ts, *, eager_start: bool = False) -> Future[_R] | None` does not accept all arguments that overload signature `(self: Self@HomeAssistant, target: (**tuple[*_Ts]) -> Coroutine[Any, Any, _R], *args: *_Ts, *, eager_start: bool = False) -> Future[_R] | None` accepts [inconsistent-overload] ERROR homeassistant/core.py:591:9-22: Implementation signature `(self: Self@HomeAssistant, target: ((**tuple[*_Ts]) -> Coroutine[Any, Any, _R] | _R) | Coroutine[Any, Any, _R], *args: *_Ts, *, eager_start: bool = False) -> Future[_R] | None` does not accept all arguments that overload signature `(self: Self@HomeAssistant, target: (**tuple[*_Ts]) -> Coroutine[Any, Any, _R] | _R, *args: *_Ts, *, eager_start: bool = False) -> Future[_R] | None` accepts [inconsistent-overload] ERROR homeassistant/core.py:858:48-54: Argument `(**tuple[*_Ts]) -> _T` is not assignable to parameter `func` with type `(**tuple[*@_]) -> @_` in function `asyncio.events.AbstractEventLoop.run_in_executor` [bad-argument-type] @@ -37279,9 +37630,9 @@ ERROR homeassistant/core.py:1647:56-1649:10: Unpacked argument `tuple[EventType[ ERROR homeassistant/core.py:2001:21-28: `context` may be uninitialized [unbound-name] ERROR homeassistant/core.py:2048:9-20: Class member `States.__setitem__` overrides parent class `UserDict` in an inconsistent manner [bad-param-name-override] ERROR homeassistant/core.py:2180:39-2182:10: Unpacked argument `tuple[str]` is not assignable to parameter `*args` with type `tuple[str, Context | None]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] -ERROR homeassistant/core.py:2227:32-2235:10: Unpacked argument `tuple[str, str, Mapping[str, Any] | None, bool, Context | None]` is not assignable to parameter `*args` with type `tuple[str, str, Mapping[str, Any] | None, bool, Context | None, TypedDict[StateInfo] | None, float | None]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] -ERROR homeassistant/core.py:2357:17-2362:18: Argument `dict[str, State | datetime | str | None]` is not assignable to parameter `event_data` with type `TypedDict[EventStateReportedData] | None` in function `EventBus.async_fire_internal` [bad-argument-type] -ERROR homeassistant/core.py:2568:32-2576:10: Unpacked argument `tuple[str, str, (ServiceCall) -> Coroutine[Any, Any, dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None] | None] | dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None] | None, Schema | None, SupportsResponse]` is not assignable to parameter `*args` with type `tuple[str, str, (ServiceCall) -> Coroutine[Any, Any, dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None] | dict[str, dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None] | None] | None] | dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None] | dict[str, dict[str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None] | None] | None, All | Any | Schema | None, SupportsResponse, HassJobType | None]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] +ERROR homeassistant/core.py:2227:32-2235:10: Unpacked argument `tuple[str, str, Mapping[str, Any] | None, bool, Context | None]` is not assignable to parameter `*args` with type `tuple[str, str, Mapping[str, Any] | None, bool, Context | None, StateInfo | None, float | None]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] +ERROR homeassistant/core.py:2357:17-2362:18: Argument `dict[str, State | datetime | str | None]` is not assignable to parameter `event_data` with type `EventStateReportedData | None` in function `EventBus.async_fire_internal` [bad-argument-type] +ERROR homeassistant/core.py:2577:32-2585:10: Unpacked argument `tuple[str, str, (ServiceCall) -> Coroutine[Any, Any, ServiceResponse] | dict[str, JsonValueType] | None, Schema | None, SupportsResponse]` is not assignable to parameter `*args` with type `tuple[str, str, (ServiceCall) -> Coroutine[Any, Any, dict[str, JsonValueType] | dict[str, ServiceResponse] | None] | dict[str, JsonValueType] | dict[str, ServiceResponse] | None, All | Any | Schema | None, SupportsResponse, HassJobType | None, Mapping[str, str] | None]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] ERROR homeassistant/core_config.py:143:25-28: Argument `Any | None` is not assignable to parameter `element` with type `str` in function `set.add` [bad-argument-type] ERROR homeassistant/core_config.py:373:69-78: `auth_conf` may be uninitialized [unbound-name] ERROR homeassistant/data_entry_flow.py:303:39-61: Object of class `object` has no attribute `items` [missing-attribute] @@ -37313,7 +37664,6 @@ ERROR homeassistant/data_entry_flow.py:838:13-35: Cannot set item in `_FlowResul ERROR homeassistant/data_entry_flow.py:888:13-35: Cannot set item in `_FlowResultT` [unsupported-operation] ERROR homeassistant/data_entry_flow.py:942:13-32: Cannot set item in `_FlowResultT` [unsupported-operation] ERROR homeassistant/data_entry_flow.py:944:13-35: Cannot set item in `_FlowResultT` [unsupported-operation] -ERROR homeassistant/helpers/aiohttp_client.py:50:25-54:2: `<` is not supported between `tuple[Literal[3], Literal[13], Literal[0]]` and `tuple[Literal[3], Literal[13], Literal[1]]` [unsupported-operation] ERROR homeassistant/helpers/chat_session.py:85:13-29: Argument `HassJob[[now: datetime], None]` is not assignable to parameter `action` with type `((datetime) -> Coroutine[Any, Any, None] | None) | HassJob[[datetime], Coroutine[Any, Any, None] | None]` in function `homeassistant.helpers.event.async_call_later` [bad-argument-type] ERROR homeassistant/helpers/chat_session.py:155:8-15: `session` may be uninitialized [unbound-name] ERROR homeassistant/helpers/chat_session.py:159:25-32: `session` may be uninitialized [unbound-name] @@ -37323,37 +37673,27 @@ ERROR homeassistant/helpers/chat_session.py:164:37-44: `session` may be uninitia ERROR homeassistant/helpers/collection.py:271:21-41: `_StoreT` is not subscriptable [unsupported-operation] ERROR homeassistant/helpers/collection.py:279:29-49: `_StoreT` is not subscriptable [unsupported-operation] ERROR homeassistant/helpers/collection.py:651:32-36: `data` is uninitialized [unbound-name] -ERROR homeassistant/helpers/condition.py:263:10-36: Function declared to return `dict[str, type[Condition]]` but is missing an explicit `return` [bad-return] -ERROR homeassistant/helpers/condition.py:359:16-75: Returned type `tuple[str, ModuleType]` is not assignable to declared return type `tuple[str, ConditionProtocol | None]` [bad-return] -ERROR homeassistant/helpers/condition.py:532:35-541:6: Unpacked argument `tuple[HomeAssistant, State | str | None, float | str | None, float | str | None, Template | None, Mapping[str, Any] | None]` is not assignable to parameter `*args` with type `tuple[HomeAssistant, State | str | None, float | str | None, float | str | None, Template | None, Mapping[str, Any] | None, str | None]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] -ERROR homeassistant/helpers/condition.py:565:51-68: Object of class `str` has no attribute `attributes` [missing-attribute] -ERROR homeassistant/helpers/condition.py:575:21-33: Object of class `str` has no attribute `state` [missing-attribute] -ERROR homeassistant/helpers/condition.py:577:21-38: Object of class `str` has no attribute `attributes` [missing-attribute] -ERROR homeassistant/helpers/condition.py:736:51-68: Object of class `str` has no attribute `attributes` [missing-attribute] -ERROR homeassistant/helpers/condition.py:831:35-833:6: Unpacked argument `tuple[HomeAssistant, Template, Mapping[str, Any] | None]` is not assignable to parameter `*args` with type `tuple[HomeAssistant, Template, Mapping[str, Any] | None, bool]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] -ERROR homeassistant/helpers/condition.py:1248:30-48: `missing_conditions` may be uninitialized [unbound-name] +ERROR homeassistant/helpers/condition.py:307:10-36: Function declared to return `dict[str, type[Condition]]` but is missing an explicit `return` [bad-return] +ERROR homeassistant/helpers/condition.py:413:16-75: Returned type `tuple[str, ModuleType]` is not assignable to declared return type `tuple[str, ConditionProtocol | None]` [bad-return] +ERROR homeassistant/helpers/condition.py:586:35-595:6: Unpacked argument `tuple[HomeAssistant, State | str | None, float | str | None, float | str | None, Template | None, TemplateVarsType]` is not assignable to parameter `*args` with type `tuple[HomeAssistant, State | str | None, float | str | None, float | str | None, Template | None, TemplateVarsType, str | None]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] +ERROR homeassistant/helpers/condition.py:619:51-68: Object of class `str` has no attribute `attributes` [missing-attribute] +ERROR homeassistant/helpers/condition.py:629:21-33: Object of class `str` has no attribute `state` [missing-attribute] +ERROR homeassistant/helpers/condition.py:631:21-38: Object of class `str` has no attribute `attributes` [missing-attribute] +ERROR homeassistant/helpers/condition.py:790:51-68: Object of class `str` has no attribute `attributes` [missing-attribute] +ERROR homeassistant/helpers/condition.py:885:35-887:6: Unpacked argument `tuple[HomeAssistant, Template, TemplateVarsType]` is not assignable to parameter `*args` with type `tuple[HomeAssistant, Template, TemplateVarsType, bool]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] +ERROR homeassistant/helpers/condition.py:1311:30-48: `missing_conditions` may be uninitialized [unbound-name] ERROR homeassistant/helpers/config_entry_flow.py:76:20-31: `has_devices` may be uninitialized [unbound-name] ERROR homeassistant/helpers/config_entry_oauth2_flow.py:722:17-725:10: Argument `dict[str | tuple[istr | str, str], str | Any]` is not assignable to parameter `headers` with type `CIMultiDict[str] | CIMultiDictProxy[str] | Iterable[tuple[istr | str, str]] | Mapping[istr, str] | Mapping[str, str] | None` in function `aiohttp.client.ClientSession.request` [bad-argument-type] ERROR homeassistant/helpers/config_entry_oauth2_flow.py:735:29-35: `secret` may be uninitialized [unbound-name] ERROR homeassistant/helpers/config_validation.py:21:5-28: Could not import `_GLOBAL_DEFAULT_TIMEOUT` from `socket` [missing-module-attribute] ERROR homeassistant/helpers/config_validation.py:351:5-16: Implementation signature `(value: _T | None) -> list[_T] | list[Any]` does not accept all arguments that overload signature `(value: list[_T] | _T) -> list[_T]` accepts [inconsistent-overload] ERROR homeassistant/helpers/config_validation.py:772:59-63: `hass` may be uninitialized [unbound-name] -ERROR homeassistant/helpers/config_validation.py:1629:28-44: `CONDITION_SCHEMA` is uninitialized [unbound-name] -ERROR homeassistant/helpers/config_validation.py:1640:28-44: `CONDITION_SCHEMA` is uninitialized [unbound-name] -ERROR homeassistant/helpers/config_validation.py:1652:28-44: `CONDITION_SCHEMA` is uninitialized [unbound-name] -ERROR homeassistant/helpers/config_validation.py:1663:28-44: `CONDITION_SCHEMA` is uninitialized [unbound-name] -ERROR homeassistant/helpers/config_validation.py:1675:28-44: `CONDITION_SCHEMA` is uninitialized [unbound-name] -ERROR homeassistant/helpers/config_validation.py:1686:28-44: `CONDITION_SCHEMA` is uninitialized [unbound-name] -ERROR homeassistant/helpers/config_validation.py:1754:28-44: `CONDITION_SCHEMA` is uninitialized [unbound-name] -ERROR homeassistant/helpers/deprecation.py:151:51-58: `Args[_P]` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/deprecation.py:152:56-70: `Kwargs[_P]` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/deprecation.py:169:24-41: Expected *-unpacked _P.args and **-unpacked _P.kwargs [invalid-param-spec] ERROR homeassistant/helpers/deprecation.py:373:9-29: `breaks_in_ha_version` may be uninitialized [unbound-name] ERROR homeassistant/helpers/device_registry.py:404:52-61: `dict_repr` is uninitialized [unbound-name] -ERROR homeassistant/helpers/device_registry.py:978:50-53: `via` may be uninitialized [unbound-name] -ERROR homeassistant/helpers/device_registry.py:978:60-63: `via` may be uninitialized [unbound-name] +ERROR homeassistant/helpers/device_registry.py:979:50-53: `via` may be uninitialized [unbound-name] +ERROR homeassistant/helpers/device_registry.py:979:60-63: `via` may be uninitialized [unbound-name] ERROR homeassistant/helpers/discovery_flow.py:37:52-55: `key` may be uninitialized [unbound-name] -ERROR homeassistant/helpers/discovery_flow.py:59:19-61: `dict[str, object]` is not assignable to variable `context` with type `TypedDict[ConfigFlowContext]` [bad-assignment] +ERROR homeassistant/helpers/discovery_flow.py:59:19-61: `dict[str, object]` is not assignable to variable `context` with type `ConfigFlowContext` [bad-assignment] ERROR homeassistant/helpers/dispatcher.py:40:5-23: Implementation signature `(hass: HomeAssistant, signal: SignalType[*_Ts], target: (**tuple[*_Ts]) -> None) -> () -> None` does not accept all arguments that overload signature `(hass: HomeAssistant, signal: SignalType[*_Ts], target: (**tuple[*_Ts]) -> None) -> () -> None` accepts [inconsistent-overload] ERROR homeassistant/helpers/dispatcher.py:47:5-23: Implementation signature `(hass: HomeAssistant, signal: SignalType[*_Ts], target: (**tuple[*_Ts]) -> None) -> () -> None` does not accept all arguments that overload signature `(hass: HomeAssistant, signal: str, target: (...) -> None) -> () -> None` accepts [inconsistent-overload] ERROR homeassistant/helpers/dispatcher.py:59:42-61:6: Unpacked argument `tuple[HomeAssistant, SignalType[*_Ts], (**tuple[*_Ts]) -> None]` is not assignable to parameter `*args` with type `tuple[HomeAssistant, SignalType[*_Ts], (**tuple[*_Ts]) -> Any]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] @@ -37372,26 +37712,26 @@ ERROR homeassistant/helpers/entity.py:1174:38-61: `capabilities_updated_at` may ERROR homeassistant/helpers/entity.py:1175:25-48: `capabilities_updated_at` may be uninitialized [unbound-name] ERROR homeassistant/helpers/entity.py:1176:28-51: `capabilities_updated_at` may be uninitialized [unbound-name] ERROR homeassistant/helpers/entity.py:1320:17-28: `update_warn` may be uninitialized [unbound-name] -ERROR homeassistant/helpers/entity.py:1649:5-23: Class member `ToggleEntity.entity_description` overrides parent class `Entity` in an inconsistent manner [bad-override] -ERROR homeassistant/helpers/entity.py:1651:5-16: Class member `ToggleEntity._attr_state` overrides parent class `Entity` in an inconsistent manner [bad-override] -ERROR homeassistant/helpers/entity_component.py:375:22-30: Argument `ModuleType | None` is not assignable to parameter `platform` with type `EntityPlatformModule | None` in function `homeassistant.helpers.entity_platform.EntityPlatform.__init__` [bad-argument-type] -ERROR homeassistant/helpers/entity_platform.py:439:13-27: Argument `BoundMethod[Logger, (self: Logger, msg: object, *args: object, *, exc_info: BaseException | bool | tuple[type[BaseException], BaseException, TracebackType | None] | tuple[None, None, None] | None = None, stack_info: bool = False, stacklevel: int = 1, extra: Mapping[str, object] | None = None) -> None]` is not assignable to parameter `callback` with type `(**tuple[object, ...]) -> object` in function `asyncio.events.AbstractEventLoop.call_at` [bad-argument-type] -ERROR homeassistant/helpers/entity_platform.py:974:17-22: `entry` may be uninitialized [unbound-name] +ERROR homeassistant/helpers/entity.py:1651:5-23: Class member `ToggleEntity.entity_description` overrides parent class `Entity` in an inconsistent manner [bad-override] +ERROR homeassistant/helpers/entity.py:1653:5-16: Class member `ToggleEntity._attr_state` overrides parent class `Entity` in an inconsistent manner [bad-override] +ERROR homeassistant/helpers/entity_component.py:378:22-30: Argument `ModuleType | None` is not assignable to parameter `platform` with type `EntityPlatformModule | None` in function `homeassistant.helpers.entity_platform.EntityPlatform.__init__` [bad-argument-type] +ERROR homeassistant/helpers/entity_platform.py:447:13-27: Argument `BoundMethod[Logger, (self: Logger, msg: object, *args: object, *, exc_info: _ExcInfoType = None, stack_info: bool = False, stacklevel: int = 1, extra: Mapping[str, object] | None = None) -> None]` is not assignable to parameter `callback` with type `(**tuple[object, ...]) -> object` in function `asyncio.events.AbstractEventLoop.call_at` [bad-argument-type] +ERROR homeassistant/helpers/entity_platform.py:982:17-22: `entry` may be uninitialized [unbound-name] ERROR homeassistant/helpers/entity_registry.py:218:6-20: Object of class `str` has no attribute `default` [missing-attribute] ERROR homeassistant/helpers/entity_registry.py:277:52-61: `dict_repr` is uninitialized [unbound-name] ERROR homeassistant/helpers/entity_registry.py:339:52-61: `dict_repr` is uninitialized [unbound-name] ERROR homeassistant/helpers/entity_registry.py:443:6-20: Object of class `str` has no attribute `default` [missing-attribute] -ERROR homeassistant/helpers/entity_registry.py:1048:44-56: Argument `Mapping[str, Any] | UndefinedType | None` is not assignable to parameter `value` with type `Mapping[str, Any] | UndefinedType` in function `none_if_undefined` [bad-argument-type] -ERROR homeassistant/helpers/entity_registry.py:1049:47-62: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] -ERROR homeassistant/helpers/entity_registry.py:1050:50-68: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] -ERROR homeassistant/helpers/entity_registry.py:1053:41-50: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] -ERROR homeassistant/helpers/entity_registry.py:1055:47-62: Argument `EntityCategory | UndefinedType | None` is not assignable to parameter `value` with type `EntityCategory | UndefinedType` in function `none_if_undefined` [bad-argument-type] -ERROR homeassistant/helpers/entity_registry.py:1064:53-74: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] -ERROR homeassistant/helpers/entity_registry.py:1065:45-58: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] +ERROR homeassistant/helpers/entity_registry.py:1049:44-56: Argument `Mapping[str, Any] | UndefinedType | None` is not assignable to parameter `value` with type `Mapping[str, Any] | UndefinedType` in function `none_if_undefined` [bad-argument-type] +ERROR homeassistant/helpers/entity_registry.py:1050:47-62: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] +ERROR homeassistant/helpers/entity_registry.py:1051:50-68: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] +ERROR homeassistant/helpers/entity_registry.py:1054:41-50: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] +ERROR homeassistant/helpers/entity_registry.py:1056:47-62: Argument `EntityCategory | UndefinedType | None` is not assignable to parameter `value` with type `EntityCategory | UndefinedType` in function `none_if_undefined` [bad-argument-type] +ERROR homeassistant/helpers/entity_registry.py:1065:53-74: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] ERROR homeassistant/helpers/entity_registry.py:1066:45-58: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] -ERROR homeassistant/helpers/entity_registry.py:1070:47-62: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] -ERROR homeassistant/helpers/entity_registry.py:1072:51-70: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] -ERROR homeassistant/helpers/entity_registry.py:1208:61-76: Cannot index into `dict[str, set[str | None]]` [bad-index] +ERROR homeassistant/helpers/entity_registry.py:1067:45-58: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] +ERROR homeassistant/helpers/entity_registry.py:1071:47-62: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] +ERROR homeassistant/helpers/entity_registry.py:1073:51-70: Argument `UndefinedType | str | None` is not assignable to parameter `value` with type `UndefinedType | str` in function `none_if_undefined` [bad-argument-type] +ERROR homeassistant/helpers/entity_registry.py:1209:61-76: Cannot index into `dict[str, set[str | None]]` [bad-index] ERROR homeassistant/helpers/event.py:356:45-68: `_StateEventDataT` is not subscriptable [unsupported-operation] ERROR homeassistant/helpers/event.py:364:17-40: `_StateEventDataT` is not subscriptable [unsupported-operation] ERROR homeassistant/helpers/event.py:376:12-35: `_StateEventDataT` is not subscriptable [unsupported-operation] @@ -37403,14 +37743,14 @@ ERROR homeassistant/helpers/integration_platform.py:51:54-68: `component_name` i ERROR homeassistant/helpers/integration_platform.py:55:12-26: `component_name` is uninitialized [unbound-name] ERROR homeassistant/helpers/integration_platform.py:141:46-146:14: No matching overload found for function `homeassistant.core.HomeAssistant.async_run_hass_job` called with arguments: (HassJob[[HomeAssistant, str, Any], Awaitable[None] | None], HomeAssistant, str, ModuleType) [no-matching-overload] ERROR homeassistant/helpers/integration_platform.py:184:9-187:10: Argument `((**tuple[HomeAssistant, str, Any]) -> Coroutine[Any, Any, None]) | ((**tuple[HomeAssistant, str, Any]) -> None)` is not assignable to parameter `target` with type `(**tuple[HomeAssistant, str, Any]) -> Coroutine[Any, Any, None]` in function `homeassistant.core.HassJob.__init__` [bad-argument-type] -ERROR homeassistant/helpers/intent.py:83:31-38: `intents` may be uninitialized [unbound-name] -ERROR homeassistant/helpers/intent.py:88:5-12: `intents` may be uninitialized [unbound-name] -ERROR homeassistant/helpers/intent.py:987:31-994:14: No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[Required, ((Any) -> Any) | All | Any | Schema]) [no-matching-overload] -ERROR homeassistant/helpers/intent.py:997:31-1004:14: No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[Optional, ((Any) -> Any) | All | Any | Schema]) [no-matching-overload] -ERROR homeassistant/helpers/intent.py:1161:35-42: `service` may be uninitialized [unbound-name] +ERROR homeassistant/helpers/intent.py:84:31-38: `intents` may be uninitialized [unbound-name] +ERROR homeassistant/helpers/intent.py:89:5-12: `intents` may be uninitialized [unbound-name] +ERROR homeassistant/helpers/intent.py:988:31-995:14: No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[Required, ((Any) -> Any) | All | Any | Schema]) [no-matching-overload] +ERROR homeassistant/helpers/intent.py:998:31-1005:14: No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[Optional, ((Any) -> Any) | All | Any | Schema]) [no-matching-overload] +ERROR homeassistant/helpers/intent.py:1162:35-42: `service` may be uninitialized [unbound-name] ERROR homeassistant/helpers/issue_registry.py:201:16-21: `issue` may be uninitialized [unbound-name] ERROR homeassistant/helpers/json.py:60:33-38: Function declared to return `bytes` but is missing an explicit `return` [bad-return] -ERROR homeassistant/helpers/json.py:189:55-59: `dump` is uninitialized [unbound-name] +ERROR homeassistant/helpers/json.py:194:55-59: `dump` is uninitialized [unbound-name] ERROR homeassistant/helpers/llm.py:280:32-43: `set[Unknown]` is not assignable to attribute `extra_slots` with type `None` [bad-assignment] ERROR homeassistant/helpers/llm.py:398:17-77: Argument `str` is not assignable to parameter `object` with type `LiteralString` in function `list.append` [bad-argument-type] ERROR homeassistant/helpers/llm.py:400:33-56: Argument `str` is not assignable to parameter `object` with type `LiteralString` in function `list.append` [bad-argument-type] @@ -37445,90 +37785,90 @@ ERROR homeassistant/helpers/singleton.py:20:5-14: Overload return type `((HomeAs ERROR homeassistant/helpers/singleton.py:26:5-14: Overload return type `((HomeAssistant) -> object) -> (HomeAssistant) -> object` is not assignable to implementation return type `[_S]((HomeAssistant) -> _S) -> [_T, _U](HomeAssistant) -> _S` [inconsistent-overload] ERROR homeassistant/helpers/singleton.py:68:26-42: Type `_U` is not awaitable [not-async] ERROR homeassistant/helpers/singleton.py:83:12-19: Returned type `Overload[(func: (HomeAssistant) -> Coroutine[Any, Any, _T]) -> (HomeAssistant) -> Coroutine[Any, Any, _T], (func: (HomeAssistant) -> _U) -> (HomeAssistant) -> _U]` is not assignable to declared return type `((HomeAssistant) -> _S) -> (HomeAssistant) -> _S` [bad-return] -ERROR homeassistant/helpers/storage.py:330:62-332:18: Unpacked argument `tuple[Unknown]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, bool | dict[str, Unknown] | float | int | list[Unknown] | str | None]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] -ERROR homeassistant/helpers/storage.py:391:12-39: `not in` is not supported between `Literal['minor_version']` and `bool` [not-iterable] -ERROR homeassistant/helpers/storage.py:391:12-39: `not in` is not supported between `Literal['minor_version']` and `float` [not-iterable] -ERROR homeassistant/helpers/storage.py:391:12-39: `not in` is not supported between `Literal['minor_version']` and `int` [not-iterable] -ERROR homeassistant/helpers/storage.py:391:12-39: `not in` is not supported between `Literal['minor_version']` and `None` [not-iterable] -ERROR homeassistant/helpers/storage.py:392:13-34: Cannot set item in `bool` [unsupported-operation] -ERROR homeassistant/helpers/storage.py:392:13-34: Cannot set item in `float` [unsupported-operation] -ERROR homeassistant/helpers/storage.py:392:13-34: Cannot set item in `int` [unsupported-operation] -ERROR homeassistant/helpers/storage.py:392:13-34: Cannot set item in `list[Unknown]` [unsupported-operation] -ERROR homeassistant/helpers/storage.py:392:13-34: Cannot set item in `str` [unsupported-operation] -ERROR homeassistant/helpers/storage.py:392:13-34: Cannot set item in `None` [unsupported-operation] -ERROR homeassistant/helpers/storage.py:395:13-28: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:395:13-28: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:395:13-28: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:395:13-28: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:395:13-28: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:395:13-28: `None` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/storage.py:396:17-38: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:396:17-38: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:396:17-38: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:396:17-38: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:396:17-38: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:396:17-38: `None` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/storage.py:398:22-34: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:398:22-34: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:398:22-34: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:398:22-34: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:398:22-34: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:398:22-34: `None` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/storage.py:403:17-32: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:403:17-32: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:403:17-32: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:403:17-32: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:403:17-32: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:403:17-32: `None` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/storage.py:404:17-38: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:404:17-38: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:404:17-38: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:404:17-38: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:404:17-38: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:404:17-38: `None` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/storage.py:409:56-87: Missing argument `old_data` in function `Store._async_migrate_func` [missing-argument] -ERROR homeassistant/helpers/storage.py:409:57-72: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:409:57-72: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:409:57-72: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:409:57-72: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:409:57-72: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:409:57-72: `None` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/storage.py:409:74-86: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:409:74-86: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:409:74-86: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:409:74-86: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:409:74-86: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:409:74-86: `None` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/storage.py:413:25-40: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:413:25-40: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:413:25-40: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:413:25-40: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:413:25-40: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:413:25-40: `None` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/storage.py:413:42-63: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:413:42-63: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:413:42-63: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:413:42-63: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:413:42-63: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:413:42-63: `None` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/storage.py:413:65-77: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:413:65-77: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:413:65-77: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:413:65-77: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:413:65-77: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:413:65-77: `None` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/storage.py:416:24-39: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:416:24-39: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:416:24-39: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:416:24-39: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:416:24-39: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:416:24-39: `None` is not subscriptable [unsupported-operation] -ERROR homeassistant/helpers/storage.py:418:30-42: Cannot index into `bool` [bad-index] -ERROR homeassistant/helpers/storage.py:418:30-42: Cannot index into `float` [bad-index] -ERROR homeassistant/helpers/storage.py:418:30-42: Cannot index into `int` [bad-index] -ERROR homeassistant/helpers/storage.py:418:30-42: Cannot index into `list[Unknown]` [bad-index] -ERROR homeassistant/helpers/storage.py:418:30-42: Cannot index into `str` [bad-index] -ERROR homeassistant/helpers/storage.py:418:30-42: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:348:62-350:18: Unpacked argument `tuple[Unknown]` is not assignable to parameter `*args` with type `tuple[PathLike[str] | str, JsonValueType]` in function `homeassistant.core.HomeAssistant.async_add_executor_job` [bad-argument-type] +ERROR homeassistant/helpers/storage.py:409:12-39: `not in` is not supported between `Literal['minor_version']` and `bool` [not-iterable] +ERROR homeassistant/helpers/storage.py:409:12-39: `not in` is not supported between `Literal['minor_version']` and `float` [not-iterable] +ERROR homeassistant/helpers/storage.py:409:12-39: `not in` is not supported between `Literal['minor_version']` and `int` [not-iterable] +ERROR homeassistant/helpers/storage.py:409:12-39: `not in` is not supported between `Literal['minor_version']` and `None` [not-iterable] +ERROR homeassistant/helpers/storage.py:410:13-34: Cannot set item in `bool` [unsupported-operation] +ERROR homeassistant/helpers/storage.py:410:13-34: Cannot set item in `float` [unsupported-operation] +ERROR homeassistant/helpers/storage.py:410:13-34: Cannot set item in `int` [unsupported-operation] +ERROR homeassistant/helpers/storage.py:410:13-34: Cannot set item in `list[Unknown]` [unsupported-operation] +ERROR homeassistant/helpers/storage.py:410:13-34: Cannot set item in `str` [unsupported-operation] +ERROR homeassistant/helpers/storage.py:410:13-34: Cannot set item in `None` [unsupported-operation] +ERROR homeassistant/helpers/storage.py:413:13-28: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:413:13-28: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:413:13-28: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:413:13-28: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:413:13-28: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:413:13-28: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:414:17-38: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:414:17-38: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:414:17-38: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:414:17-38: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:414:17-38: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:414:17-38: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:416:22-34: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:416:22-34: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:416:22-34: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:416:22-34: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:416:22-34: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:416:22-34: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:421:17-32: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:421:17-32: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:421:17-32: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:421:17-32: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:421:17-32: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:421:17-32: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:422:17-38: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:422:17-38: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:422:17-38: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:422:17-38: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:422:17-38: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:422:17-38: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:427:56-87: Missing argument `old_data` in function `Store._async_migrate_func` [missing-argument] +ERROR homeassistant/helpers/storage.py:427:57-72: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:427:57-72: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:427:57-72: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:427:57-72: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:427:57-72: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:427:57-72: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:427:74-86: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:427:74-86: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:427:74-86: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:427:74-86: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:427:74-86: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:427:74-86: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:431:25-40: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:431:25-40: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:431:25-40: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:431:25-40: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:431:25-40: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:431:25-40: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:431:42-63: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:431:42-63: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:431:42-63: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:431:42-63: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:431:42-63: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:431:42-63: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:431:65-77: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:431:65-77: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:431:65-77: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:431:65-77: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:431:65-77: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:431:65-77: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:434:24-39: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:434:24-39: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:434:24-39: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:434:24-39: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:434:24-39: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:434:24-39: `None` is not subscriptable [unsupported-operation] +ERROR homeassistant/helpers/storage.py:436:30-42: Cannot index into `bool` [bad-index] +ERROR homeassistant/helpers/storage.py:436:30-42: Cannot index into `float` [bad-index] +ERROR homeassistant/helpers/storage.py:436:30-42: Cannot index into `int` [bad-index] +ERROR homeassistant/helpers/storage.py:436:30-42: Cannot index into `list[Unknown]` [bad-index] +ERROR homeassistant/helpers/storage.py:436:30-42: Cannot index into `str` [bad-index] +ERROR homeassistant/helpers/storage.py:436:30-42: `None` is not subscriptable [unsupported-operation] ERROR homeassistant/helpers/sun.py:90:5-105:17: `ValueError | None` is not assignable to `None` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR homeassistant/helpers/system_info.py:88:31-35: Cannot set item in `dict[str, bool | str]` [unsupported-operation] ERROR homeassistant/helpers/system_info.py:113:37-41: `info` may be uninitialized [unbound-name] @@ -37538,77 +37878,58 @@ ERROR homeassistant/helpers/system_info.py:115:41-45: `info` may be uninitialize ERROR homeassistant/helpers/system_info.py:115:41-59: Cannot set item in `dict[str, bool | str]` [unsupported-operation] ERROR homeassistant/helpers/system_info.py:116:34-53: Cannot set item in `dict[str, bool | str]` [unsupported-operation] ERROR homeassistant/helpers/system_info.py:118:12-16: `info` may be uninitialized [unbound-name] -ERROR homeassistant/helpers/template/__init__.py:261:35-41: No matching overload found for function `set.__init__` called with arguments: (Self@gen_result_wrapper.Wrapper) [no-matching-overload] -ERROR homeassistant/helpers/template/__init__.py:397:16-19: `ret` may be uninitialized [unbound-name] -ERROR homeassistant/helpers/template/__init__.py:604:39-609:10: Unpacked argument `tuple[Unknown, object | Unknown]` is not assignable to parameter `*args` with type `tuple[Any, Any, dict[str, Any] | None, bool]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] -ERROR homeassistant/helpers/template/__init__.py:605:13-27: Object of class `NoneType` has no attribute `loop` [missing-attribute] -ERROR homeassistant/helpers/template/__init__.py:899:9-18: Class member `TemplateStateBase.entity_id` overrides parent class `State` in an inconsistent manner [bad-override] -ERROR homeassistant/helpers/template/__init__.py:955:9-13: Class member `TemplateStateBase.name` overrides parent class `State` in an inconsistent manner [bad-override] -ERROR homeassistant/helpers/template/__init__.py:1787:14-28: Module `jinja2.filters` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/helpers/template/__init__.py:1787:51-58: Argument `object | Unknown` is not assignable to parameter `default` with type `int` in function `jinja2.filters.do_int` [bad-argument-type] -ERROR homeassistant/helpers/template/__init__.py:1795:14-28: Module `jinja2.filters` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/helpers/template/__init__.py:1795:51-58: Argument `object | Unknown` is not assignable to parameter `default` with type `int` in function `jinja2.filters.do_int` [bad-argument-type] -ERROR homeassistant/helpers/template/__init__.py:2181:19-31: Module `jinja2.nodes` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/helpers/template/__init__.py:2197:33-38: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2198:39-50: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2199:39-50: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2200:36-52: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2201:40-52: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2202:40-62: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2203:32-49: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2204:35-42: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2205:33-48: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2206:31-34: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2207:31-44: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2208:37-46: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2209:42-56: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2210:32-43: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2211:36-44: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2212:37-46: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2213:34-40: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2214:34-47: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2215:35-42: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2216:31-34: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2275:29-33: Argument `HomeAssistant | None` is not assignable to parameter with type `HomeAssistant` [bad-argument-type] -ERROR homeassistant/helpers/template/__init__.py:2281:33-52: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2283:35-56: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2286:37-60: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2289:41-68: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2292:40-66: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2297:48-82: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2302:45-76: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2305:43-72: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2310:34-54: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2311:33-52: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2359:38-55: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2366:35-56: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2367:36-58: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2368:34-54: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2369:37-60: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2370:31-48: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2371:41-68: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2372:38-62: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2373:38-62: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2374:36-58: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2375:34-54: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2377:48-62: Argument `(hass: HomeAssistant, *args: Any) -> State | None` is not assignable to parameter `func` with type `(HomeAssistant) -> int` in function `hassfunction` [bad-argument-type] -ERROR homeassistant/helpers/template/__init__.py:2385:48-57: Argument `(hass: HomeAssistant, entity_id: str) -> bool` is not assignable to parameter `func` with type `(HomeAssistant, b: _SupportsDunderGE | _SupportsDunderGT | _SupportsDunderLE | _SupportsDunderLT, /) -> Any` in function `hassfunction` [bad-argument-type] -ERROR homeassistant/helpers/template/__init__.py:2389:44-74: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2391:13-29: Argument `(hass: HomeAssistant, entity_id: str) -> bool` is not assignable to parameter `func` with type `(HomeAssistant, b: _SupportsDunderGE | _SupportsDunderGT | _SupportsDunderLE | _SupportsDunderLT, /) -> Any` in function `hassfunction` [bad-argument-type] -ERROR homeassistant/helpers/template/__init__.py:2396:41-68: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2397:36-58: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2398:38-62: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2399:44-65: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2400:34-49: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/__init__.py:2404:52-65: Argument `(hass: HomeAssistant, entity_id: str, name: str, value: Any) -> bool` is not assignable to parameter `func` with type `(HomeAssistant, b: _SupportsDunderGE | _SupportsDunderGT | _SupportsDunderLE | _SupportsDunderLT, /) -> Any` in function `hassfunction` [bad-argument-type] -ERROR homeassistant/helpers/template/__init__.py:2405:47-55: Argument `(hass: HomeAssistant, entity_id: str, state: list[str] | str) -> bool` is not assignable to parameter `func` with type `(HomeAssistant, b: _SupportsDunderGE | _SupportsDunderGT | _SupportsDunderLE | _SupportsDunderLT, /) -> Any` in function `hassfunction` [bad-argument-type] -ERROR homeassistant/helpers/template/__init__.py:2428:23-35: Module `jinja2.nodes` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/helpers/template/__init__.py:2438:23-35: Module `jinja2.nodes` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR homeassistant/helpers/template/__init__.py:2447:23-35: Module `jinja2.nodes` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/helpers/template/__init__.py:255:35-41: No matching overload found for function `set.__init__` called with arguments: (Self@gen_result_wrapper.Wrapper) [no-matching-overload] +ERROR homeassistant/helpers/template/__init__.py:391:16-19: `ret` may be uninitialized [unbound-name] +ERROR homeassistant/helpers/template/__init__.py:598:39-603:10: Unpacked argument `tuple[Unknown, object | Unknown]` is not assignable to parameter `*args` with type `tuple[Any, Any, dict[str, Any] | None, bool]` in function `homeassistant.util.async_.run_callback_threadsafe` [bad-argument-type] +ERROR homeassistant/helpers/template/__init__.py:599:13-27: Object of class `NoneType` has no attribute `loop` [missing-attribute] +ERROR homeassistant/helpers/template/__init__.py:893:9-18: Class member `TemplateStateBase.entity_id` overrides parent class `State` in an inconsistent manner [bad-override] +ERROR homeassistant/helpers/template/__init__.py:949:9-13: Class member `TemplateStateBase.name` overrides parent class `State` in an inconsistent manner [bad-override] +ERROR homeassistant/helpers/template/__init__.py:1560:14-28: Module `jinja2.filters` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/helpers/template/__init__.py:1560:51-58: Argument `object | Unknown` is not assignable to parameter `default` with type `int` in function `jinja2.filters.do_int` [bad-argument-type] +ERROR homeassistant/helpers/template/__init__.py:1568:14-28: Module `jinja2.filters` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/helpers/template/__init__.py:1568:51-58: Argument `object | Unknown` is not assignable to parameter `default` with type `int` in function `jinja2.filters.do_int` [bad-argument-type] +ERROR homeassistant/helpers/template/__init__.py:1861:19-31: Module `jinja2.nodes` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/helpers/template/__init__.py:1882:33-38: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1883:39-50: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1884:32-49: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1885:35-42: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1886:33-48: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1887:31-34: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1888:31-44: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1889:37-46: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1890:42-56: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1891:32-43: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1892:34-40: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1893:34-47: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1894:35-42: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1895:31-34: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1946:29-33: Argument `HomeAssistant | None` is not assignable to parameter with type `HomeAssistant` [bad-argument-type] +ERROR homeassistant/helpers/template/__init__.py:1952:48-82: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1957:45-76: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:1960:43-72: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2002:38-55: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2009:35-56: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2010:36-58: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2011:34-54: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2012:37-60: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2014:48-62: Argument `(hass: HomeAssistant, *args: Any) -> State | None` is not assignable to parameter `func` with type `(HomeAssistant) -> int` in function `hassfunction` [bad-argument-type] +ERROR homeassistant/helpers/template/__init__.py:2018:48-57: Argument `(hass: HomeAssistant, entity_id: str) -> bool` is not assignable to parameter `func` with type `(HomeAssistant, b: _SupportsComparison, /) -> Any` in function `hassfunction` [bad-argument-type] +ERROR homeassistant/helpers/template/__init__.py:2022:44-74: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2024:13-29: Argument `(hass: HomeAssistant, entity_id: str) -> bool` is not assignable to parameter `func` with type `(HomeAssistant, b: _SupportsComparison, /) -> Any` in function `hassfunction` [bad-argument-type] +ERROR homeassistant/helpers/template/__init__.py:2029:41-68: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2030:36-58: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2031:38-62: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2032:44-65: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2033:34-49: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] +ERROR homeassistant/helpers/template/__init__.py:2037:52-65: Argument `(hass: HomeAssistant, entity_id: str, name: str, value: Any) -> bool` is not assignable to parameter `func` with type `(HomeAssistant, b: _SupportsComparison, /) -> Any` in function `hassfunction` [bad-argument-type] +ERROR homeassistant/helpers/template/__init__.py:2038:47-55: Argument `(hass: HomeAssistant, entity_id: str, state: list[str] | str) -> bool` is not assignable to parameter `func` with type `(HomeAssistant, b: _SupportsComparison, /) -> Any` in function `hassfunction` [bad-argument-type] +ERROR homeassistant/helpers/template/__init__.py:2061:23-35: Module `jinja2.nodes` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/helpers/template/__init__.py:2071:23-35: Module `jinja2.nodes` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR homeassistant/helpers/template/__init__.py:2080:23-35: Module `jinja2.nodes` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR homeassistant/helpers/template/extensions/base.py:54:20-37: Expected 1 more positional argument [bad-argument-count] ERROR homeassistant/helpers/template/extensions/base.py:62:5-16: Class member `BaseTemplateExtension.environment` overrides parent class `Extension` in an inconsistent manner [bad-override] ERROR homeassistant/helpers/template/extensions/base.py:85:67-83: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] -ERROR homeassistant/helpers/template/extensions/base.py:89:65-81: Cannot set item in `dict[str, ((a: _SupportsDunderGE | _SupportsDunderGT | _SupportsDunderLE | _SupportsDunderLT, b: _SupportsDunderGE | _SupportsDunderGT | _SupportsDunderLE | _SupportsDunderLT, /) -> Any) | ((a: object, b: object, /) -> Any) | ((obj: object, /) -> TypeIs[(...) -> object]) | ((env: Environment, value: str) -> bool) | ((value: int) -> bool) | ((value: int, num: int) -> bool) | ((value: str) -> bool) | ((value: Any) -> bool) | ((value: Any, other: Any) -> bool) | ((value: Any, seq: Container[Any]) -> bool)]` [unsupported-operation] +ERROR homeassistant/helpers/template/extensions/base.py:89:65-81: Cannot set item in `dict[str, ((a: _SupportsComparison, b: _SupportsComparison, /) -> Any) | ((a: object, b: object, /) -> Any) | ((obj: object, /) -> TypeIs[(...) -> object]) | ((env: Environment, value: str) -> bool) | ((value: int) -> bool) | ((value: int, num: int) -> bool) | ((value: str) -> bool) | ((value: Any) -> bool) | ((value: Any, other: Any) -> bool) | ((value: Any, seq: Container[Any]) -> bool)]` [unsupported-operation] ERROR homeassistant/helpers/template/extensions/base.py:101:63-67: Cannot set item in `dict[str, ((n: int = 5, html: bool = True, min: int = 20, max: int = 100) -> str) | type[Cycler] | type[Joiner] | type[Namespace] | type[dict] | type[range]]` [unsupported-operation] ERROR homeassistant/helpers/trace.py:143:5-16: `trace_stack` may be uninitialized [unbound-name] ERROR homeassistant/helpers/trace.py:189:44-49: `trace` may be uninitialized [unbound-name] @@ -37618,54 +37939,58 @@ ERROR homeassistant/helpers/trace.py:191:11-15: `path` may be uninitialized [unb ERROR homeassistant/helpers/trace.py:285:16-29: Returned type `(*args: *_Ts) -> Coroutine[Unknown, Unknown, None]` is not assignable to declared return type `(**tuple[*_Ts]) -> Coroutine[Any, Any, None]` [bad-return] ERROR homeassistant/helpers/translation.py:453:20-27: `message` may be uninitialized [unbound-name] ERROR homeassistant/helpers/translation.py:455:23-30: `message` may be uninitialized [unbound-name] -ERROR homeassistant/helpers/trigger.py:254:64-88: Function declared to return `dict[str, type[Trigger]]` but is missing an explicit `return` [bad-return] -ERROR homeassistant/helpers/trigger.py:261:10-20: Function declared to return `dict[str, Any]` but is missing an explicit `return` [bad-return] -ERROR homeassistant/helpers/trigger.py:270:10-23: Function declared to return `() -> None` but is missing an explicit `return` [bad-return] -ERROR homeassistant/helpers/trigger.py:292:10-27: Function declared to return `Task[Any]` but is missing an explicit `return` [bad-return] -ERROR homeassistant/helpers/trigger.py:305:10-24: Function declared to return `dict[str, Any]` but is missing an explicit `return` [bad-return] -ERROR homeassistant/helpers/trigger.py:424:34-50: Cannot set item in `dict[object, tuple[HassJob[[dict[str, Any], Context | None], Coroutine[Any, Any, None] | Any], dict[str, Any]]]` [unsupported-operation] -ERROR homeassistant/helpers/trigger.py:476:16-73: Returned type `tuple[str, ModuleType]` is not assignable to declared return type `tuple[str, TriggerProtocol]` [bad-return] -ERROR homeassistant/helpers/trigger.py:792:28-44: `missing_triggers` may be uninitialized [unbound-name] +ERROR homeassistant/helpers/trigger.py:517:64-88: Function declared to return `dict[str, type[Trigger]]` but is missing an explicit `return` [bad-return] +ERROR homeassistant/helpers/trigger.py:524:10-20: Function declared to return `dict[str, Any]` but is missing an explicit `return` [bad-return] +ERROR homeassistant/helpers/trigger.py:533:10-23: Function declared to return `() -> None` but is missing an explicit `return` [bad-return] +ERROR homeassistant/helpers/trigger.py:555:10-27: Function declared to return `Task[Any]` but is missing an explicit `return` [bad-return] +ERROR homeassistant/helpers/trigger.py:568:10-24: Function declared to return `dict[str, Any]` but is missing an explicit `return` [bad-return] +ERROR homeassistant/helpers/trigger.py:687:34-50: Cannot set item in `dict[object, tuple[HassJob[[dict[str, Any], Context | None], Coroutine[Any, Any, None] | Any], dict[str, Any]]]` [unsupported-operation] +ERROR homeassistant/helpers/trigger.py:749:16-73: Returned type `tuple[str, ModuleType]` is not assignable to declared return type `tuple[str, TriggerProtocol]` [bad-return] +ERROR homeassistant/helpers/trigger.py:1071:28-44: `missing_triggers` may be uninitialized [unbound-name] ERROR homeassistant/helpers/trigger_template_entity.py:290:49-58: `available` may be uninitialized [unbound-name] ERROR homeassistant/helpers/update_coordinator.py:62:10-28: Function declared to return `() -> None` but is missing an explicit `return` [bad-return] -ERROR homeassistant/helpers/update_coordinator.py:508:16-26: `log_timing` may be uninitialized [unbound-name] -ERROR homeassistant/helpers/update_coordinator.py:512:35-40: `start` may be uninitialized [unbound-name] -ERROR homeassistant/loader.py:297:16-33: Could not find import of `custom_components` [missing-import] -ERROR homeassistant/loader.py:373:10-14: Function declared to return `bool` but is missing an explicit `return` [bad-return] -ERROR homeassistant/loader.py:378:10-14: Function declared to return `bool` but is missing an explicit `return` [bad-return] -ERROR homeassistant/loader.py:383:10-14: Function declared to return `bool` but is missing an explicit `return` [bad-return] -ERROR homeassistant/loader.py:396:10-14: Function declared to return `bool` but is missing an explicit `return` [bad-return] -ERROR homeassistant/loader.py:404:77-81: Function declared to return `bool` but is missing an explicit `return` [bad-return] -ERROR homeassistant/loader.py:407:65-69: Function declared to return `bool` but is missing an explicit `return` [bad-return] -ERROR homeassistant/loader.py:979:20-33: Returned type `ComponentProtocol | ModuleType` is not assignable to declared return type `ComponentProtocol` [bad-return] -ERROR homeassistant/loader.py:995:16-21: `debug` may be uninitialized [unbound-name] -ERROR homeassistant/loader.py:999:43-48: `start` may be uninitialized [unbound-name] -ERROR homeassistant/loader.py:1031:12-17: `debug` may be uninitialized [unbound-name] -ERROR homeassistant/loader.py:1035:39-44: `start` may be uninitialized [unbound-name] -ERROR homeassistant/loader.py:1057:20-33: Returned type `ComponentProtocol | ModuleType` is not assignable to declared return type `ComponentProtocol` [bad-return] -ERROR homeassistant/loader.py:1084:16-29: Returned type `ComponentProtocol | ModuleType` is not assignable to declared return type `ComponentProtocol` [bad-return] -ERROR homeassistant/loader.py:1183:20-25: `debug` may be uninitialized [unbound-name] -ERROR homeassistant/loader.py:1189:47-52: `start` may be uninitialized [unbound-name] -ERROR homeassistant/loader.py:1487:15-17: Argument `dict[@_, @_]` is not assignable to parameter `cache` with type `_ResolveDependenciesCacheProtocol` in function `_resolve_integrations_dependencies` [bad-argument-type] -ERROR homeassistant/loader.py:1673:16-33: Could not find import of `custom_components` [missing-import] +ERROR homeassistant/helpers/update_coordinator.py:516:16-26: `log_timing` may be uninitialized [unbound-name] +ERROR homeassistant/helpers/update_coordinator.py:520:35-40: `start` may be uninitialized [unbound-name] +ERROR homeassistant/loader.py:298:16-33: Could not find import of `custom_components` [missing-import] +ERROR homeassistant/loader.py:374:10-14: Function declared to return `bool` but is missing an explicit `return` [bad-return] +ERROR homeassistant/loader.py:379:10-14: Function declared to return `bool` but is missing an explicit `return` [bad-return] +ERROR homeassistant/loader.py:384:10-14: Function declared to return `bool` but is missing an explicit `return` [bad-return] +ERROR homeassistant/loader.py:397:10-14: Function declared to return `bool` but is missing an explicit `return` [bad-return] +ERROR homeassistant/loader.py:405:77-81: Function declared to return `bool` but is missing an explicit `return` [bad-return] +ERROR homeassistant/loader.py:408:65-69: Function declared to return `bool` but is missing an explicit `return` [bad-return] +ERROR homeassistant/loader.py:985:20-33: Returned type `ComponentProtocol | ModuleType` is not assignable to declared return type `ComponentProtocol` [bad-return] +ERROR homeassistant/loader.py:1001:16-21: `debug` may be uninitialized [unbound-name] +ERROR homeassistant/loader.py:1005:43-48: `start` may be uninitialized [unbound-name] +ERROR homeassistant/loader.py:1037:12-17: `debug` may be uninitialized [unbound-name] +ERROR homeassistant/loader.py:1041:39-44: `start` may be uninitialized [unbound-name] +ERROR homeassistant/loader.py:1063:20-33: Returned type `ComponentProtocol | ModuleType` is not assignable to declared return type `ComponentProtocol` [bad-return] +ERROR homeassistant/loader.py:1090:16-29: Returned type `ComponentProtocol | ModuleType` is not assignable to declared return type `ComponentProtocol` [bad-return] +ERROR homeassistant/loader.py:1189:20-25: `debug` may be uninitialized [unbound-name] +ERROR homeassistant/loader.py:1195:47-52: `start` may be uninitialized [unbound-name] +ERROR homeassistant/loader.py:1493:15-17: Argument `dict[@_, @_]` is not assignable to parameter `cache` with type `_ResolveDependenciesCacheProtocol` in function `_resolve_integrations_dependencies` [bad-argument-type] +ERROR homeassistant/loader.py:1679:16-33: Could not find import of `custom_components` [missing-import] +ERROR homeassistant/runner.py:176:27-57: No attribute `DefaultEventLoopPolicy` in module `asyncio` [missing-attribute] + WARN homeassistant/runner.py:284:5-34: `asyncio.events.set_event_loop_policy` is deprecated [deprecated] ERROR homeassistant/scripts/__init__.py:31:28-31: Argument `str` is not assignable to parameter `object` with type `LiteralString` in function `list.append` [bad-argument-type] ERROR homeassistant/scripts/__init__.py:33:28-36: Argument `str` is not assignable to parameter `object` with type `LiteralString` in function `list.append` [bad-argument-type] + WARN homeassistant/scripts/__init__.py:64:5-34: `asyncio.events.set_event_loop_policy` is deprecated [deprecated] + WARN homeassistant/scripts/auth.py:51:5-34: `asyncio.events.set_event_loop_policy` is deprecated [deprecated] + WARN homeassistant/scripts/benchmark/__init__.py:39:32-61: `asyncio.events.get_event_loop_policy` is deprecated [deprecated] ERROR homeassistant/scripts/benchmark/__init__.py:39:32-73: Object of class `_AbstractEventLoopPolicy` has no attribute `loop_name` [missing-attribute] ERROR homeassistant/setup.py:109:5-11: `errors` may be uninitialized [unbound-name] ERROR homeassistant/setup.py:109:25-31: `errors` may be uninitialized [unbound-name] ERROR homeassistant/setup.py:113:23-29: `errors` may be uninitialized [unbound-name] -ERROR homeassistant/setup.py:402:17-32: Argument `BoundMethod[Logger, (self: Logger, msg: object, *args: object, *, exc_info: BaseException | bool | tuple[type[BaseException], BaseException, TracebackType | None] | tuple[None, None, None] | None = None, stack_info: bool = False, stacklevel: int = 1, extra: Mapping[str, object] | None = None) -> None]` is not assignable to parameter `callback` with type `(**tuple[object, ...]) -> object` in function `asyncio.events.AbstractEventLoop.call_later` [bad-argument-type] +ERROR homeassistant/setup.py:402:17-32: Argument `BoundMethod[Logger, (self: Logger, msg: object, *args: object, *, exc_info: _ExcInfoType = None, stack_info: bool = False, stacklevel: int = 1, extra: Mapping[str, object] | None = None) -> None]` is not assignable to parameter `callback` with type `(**tuple[object, ...]) -> object` in function `asyncio.events.AbstractEventLoop.call_later` [bad-argument-type] ERROR homeassistant/setup.py:558:8-32: `load_top_level_component` may be uninitialized [unbound-name] ERROR homeassistant/setup.py:560:21-30: `component` may be uninitialized [unbound-name] ERROR homeassistant/setup.py:560:52-61: `component` may be uninitialized [unbound-name] ERROR homeassistant/setup.py:588:5-14: `processed` may be uninitialized [unbound-name] -ERROR homeassistant/util/__init__.py:170:17-31: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute] -ERROR homeassistant/util/__init__.py:172:32-46: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute] -ERROR homeassistant/util/__init__.py:173:17-31: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute] -ERROR homeassistant/util/__init__.py:174:24-38: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute] -ERROR homeassistant/util/__init__.py:177:24-41: Returned type `Coroutine[Unknown, Unknown, None] | None` is not assignable to declared return type `((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]` [bad-return] -ERROR homeassistant/util/__init__.py:188:24-41: Returned type `Coroutine[Unknown, Unknown, None] | None` is not assignable to declared return type `((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]` [bad-return] -ERROR homeassistant/util/aiohttp.py:128:36-63: Argument `Literal['utf-8'] | ((self: Response, value: str | None) -> None)` is not assignable to parameter `encoding` with type `str` in function `bytes.decode` [bad-argument-type] +ERROR homeassistant/util/__init__.py:184:17-31: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute] +ERROR homeassistant/util/__init__.py:186:32-46: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute] +ERROR homeassistant/util/__init__.py:187:17-31: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute] +ERROR homeassistant/util/__init__.py:188:24-38: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute] +ERROR homeassistant/util/__init__.py:191:24-41: Returned type `Coroutine[Unknown, Unknown, None] | None` is not assignable to declared return type `((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]` [bad-return] +ERROR homeassistant/util/__init__.py:202:24-41: Returned type `Coroutine[Unknown, Unknown, None] | None` is not assignable to declared return type `((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]` [bad-return] ERROR homeassistant/util/color.py:303:19-25: No matching overload found for function `max` called with arguments: (Literal[0], float | Unknown) [no-matching-overload] ERROR homeassistant/util/dt.py:237:27-32: `match` may be uninitialized [unbound-name] ERROR homeassistant/util/dt.py:237:27-42: Object of class `NoneType` has no attribute `groupdict` [missing-attribute] @@ -37709,9 +38034,9 @@ ERROR homeassistant/util/read_only_dict.py:17:5-16: Class member `ReadOnlyDict._ ERROR homeassistant/util/read_only_dict.py:18:5-8: Class member `ReadOnlyDict.pop` overrides parent class `dict` in an inconsistent manner [bad-override] ERROR homeassistant/util/read_only_dict.py:21:5-11: Class member `ReadOnlyDict.update` overrides parent class `dict` in an inconsistent manner [bad-override] ERROR homeassistant/util/read_only_dict.py:22:5-15: Class member `ReadOnlyDict.setdefault` overrides parent class `dict` in an inconsistent manner [bad-override] -ERROR homeassistant/util/unit_conversion.py:174:25-42: No matching overload found for function `max` called with arguments: (Literal[0], float) [no-matching-overload] +ERROR homeassistant/util/unit_conversion.py:175:25-42: No matching overload found for function `max` called with arguments: (Literal[0], float) [no-matching-overload] ERROR homeassistant/util/variance.py:41:43-61: `-` is not supported between `_R` and `_R` [unsupported-operation] ERROR homeassistant/util/variance.py:41:43-61: `-` is not supported between `_R` and `_R` [unsupported-operation] ERROR homeassistant/util/variance.py:41:43-61: Argument `float | int | timedelta` is not assignable to parameter `x` with type `SupportsAbs[float]` in function `abs` [bad-argument-type] INFO Checking project configured at `/pyrefly.toml` - INFO 37,086 errors (560 suppressed) + INFO 37,402 errors (532 suppressed) diff --git a/scripts/ty_benchmark/snapshots/homeassistant_Pyright.txt b/scripts/ty_benchmark/snapshots/homeassistant_Pyright.txt index 0b07ba7057..e854c9b3eb 100644 --- a/scripts/ty_benchmark/snapshots/homeassistant_Pyright.txt +++ b/scripts/ty_benchmark/snapshots/homeassistant_Pyright.txt @@ -59,7 +59,7 @@       Type "Literal['home-assistant_v2.db', 'home-assistant_v2.db-wal']" is not assignable to type "Literal['backups']"         "Literal['home-assistant_v2.db']" is not assignable to type "Literal['backups']" (reportArgumentType) /homeassistant/bootstrap.py - /homeassistant/bootstrap.py:456:9 - error: Argument of type "Task[dict[str, Any]]" cannot be assigned to parameter "coros_or_futures" of type "_FutureLike[_T@gather]" in function "gather" + /homeassistant/bootstrap.py:459:9 - error: Argument of type "Task[dict[str, Any]]" cannot be assigned to parameter "coros_or_futures" of type "_FutureLike[_T@gather]" in function "gather"   Type "Task[dict[str, Any]]" is not assignable to type "_FutureLike[None]"     "Task[dict[str, Any]]" is not assignable to "Future[None]"       Type parameter "_T@Future" is invariant, but "dict[str, Any]" is not the same as "None" @@ -264,16 +264,16 @@ /homeassistant/components/acmeda/sensor.py:49:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/actron_air/__init__.py - /homeassistant/components/actron_air/__init__.py:30:19 - error: Type "List[Dict[str, Any]]" is not assignable to declared type "list[ActronAirNeoACSystem]" -   "List[Dict[str, Any]]" is not assignable to "list[ActronAirNeoACSystem]" -     Type parameter "_T@list" is invariant, but "Dict[str, Any]" is not the same as "ActronAirNeoACSystem" + /homeassistant/components/actron_air/__init__.py:30:19 - error: Type "List[Dict[str, Any]]" is not assignable to declared type "list[ActronAirACSystem]" +   "List[Dict[str, Any]]" is not assignable to "list[ActronAirACSystem]" +     Type parameter "_T@list" is invariant, but "Dict[str, Any]" is not the same as "ActronAirACSystem"     Consider switching from "list" to "Sequence" which is covariant (reportAssignmentType) - /homeassistant/components/actron_air/__init__.py:42:64 - error: "__getitem__" method not defined on type "ActronAirNeoACSystem" (reportIndexIssue) - /homeassistant/components/actron_air/__init__.py:44:29 - error: "__getitem__" method not defined on type "ActronAirNeoACSystem" (reportIndexIssue) + /homeassistant/components/actron_air/__init__.py:42:64 - error: "__getitem__" method not defined on type "ActronAirACSystem" (reportIndexIssue) + /homeassistant/components/actron_air/__init__.py:44:29 - error: "__getitem__" method not defined on type "ActronAirACSystem" (reportIndexIssue) /homeassistant/components/actron_air/climate.py - /homeassistant/components/actron_air/climate.py:59:23 - error: Cannot access attribute "ac_system" for class "ActronAirNeoACSystem" + /homeassistant/components/actron_air/climate.py:59:23 - error: Cannot access attribute "ac_system" for class "ActronAirACSystem"   Attribute "ac_system" is unknown (reportAttributeAccessIssue) - /homeassistant/components/actron_air/climate.py:64:32 - error: Cannot access attribute "remote_zone_info" for class "ActronAirNeoACSystem" + /homeassistant/components/actron_air/climate.py:64:32 - error: Cannot access attribute "remote_zone_info" for class "ActronAirACSystem"   Attribute "remote_zone_info" is unknown (reportAttributeAccessIssue) /homeassistant/components/actron_air/climate.py:71:7 - error: Base classes for class "BaseClimateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/actron_air/climate.py:117:41 - error: "system_name" is not a known attribute of "None" (reportOptionalMemberAccess) @@ -283,8 +283,8 @@   "property" is not assignable to "cached_property[float]" (reportIncompatibleVariableOverride) /homeassistant/components/actron_air/climate.py:130:9 - error: "max_temp" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float]" (reportIncompatibleVariableOverride) - /homeassistant/components/actron_air/climate.py:137:16 - error: Type "ActronAirNeoACSystem" is not assignable to return type "ActronAirNeoStatus" -   "ActronAirNeoACSystem" is not assignable to "ActronAirNeoStatus" (reportReturnType) + /homeassistant/components/actron_air/climate.py:137:16 - error: Type "ActronAirACSystem" is not assignable to return type "ActronAirStatus" +   "ActronAirACSystem" is not assignable to "ActronAirStatus" (reportReturnType) /homeassistant/components/actron_air/climate.py:140:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACMode | None]" (reportIncompatibleVariableOverride) /homeassistant/components/actron_air/climate.py:142:50 - error: "is_on" is not a known attribute of "None" (reportOptionalMemberAccess) @@ -326,7 +326,7 @@   "property" is not assignable to "cached_property[float]" (reportIncompatibleVariableOverride) /homeassistant/components/actron_air/climate.py:219:9 - error: "max_temp" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float]" (reportIncompatibleVariableOverride) - /homeassistant/components/actron_air/climate.py:227:23 - error: Cannot access attribute "zones" for class "ActronAirNeoACSystem" + /homeassistant/components/actron_air/climate.py:227:23 - error: Cannot access attribute "zones" for class "ActronAirACSystem"   Attribute "zones" is unknown (reportAttributeAccessIssue) /homeassistant/components/actron_air/climate.py:230:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACMode | None]" (reportIncompatibleVariableOverride) @@ -337,15 +337,15 @@ /homeassistant/components/actron_air/climate.py:248:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) /homeassistant/components/actron_air/coordinator.py - /homeassistant/components/actron_air/coordinator.py:55:30 - error: "__getitem__" method not defined on type "ActronAirNeoACSystem" (reportIndexIssue) + /homeassistant/components/actron_air/coordinator.py:55:30 - error: "__getitem__" method not defined on type "ActronAirACSystem" (reportIndexIssue) /homeassistant/components/actron_air/coordinator.py:60:15 - error: Method "_async_update_data" overrides class "DataUpdateCoordinator" in an incompatible manner -   Return type mismatch: base method returns type "CoroutineType[Any, Any, ActronAirNeoACSystem]", override returns type "CoroutineType[Any, Any, ActronAirNeoStatus]" -     "CoroutineType[Any, Any, ActronAirNeoStatus]" is not assignable to "CoroutineType[Any, Any, ActronAirNeoACSystem]" -       Type parameter "_ReturnT_nd_co@CoroutineType" is covariant, but "ActronAirNeoStatus" is not a subtype of "ActronAirNeoACSystem" -         "ActronAirNeoStatus" is not assignable to "ActronAirNeoACSystem" (reportIncompatibleMethodOverride) - /homeassistant/components/actron_air/coordinator.py:65:16 - error: Type "ActronAirNeoStatus | None" is not assignable to return type "ActronAirNeoStatus" -   Type "ActronAirNeoStatus | None" is not assignable to type "ActronAirNeoStatus" -     "None" is not assignable to "ActronAirNeoStatus" (reportReturnType) +   Return type mismatch: base method returns type "CoroutineType[Any, Any, ActronAirACSystem]", override returns type "CoroutineType[Any, Any, ActronAirStatus]" +     "CoroutineType[Any, Any, ActronAirStatus]" is not assignable to "CoroutineType[Any, Any, ActronAirACSystem]" +       Type parameter "_ReturnT_nd_co@CoroutineType" is covariant, but "ActronAirStatus" is not a subtype of "ActronAirACSystem" +         "ActronAirStatus" is not assignable to "ActronAirACSystem" (reportIncompatibleMethodOverride) + /homeassistant/components/actron_air/coordinator.py:65:16 - error: Type "ActronAirStatus | None" is not assignable to return type "ActronAirStatus" +   Type "ActronAirStatus | None" is not assignable to type "ActronAirStatus" +     "None" is not assignable to "ActronAirStatus" (reportReturnType) /homeassistant/components/adax/climate.py /homeassistant/components/adax/climate.py:87:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) @@ -689,6 +689,20 @@   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/airnow/sensor.py:176:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/airobot/climate.py + /homeassistant/components/airobot/climate.py:52:7 - error: Base classes for class "AirobotClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/airobot/climate.py:77:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity" +   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/airobot/climate.py:87:9 - error: "current_humidity" overrides symbol of same name in class "ClimateEntity" +   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/airobot/climate.py:92:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity" +   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/airobot/climate.py:99:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity" +   "property" is not assignable to "cached_property[HVACMode | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/airobot/climate.py:106:9 - error: "hvac_action" overrides symbol of same name in class "ClimateEntity" +   "property" is not assignable to "cached_property[HVACAction | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/airobot/climate.py:113:9 - error: "preset_mode" overrides symbol of same name in class "ClimateEntity" +   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/airos/binary_sensor.py /homeassistant/components/airos/binary_sensor.py:18:26 - error: "AirOS8Data" is not exported from module "airos.airos8"   Import from "airos.data" instead (reportPrivateImportUsage) @@ -1080,15 +1094,15 @@ /homeassistant/components/ampio/air_quality.py:74:9 - error: "unique_id" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/analytics/analytics.py - /homeassistant/components/analytics/analytics.py:154:10 - error: Function with declared return type "AnalyticsModifications" must return value on all code paths + /homeassistant/components/analytics/analytics.py:169:10 - error: Function with declared return type "AnalyticsModifications" must return value on all code paths   "None" is not assignable to "AnalyticsModifications" (reportReturnType) - /homeassistant/components/analytics/analytics.py:167:16 - error: Type "ModuleType" is not assignable to return type "AnalyticsPlatformProtocol | None" + /homeassistant/components/analytics/analytics.py:182:16 - error: Type "ModuleType" is not assignable to return type "AnalyticsPlatformProtocol | None"   Type "ModuleType" is not assignable to type "AnalyticsPlatformProtocol | None"     "ModuleType" is incompatible with protocol "AnalyticsPlatformProtocol"       "async_modify_analytics" is not present     "ModuleType" is not assignable to "None" (reportReturnType) - /homeassistant/components/analytics/analytics.py:407:33 - error: "enabled_domains" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/analytics/analytics.py:412:35 - error: "enabled_domains" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/analytics/analytics.py:445:33 - error: "enabled_domains" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/analytics/analytics.py:450:35 - error: "enabled_domains" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/analytics_insights/sensor.py /homeassistant/components/analytics_insights/sensor.py:138:7 - error: Base classes for class "HomeassistantAnalyticsSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/analytics_insights/sensor.py:155:14 - error: "entity_description" overrides symbol of same name in class "Entity" @@ -1192,6 +1206,16 @@ /homeassistant/components/anel_pwrctrl/switch.py:9:26 - error: "Device" is unknown import symbol (reportAttributeAccessIssue) /homeassistant/components/anel_pwrctrl/switch.py:9:34 - error: "DeviceMaster" is unknown import symbol (reportAttributeAccessIssue) /homeassistant/components/anel_pwrctrl/switch.py:9:48 - error: "Switch" is unknown import symbol (reportAttributeAccessIssue) +/homeassistant/components/anglian_water/sensor.py + /homeassistant/components/anglian_water/sensor.py:99:7 - error: Base classes for class "AnglianWaterSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/anglian_water/sensor.py:112:14 - error: "entity_description" overrides symbol of same name in class "Entity" +   Variable is mutable so its type is invariant +     Override type "AnglianWaterSensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/anglian_water/sensor.py:112:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" +   Variable is mutable so its type is invariant +     Override type "AnglianWaterSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/anglian_water/sensor.py:115:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/anova/entity.py /homeassistant/components/anova/entity.py:23:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) @@ -1207,7 +1231,7 @@ /homeassistant/components/anthropic/conversation.py /homeassistant/components/anthropic/conversation.py:32:7 - error: Base classes for class "AnthropicConversationEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/anthropic/entity.py - /homeassistant/components/anthropic/entity.py:248:21 - error: Argument of type "ThinkingBlockParam" cannot be assigned to parameter "object" of type "TextBlockParam | WebSearchToolResultBlockParam | ToolResultBlockParam" in function "append" + /homeassistant/components/anthropic/entity.py:245:21 - error: Argument of type "ThinkingBlockParam" cannot be assigned to parameter "object" of type "TextBlockParam | WebSearchToolResultBlockParam | ToolResultBlockParam" in function "append"   Type "ThinkingBlockParam" is not assignable to type "TextBlockParam | WebSearchToolResultBlockParam | ToolResultBlockParam"     "text" is missing from "ThinkingBlockParam"     "type" is an incompatible type @@ -1217,7 +1241,7 @@     "content" is missing from "ThinkingBlockParam"     "tool_use_id" is missing from "ThinkingBlockParam" ... (reportArgumentType) - /homeassistant/components/anthropic/entity.py:248:21 - error: Argument of type "ThinkingBlockParam" cannot be assigned to parameter "object" of type "TextBlockParam | RedactedThinkingBlockParam" in function "append" + /homeassistant/components/anthropic/entity.py:245:21 - error: Argument of type "ThinkingBlockParam" cannot be assigned to parameter "object" of type "TextBlockParam | RedactedThinkingBlockParam" in function "append"   Type "ThinkingBlockParam" is not assignable to type "TextBlockParam | RedactedThinkingBlockParam"     "text" is missing from "ThinkingBlockParam"     "type" is an incompatible type @@ -1227,13 +1251,13 @@     "data" is missing from "ThinkingBlockParam"     "type" is an incompatible type ... (reportArgumentType) - /homeassistant/components/anthropic/entity.py:248:21 - error: Argument of type "ThinkingBlockParam" cannot be assigned to parameter "object" of type "TextBlockParam" in function "append" + /homeassistant/components/anthropic/entity.py:245:21 - error: Argument of type "ThinkingBlockParam" cannot be assigned to parameter "object" of type "TextBlockParam" in function "append"   "text" is missing from "ThinkingBlockParam"   "type" is an incompatible type     "Literal['thinking']" is not assignable to type "Literal['text']"   "cache_control" is missing from "ThinkingBlockParam"   "citations" is missing from "ThinkingBlockParam" (reportArgumentType) - /homeassistant/components/anthropic/entity.py:266:25 - error: Argument of type "RedactedThinkingBlockParam" cannot be assigned to parameter "object" of type "TextBlockParam | WebSearchToolResultBlockParam | ToolResultBlockParam" in function "append" + /homeassistant/components/anthropic/entity.py:263:25 - error: Argument of type "RedactedThinkingBlockParam" cannot be assigned to parameter "object" of type "TextBlockParam | WebSearchToolResultBlockParam | ToolResultBlockParam" in function "append"   Type "RedactedThinkingBlockParam" is not assignable to type "TextBlockParam | WebSearchToolResultBlockParam | ToolResultBlockParam"     "text" is missing from "RedactedThinkingBlockParam"     "type" is an incompatible type @@ -1243,23 +1267,23 @@     "content" is missing from "RedactedThinkingBlockParam"     "tool_use_id" is missing from "RedactedThinkingBlockParam" ... (reportArgumentType) - /homeassistant/components/anthropic/entity.py:266:25 - error: Argument of type "RedactedThinkingBlockParam" cannot be assigned to parameter "object" of type "TextBlockParam" in function "append" + /homeassistant/components/anthropic/entity.py:263:25 - error: Argument of type "RedactedThinkingBlockParam" cannot be assigned to parameter "object" of type "TextBlockParam" in function "append"   "text" is missing from "RedactedThinkingBlockParam"   "type" is an incompatible type     "Literal['redacted_thinking']" is not assignable to type "Literal['text']"   "cache_control" is missing from "RedactedThinkingBlockParam"   "citations" is missing from "RedactedThinkingBlockParam" (reportArgumentType) - /homeassistant/components/anthropic/entity.py:310:21 - error: Argument of type "list[ServerToolUseBlockParam | ToolUseBlockParam]" cannot be assigned to parameter "iterable" of type "Iterable[TextBlockParam | WebSearchToolResultBlockParam | ToolResultBlockParam]" in function "extend" (reportArgumentType) - /homeassistant/components/anthropic/entity.py:310:21 - error: Argument of type "list[ServerToolUseBlockParam | ToolUseBlockParam]" cannot be assigned to parameter "iterable" of type "Iterable[TextBlockParam | RedactedThinkingBlockParam]" in function "extend" (reportArgumentType) - /homeassistant/components/anthropic/entity.py:310:21 - error: Argument of type "list[ServerToolUseBlockParam | ToolUseBlockParam]" cannot be assigned to parameter "iterable" of type "Iterable[TextBlockParam]" in function "extend" (reportArgumentType) - /homeassistant/components/anthropic/entity.py:399:24 - error: "first_block" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/anthropic/entity.py:410:21 - error: "first_block" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/anthropic/entity.py:431:20 - error: "first_block" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/anthropic/entity.py:507:21 - error: Operator "+=" not supported for types "Unbound | str" and "str" + /homeassistant/components/anthropic/entity.py:307:21 - error: Argument of type "list[ServerToolUseBlockParam | ToolUseBlockParam]" cannot be assigned to parameter "iterable" of type "Iterable[TextBlockParam | WebSearchToolResultBlockParam | ToolResultBlockParam]" in function "extend" (reportArgumentType) + /homeassistant/components/anthropic/entity.py:307:21 - error: Argument of type "list[ServerToolUseBlockParam | ToolUseBlockParam]" cannot be assigned to parameter "iterable" of type "Iterable[TextBlockParam | RedactedThinkingBlockParam]" in function "extend" (reportArgumentType) + /homeassistant/components/anthropic/entity.py:307:21 - error: Argument of type "list[ServerToolUseBlockParam | ToolUseBlockParam]" cannot be assigned to parameter "iterable" of type "Iterable[TextBlockParam]" in function "extend" (reportArgumentType) + /homeassistant/components/anthropic/entity.py:396:24 - error: "first_block" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/anthropic/entity.py:407:21 - error: "first_block" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/anthropic/entity.py:428:20 - error: "first_block" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/anthropic/entity.py:504:21 - error: Operator "+=" not supported for types "Unbound | str" and "str"   Operator "+" not supported for types "Unbound" and "str" (reportOperatorIssue) - /homeassistant/components/anthropic/entity.py:507:21 - error: "current_tool_args" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/anthropic/entity.py:529:62 - error: "current_tool_args" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/anthropic/entity.py:667:17 - error: Argument of type "Iterable[ImageBlockParam | DocumentBlockParam]" cannot be assigned to parameter "iterable" of type "Iterable[TextBlockParam]" in function "extend" + /homeassistant/components/anthropic/entity.py:504:21 - error: "current_tool_args" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/anthropic/entity.py:526:62 - error: "current_tool_args" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/anthropic/entity.py:666:17 - error: Argument of type "Iterable[ImageBlockParam | DocumentBlockParam]" cannot be assigned to parameter "iterable" of type "Iterable[TextBlockParam]" in function "extend"   "Iterable[ImageBlockParam | DocumentBlockParam]" is not assignable to "Iterable[TextBlockParam]"     Type parameter "_T_co@Iterable" is covariant, but "ImageBlockParam | DocumentBlockParam" is not a subtype of "TextBlockParam"       Type "ImageBlockParam | DocumentBlockParam" is not assignable to type "TextBlockParam" @@ -1268,9 +1292,9 @@           "Literal['document']" is not assignable to type "Literal['text']"         "citations" is an incompatible type           Type "CitationsConfigParam | None" is not assignable to type "Iterable[TextCitationParam] | None" (reportArgumentType) - /homeassistant/components/anthropic/entity.py:698:31 - error: Could not access item in TypedDict + /homeassistant/components/anthropic/entity.py:697:31 - error: Could not access item in TypedDict   "system" is not a required key in "MessageCreateParamsStreaming", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/anthropic/entity.py:700:58 - error: Could not access item in TypedDict + /homeassistant/components/anthropic/entity.py:699:58 - error: Could not access item in TypedDict   "system" is not a required key in "MessageCreateParamsStreaming", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/aosmith/__init__.py /homeassistant/components/aosmith/__init__.py:5:24 - error: "AOSmithAPIClient" is not exported from module "py_aosmith" @@ -1324,12 +1348,39 @@ /homeassistant/components/apcupsd/binary_sensor.py:55:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/apcupsd/sensor.py - /homeassistant/components/apcupsd/sensor.py:497:7 - error: Base classes for class "APCUPSdSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/apcupsd/sensor.py:501:7 - error: Base classes for class "APCUPSdSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) +/homeassistant/components/apple_tv/__init__.py + /homeassistant/components/apple_tv/__init__.py:151:10 - error: "AppleTVInterface" is not defined (reportUndefinedVariable) + /homeassistant/components/apple_tv/__init__.py:245:16 - error: "exceptions" is not defined (reportUndefinedVariable) + /homeassistant/components/apple_tv/__init__.py:284:30 - error: "AppleTV" is not defined (reportUndefinedVariable) + /homeassistant/components/apple_tv/__init__.py:295:13 - error: "Protocol" is not defined (reportUndefinedVariable) + /homeassistant/components/apple_tv/__init__.py:300:22 - error: "scan" is not defined (reportUndefinedVariable) + /homeassistant/components/apple_tv/__init__.py:308:25 - error: "AppleTV" is not defined (reportUndefinedVariable) + /homeassistant/components/apple_tv/__init__.py:319:36 - error: "AppleTV" is not defined (reportUndefinedVariable) + /homeassistant/components/apple_tv/__init__.py:326:24 - error: "Protocol" is not defined (reportUndefinedVariable) + /homeassistant/components/apple_tv/__init__.py:348:26 - error: "connect" is not defined (reportUndefinedVariable) + /homeassistant/components/apple_tv/__init__.py:349:18 - error: "listener" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/apple_tv/__init__.py:382:38 - error: "DeviceModel" is not defined (reportUndefinedVariable) + /homeassistant/components/apple_tv/__init__.py:383:22 - error: "model_str" is not defined (reportUndefinedVariable) /homeassistant/components/apple_tv/config_flow.py + /homeassistant/components/apple_tv/config_flow.py:13:6 - error: Import "pyatv" could not be resolved (reportMissingImports) + /homeassistant/components/apple_tv/config_flow.py:14:6 - error: Import "pyatv.const" could not be resolved (reportMissingImports) + /homeassistant/components/apple_tv/config_flow.py:15:6 - error: Import "pyatv.convert" could not be resolved (reportMissingImports) + /homeassistant/components/apple_tv/config_flow.py:16:6 - error: Import "pyatv.helpers" could not be resolved (reportMissingImports) + /homeassistant/components/apple_tv/config_flow.py:17:6 - error: Import "pyatv.interface" could not be resolved (reportMissingImports) /homeassistant/components/apple_tv/config_flow.py:292:9 - error: Method "is_matching" overrides class "ConfigFlow" in an incompatible manner   Parameter 2 type mismatch: base parameter is type "ConfigFlow", override parameter is type "AppleTVConfigFlow"     "ConfigFlow" is not assignable to "AppleTVConfigFlow" (reportIncompatibleMethodOverride) + /homeassistant/components/apple_tv/config_flow.py:453:44 - error: "value" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/apple_tv/config_flow.py:472:32 - error: "begin" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/apple_tv/config_flow.py:489:25 - error: "device_provides_pin" is not a known attribute of "None" (reportOptionalMemberAccess) +/homeassistant/components/apple_tv/entity.py + /homeassistant/components/apple_tv/entity.py:5:6 - error: Import "pyatv.interface" could not be resolved (reportMissingImports) /homeassistant/components/apple_tv/media_player.py + /homeassistant/components/apple_tv/media_player.py:9:6 - error: Import "pyatv" could not be resolved (reportMissingImports) + /homeassistant/components/apple_tv/media_player.py:10:6 - error: Import "pyatv.const" could not be resolved (reportMissingImports) + /homeassistant/components/apple_tv/media_player.py:19:6 - error: Import "pyatv.helpers" could not be resolved (reportMissingImports) + /homeassistant/components/apple_tv/media_player.py:20:6 - error: Import "pyatv.interface" could not be resolved (reportMissingImports) /homeassistant/components/apple_tv/media_player.py:184:9 - error: "state" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[StateType]" (reportIncompatibleVariableOverride) /homeassistant/components/apple_tv/media_player.py:184:9 - error: "state" overrides symbol of same name in class "MediaPlayerEntity" @@ -1369,6 +1420,7 @@ /homeassistant/components/apple_tv/media_player.py:438:9 - error: "shuffle" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/apple_tv/remote.py + /homeassistant/components/apple_tv/remote.py:8:6 - error: Import "pyatv.const" could not be resolved (reportMissingImports) /homeassistant/components/apple_tv/remote.py:55:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/application_credentials/__init__.py @@ -1715,7 +1767,7 @@ /homeassistant/components/aseko_pool_live/sensor.py:108:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/assist_pipeline/pipeline.py - /homeassistant/components/assist_pipeline/pipeline.py:1251:64 - error: "get" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/assist_pipeline/pipeline.py:1194:64 - error: "get" is not a known attribute of "None" (reportOptionalMemberAccess) /homeassistant/components/assist_pipeline/select.py /homeassistant/components/assist_pipeline/select.py:60:7 - error: Base classes for class "AssistPipelineSelect" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/assist_pipeline/select.py:60:7 - error: Base classes for class "AssistPipelineSelect" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) @@ -2095,21 +2147,21 @@ /homeassistant/components/auth/mfa_setup_flow.py:160:19 - error: Could not access item in TypedDict   "data_schema" is not a required key in "FlowResult[FlowContext, str]", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/automation/__init__.py - /homeassistant/components/automation/__init__.py:123:71 - error: Function with declared return type "bool" must return value on all code paths + /homeassistant/components/automation/__init__.py:170:71 - error: Function with declared return type "bool" must return value on all code paths   "None" is not assignable to "bool" (reportReturnType) - /homeassistant/components/automation/__init__.py:334:9 - error: "capability_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/automation/__init__.py:395:9 - error: "capability_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[dict[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/automation/__init__.py:468:7 - error: Base classes for class "AutomationEntity" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/automation/__init__.py:468:7 - error: Base classes for class "AutomationEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/automation/__init__.py:468:7 - error: Base classes for class "AutomationEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/automation/__init__.py:468:7 - error: Base classes for class "AutomationEntity" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/automation/__init__.py:505:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/automation/__init__.py:529:7 - error: Base classes for class "AutomationEntity" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/automation/__init__.py:529:7 - error: Base classes for class "AutomationEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/automation/__init__.py:529:7 - error: Base classes for class "AutomationEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/automation/__init__.py:529:7 - error: Base classes for class "AutomationEntity" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/automation/__init__.py:566:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/automation/__init__.py:517:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/automation/__init__.py:578:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/automation/__init__.py:522:9 - error: "referenced_labels" overrides symbol of same name in class "BaseAutomationEntity" + /homeassistant/components/automation/__init__.py:583:9 - error: "referenced_labels" overrides symbol of same name in class "BaseAutomationEntity"   "property" is not assignable to "cached_property[set[str]]" (reportIncompatibleVariableOverride) - /homeassistant/components/automation/__init__.py:527:9 - error: "referenced_floors" overrides symbol of same name in class "BaseAutomationEntity" + /homeassistant/components/automation/__init__.py:588:9 - error: "referenced_floors" overrides symbol of same name in class "BaseAutomationEntity"   "property" is not assignable to "cached_property[set[str]]" (reportIncompatibleVariableOverride) /homeassistant/components/automation/reproduce_state.py /homeassistant/components/automation/reproduce_state.py:56:17 - error: "service" is possibly unbound (reportPossiblyUnboundVariable) @@ -2397,44 +2449,46 @@ /homeassistant/components/balboa/time.py:49:9 - error: "native_value" overrides symbol of same name in class "TimeEntity"   "property" is not assignable to "cached_property[time | None]" (reportIncompatibleVariableOverride) /homeassistant/components/bang_olufsen/media_player.py - /homeassistant/components/bang_olufsen/media_player.py:306:20 - error: "sw_version" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/bang_olufsen/media_player.py:587:9 - error: "supported_features" overrides symbol of same name in class "Entity" + /homeassistant/components/bang_olufsen/media_player.py:307:20 - error: "sw_version" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/bang_olufsen/media_player.py:597:9 - error: "supported_features" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:587:9 - error: "supported_features" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:597:9 - error: "supported_features" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[MediaPlayerEntityFeature]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:598:9 - error: "state" overrides symbol of same name in class "Entity" + /homeassistant/components/bang_olufsen/media_player.py:608:9 - error: "state" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[StateType]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:598:9 - error: "state" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:608:9 - error: "state" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[MediaPlayerState | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:603:9 - error: "volume_level" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:613:9 - error: "volume_level" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:610:9 - error: "is_volume_muted" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:620:9 - error: "is_volume_muted" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:617:9 - error: "media_content_type" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:627:9 - error: "media_content_type" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[MediaType | str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:625:9 - error: "media_duration" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:642:9 - error: "media_duration" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:630:9 - error: "media_position" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:647:9 - error: "media_position" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:635:9 - error: "media_image_url" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:652:9 - error: "media_content_id" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:640:9 - error: "media_image_remotely_accessible" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:657:9 - error: "media_image_url" overrides symbol of same name in class "MediaPlayerEntity" +   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/bang_olufsen/media_player.py:662:9 - error: "media_image_remotely_accessible" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:645:9 - error: "media_title" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:667:9 - error: "media_title" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:650:9 - error: "media_album_name" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:672:9 - error: "media_album_name" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:655:9 - error: "media_album_artist" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:677:9 - error: "media_album_artist" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:660:9 - error: "media_track" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:682:9 - error: "media_track" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:665:9 - error: "media_channel" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:687:9 - error: "media_channel" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:670:9 - error: "source" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/bang_olufsen/media_player.py:692:9 - error: "source" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:675:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/bang_olufsen/media_player.py:697:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/bang_olufsen/media_player.py:932:53 - error: Argument of type "Unknown | None" cannot be assigned to parameter "s" of type "str | bytes | bytearray" in function "loads" + /homeassistant/components/bang_olufsen/media_player.py:952:53 - error: Argument of type "Unknown | None" cannot be assigned to parameter "s" of type "str | bytes | bytearray" in function "loads"   Type "Unknown | None" is not assignable to type "str | bytes | bytearray"     Type "None" is not assignable to type "str | bytes | bytearray"       "None" is not assignable to "str" @@ -2738,10 +2792,6 @@ /homeassistant/components/bluetooth_le_tracker/device_tracker.py /homeassistant/components/bluetooth_le_tracker/device_tracker.py:9:32 - error: "BleakError" is not exported from module "bleak"   Import from "bleak.exc" instead (reportPrivateImportUsage) -/homeassistant/components/bluetooth_tracker/device_tracker.py - /homeassistant/components/bluetooth_tracker/device_tracker.py:11:6 - error: Import "bt_proximity" could not be resolved (reportMissingImports) - /homeassistant/components/bluetooth_tracker/device_tracker.py:63:28 - error: "discover_devices" is not a known attribute of module "bluetooth" (reportAttributeAccessIssue) - /homeassistant/components/bluetooth_tracker/device_tracker.py:185:26 - error: "BluetoothError" is not a known attribute of module "bluetooth" (reportAttributeAccessIssue) /homeassistant/components/bmw_connected_drive/binary_sensor.py /homeassistant/components/bmw_connected_drive/binary_sensor.py:10:38 - error: "MyBMWVehicle" is not exported from module "bimmer_connected.vehicle"   Import from "bimmer_connected.vehicle.vehicle" instead (reportPrivateImportUsage) @@ -3349,12 +3399,14 @@ /homeassistant/components/brother/sensor.py:10:21 - error: "BrotherSensors" is not exported from module "brother"   Import from "brother.model" instead (reportPrivateImportUsage) /homeassistant/components/brother/sensor.py:335:7 - error: Base classes for class "BrotherPrinterSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/brother/sensor.py:350:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/brother/sensor.py:349:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "BrotherSensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/brother/sensor.py:350:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/brother/sensor.py:349:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "BrotherSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/brother/sensor.py:352:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/brottsplatskartan/sensor.py /homeassistant/components/brottsplatskartan/sensor.py:68:59 - error: Type "list[Unknown] | bool" is not assignable to declared type "dict[str, list[Unknown]] | Literal[False]"   Type "list[Unknown] | bool" is not assignable to type "dict[str, list[Unknown]] | Literal[False]" @@ -3596,17 +3648,17 @@   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/camera/__init__.py - /homeassistant/components/camera/__init__.py:458:5 - error: "_attr_state" overrides symbol of same name in class "Entity" + /homeassistant/components/camera/__init__.py:443:5 - error: "_attr_state" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "None" is not the same as base type "StateType" (reportIncompatibleVariableOverride) - /homeassistant/components/camera/__init__.py:459:5 - error: "_attr_supported_features" overrides symbol of same name in class "Entity" + /homeassistant/components/camera/__init__.py:444:5 - error: "_attr_supported_features" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "CameraEntityFeature" is not the same as base type "int | None" (reportIncompatibleVariableOverride) - /homeassistant/components/camera/__init__.py:527:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/camera/__init__.py:512:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/camera/__init__.py:618:9 - error: "state" overrides symbol of same name in class "Entity" + /homeassistant/components/camera/__init__.py:603:9 - error: "state" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[StateType]" (reportIncompatibleVariableOverride) - /homeassistant/components/camera/__init__.py:665:9 - error: "state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/camera/__init__.py:650:9 - error: "state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[dict[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/camera/media_source.py /homeassistant/components/camera/media_source.py:52:5 - error: "name" overrides symbol of same name in class "MediaSource" @@ -3767,35 +3819,39 @@ /homeassistant/components/climate/intent.py:30:5 - error: "slot_schema" incorrectly overrides property of same name in class "IntentHandler" (reportIncompatibleMethodOverride) /homeassistant/components/climate/intent.py:30:19 - error: Type "dict[Required | Optional, Coerce | ((value: Any) -> str)]" is not assignable to declared type "property" (reportAssignmentType) /homeassistant/components/cloud/__init__.py - /homeassistant/components/cloud/__init__.py:281:51 - error: Argument of type "str | Unknown | Any" cannot be assigned to parameter "alexa_user_config" of type "dict[str, Any]" in function "__init__" + /homeassistant/components/cloud/__init__.py:313:51 - error: Argument of type "str | Unknown | Any" cannot be assigned to parameter "alexa_user_config" of type "dict[str, Any]" in function "__init__"   Type "str | Unknown | Any" is not assignable to type "dict[str, Any]"     "str" is not assignable to "dict[str, Any]" (reportArgumentType) - /homeassistant/components/cloud/__init__.py:281:63 - error: Argument of type "str | Unknown | Any" cannot be assigned to parameter "google_user_config" of type "dict[str, Any]" in function "__init__" + /homeassistant/components/cloud/__init__.py:313:63 - error: Argument of type "str | Unknown | Any" cannot be assigned to parameter "google_user_config" of type "dict[str, Any]" in function "__init__"   Type "str | Unknown | Any" is not assignable to type "dict[str, Any]"     "str" is not assignable to "dict[str, Any]" (reportArgumentType) - /homeassistant/components/cloud/__init__.py:282:53 - error: Argument of type "str" cannot be assigned to parameter "mode" of type "Literal['development', 'production']" in function "__init__" + /homeassistant/components/cloud/__init__.py:314:53 - error: Argument of type "str" cannot be assigned to parameter "mode" of type "Literal['development', 'production']" in function "__init__"   Type "str" is not assignable to type "Literal['development', 'production']"     "str" is not assignable to type "Literal['development']"     "str" is not assignable to type "Literal['production']" (reportArgumentType) - /homeassistant/components/cloud/__init__.py:282:53 - error: Argument of type "str" cannot be assigned to parameter "discovery_service_actions" of type "dict[ServiceDiscoveryAction, str] | None" in function "__init__" + /homeassistant/components/cloud/__init__.py:314:53 - error: Argument of type "str" cannot be assigned to parameter "discovery_service_actions" of type "dict[ServiceDiscoveryAction, str] | None" in function "__init__"   Type "str" is not assignable to type "dict[ServiceDiscoveryAction, str] | None"     "str" is not assignable to "dict[ServiceDiscoveryAction, str]"     "str" is not assignable to "None" (reportArgumentType) +/homeassistant/components/cloud/ai_task.py + /homeassistant/components/cloud/ai_task.py:113:9 - error: "available" overrides symbol of same name in class "Entity" +   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/components/cloud/binary_sensor.py /homeassistant/components/cloud/binary_sensor.py:50:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/cloud/binary_sensor.py:55:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/components/cloud/client.py - /homeassistant/components/cloud/client.py:96:45 - error: Cannot access attribute "AppRunner" for class "object" + /homeassistant/components/cloud/client.py:97:45 - error: Cannot access attribute "AppRunner" for class "object"   Attribute "AppRunner" is unknown (reportAttributeAccessIssue) - /homeassistant/components/cloud/client.py:183:50 - error: Argument of type "HassJob[(_: Any), CoroutineType[Any, Any, None]]" cannot be assigned to parameter "action" of type "HassJob[(datetime), Coroutine[Any, Any, None] | None] | ((datetime) -> (Coroutine[Any, Any, None] | None))" in function "async_call_later" + /homeassistant/components/cloud/client.py:189:50 - error: Argument of type "HassJob[(_: Any), CoroutineType[Any, Any, None]]" cannot be assigned to parameter "action" of type "HassJob[(datetime), Coroutine[Any, Any, None] | None] | ((datetime) -> (Coroutine[Any, Any, None] | None))" in function "async_call_later"   Type "HassJob[(_: Any), CoroutineType[Any, Any, None]]" is not assignable to type "HassJob[(datetime), Coroutine[Any, Any, None] | None] | ((datetime) -> (Coroutine[Any, Any, None] | None))"     "HassJob[(_: Any), CoroutineType[Any, Any, None]]" is not assignable to "HassJob[(datetime), Coroutine[Any, Any, None] | None]"       Type parameter "_R_co@HassJob" is invariant, but "CoroutineType[Any, Any, None]" is not the same as "Coroutine[Any, Any, None] | None"     Type "HassJob[(_: Any), CoroutineType[Any, Any, None]]" is not assignable to type "(datetime) -> (Coroutine[Any, Any, None] | None)" (reportArgumentType) -/homeassistant/components/cloud/http_api.py - /homeassistant/components/cloud/http_api.py:87:35 - error: "CloudError" is not exported from module ".auth" (reportPrivateImportUsage) +/homeassistant/components/cloud/conversation.py + /homeassistant/components/cloud/conversation.py:41:9 - error: "available" overrides symbol of same name in class "Entity" +   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/components/cloud/tts.py /homeassistant/components/cloud/tts.py:329:9 - error: "default_language" overrides symbol of same name in class "TextToSpeechEntity"   "property" is not assignable to "cached_property[str]" (reportIncompatibleVariableOverride) @@ -3961,10 +4017,15 @@   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/compit/climate.py:213:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACMode | None]" (reportIncompatibleVariableOverride) -/homeassistant/components/concord232/alarm_control_panel.py - /homeassistant/components/concord232/alarm_control_panel.py:8:24 - error: "client" is unknown import symbol (reportAttributeAccessIssue) /homeassistant/components/concord232/binary_sensor.py - /homeassistant/components/concord232/binary_sensor.py:8:24 - error: "client" is unknown import symbol (reportAttributeAccessIssue) + /homeassistant/components/concord232/binary_sensor.py:68:16 - error: Cannot assign to attribute "zones" for class "Client" +   Attribute "zones" is unknown (reportAttributeAccessIssue) + /homeassistant/components/concord232/binary_sensor.py:69:16 - error: Cannot assign to attribute "last_zone_update" for class "Client" +   Attribute "last_zone_update" is unknown (reportAttributeAccessIssue) + /homeassistant/components/concord232/binary_sensor.py:80:12 - error: Cannot access attribute "zones" for class "Client" +   Attribute "zones" is unknown (reportAttributeAccessIssue) + /homeassistant/components/concord232/binary_sensor.py:82:24 - error: Cannot access attribute "zones" for class "Client" +   Attribute "zones" is unknown (reportAttributeAccessIssue) /homeassistant/components/concord232/binary_sensor.py:122:9 - error: "device_class" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[BinarySensorDeviceClass | None]" (reportIncompatibleVariableOverride) /homeassistant/components/concord232/binary_sensor.py:127:9 - error: "name" overrides symbol of same name in class "Entity" @@ -4078,24 +4139,24 @@ /homeassistant/components/control4/media_player.py:342:9 - error: "is_volume_muted" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/conversation/chat_log.py - /homeassistant/components/conversation/chat_log.py:317:29 - error: Argument of type "Unknown | dict[str, str]" cannot be assigned to parameter "tool_result" of type "JsonObjectType" in function "__init__" + /homeassistant/components/conversation/chat_log.py:472:29 - error: Argument of type "Unknown | dict[str, str]" cannot be assigned to parameter "tool_result" of type "JsonObjectType" in function "__init__"   Type "Unknown | dict[str, str]" is not assignable to type "JsonObjectType"     "dict[str, str]" is not assignable to "dict[str, JsonValueType]"       Type parameter "_VT@dict" is invariant, but "str" is not the same as "JsonValueType"       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) - /homeassistant/components/conversation/chat_log.py:424:34 - error: Could not access item in TypedDict + /homeassistant/components/conversation/chat_log.py:587:34 - error: Could not access item in TypedDict   "tool_call_id" is not a required key in "ToolResultContentDeltaDict", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/conversation/chat_log.py:425:31 - error: Could not access item in TypedDict + /homeassistant/components/conversation/chat_log.py:588:31 - error: Could not access item in TypedDict   "tool_name" is not a required key in "ToolResultContentDeltaDict", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/conversation/chat_log.py:426:33 - error: Could not access item in TypedDict + /homeassistant/components/conversation/chat_log.py:589:33 - error: Could not access item in TypedDict   "tool_result" is not a required key in "ToolResultContentDeltaDict", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/conversation/default_agent.py /homeassistant/components/conversation/default_agent.py:34:35 - error: "UnmatchedRangeEntity" is not exported from module "hassil.string_matcher"   Import from "hassil.models" instead (reportPrivateImportUsage) /homeassistant/components/conversation/default_agent.py:34:57 - error: "UnmatchedTextEntity" is not exported from module "hassil.string_matcher"   Import from "hassil.models" instead (reportPrivateImportUsage) - /homeassistant/components/conversation/default_agent.py:800:28 - error: No overloads for "get" match the provided arguments (reportCallIssue) - /homeassistant/components/conversation/default_agent.py:800:48 - error: Argument of type "str | Any | None" cannot be assigned to parameter "key" of type "str" in function "get" + /homeassistant/components/conversation/default_agent.py:822:28 - error: No overloads for "get" match the provided arguments (reportCallIssue) + /homeassistant/components/conversation/default_agent.py:822:48 - error: Argument of type "str | Any | None" cannot be assigned to parameter "key" of type "str" in function "get"   Type "str | Any | None" is not assignable to type "str"     "None" is not assignable to "str" (reportArgumentType) /homeassistant/components/conversation/entity.py @@ -4137,28 +4198,28 @@ /homeassistant/components/coolmaster/button.py:26:7 - error: Base classes for class "CoolmasterResetFilter" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/coolmaster/button.py:26:7 - error: Base classes for class "CoolmasterResetFilter" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/coolmaster/climate.py - /homeassistant/components/coolmaster/climate.py:55:7 - error: Base classes for class "CoolmasterClimate" define variable "_attr_device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:55:7 - error: Base classes for class "CoolmasterClimate" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:55:7 - error: Base classes for class "CoolmasterClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:72:9 - error: "supported_features" overrides symbol of same name in class "Entity" + /homeassistant/components/coolmaster/climate.py:68:7 - error: Base classes for class "CoolmasterClimate" define variable "_attr_device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/coolmaster/climate.py:68:7 - error: Base classes for class "CoolmasterClimate" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/coolmaster/climate.py:68:7 - error: Base classes for class "CoolmasterClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/coolmaster/climate.py:85:9 - error: "supported_features" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:72:9 - error: "supported_features" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/coolmaster/climate.py:85:9 - error: "supported_features" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[ClimateEntityFeature]" (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:85:9 - error: "temperature_unit" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/coolmaster/climate.py:98:9 - error: "temperature_unit" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[str]" (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:93:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/coolmaster/climate.py:106:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:98:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/coolmaster/climate.py:111:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:103:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/coolmaster/climate.py:116:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACMode | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:112:9 - error: "fan_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/coolmaster/climate.py:125:9 - error: "fan_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:117:9 - error: "fan_modes" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/coolmaster/climate.py:130:9 - error: "fan_modes" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:122:9 - error: "swing_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/coolmaster/climate.py:135:9 - error: "swing_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/coolmaster/climate.py:127:9 - error: "swing_modes" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/coolmaster/climate.py:140:9 - error: "swing_modes" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/coolmaster/entity.py /homeassistant/components/coolmaster/entity.py:25:14 - error: "_attr_device_info" overrides symbol of same name in class "Entity" @@ -4565,23 +4626,23 @@ /homeassistant/components/deconz/switch.py:51:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/decora_wifi/light.py - /homeassistant/components/decora_wifi/light.py:8:25 - error: "DecoraWiFiSession" is unknown import symbol (reportAttributeAccessIssue) - /homeassistant/components/decora_wifi/light.py:9:6 - error: Import "decora_wifi.models.person" could not be resolved (reportMissingImports) - /homeassistant/components/decora_wifi/light.py:10:6 - error: Import "decora_wifi.models.residence" could not be resolved (reportMissingImports) - /homeassistant/components/decora_wifi/light.py:11:6 - error: Import "decora_wifi.models.residential_account" could not be resolved (reportMissingImports) - /homeassistant/components/decora_wifi/light.py:104:9 - error: "color_mode" overrides symbol of same name in class "LightEntity" + /homeassistant/components/decora_wifi/light.py:9:25 - error: "DecoraWiFiSession" is unknown import symbol (reportAttributeAccessIssue) + /homeassistant/components/decora_wifi/light.py:10:6 - error: Import "decora_wifi.models.person" could not be resolved (reportMissingImports) + /homeassistant/components/decora_wifi/light.py:11:6 - error: Import "decora_wifi.models.residence" could not be resolved (reportMissingImports) + /homeassistant/components/decora_wifi/light.py:12:6 - error: Import "decora_wifi.models.residential_account" could not be resolved (reportMissingImports) + /homeassistant/components/decora_wifi/light.py:106:9 - error: "color_mode" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[ColorMode | str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/decora_wifi/light.py:111:9 - error: "supported_color_modes" overrides symbol of same name in class "LightEntity" + /homeassistant/components/decora_wifi/light.py:113:9 - error: "supported_color_modes" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[set[ColorMode] | set[str] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/decora_wifi/light.py:116:9 - error: "supported_features" overrides symbol of same name in class "LightEntity" + /homeassistant/components/decora_wifi/light.py:118:9 - error: "supported_features" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[LightEntityFeature]" (reportIncompatibleVariableOverride) - /homeassistant/components/decora_wifi/light.py:123:9 - error: "name" overrides symbol of same name in class "Entity" + /homeassistant/components/decora_wifi/light.py:125:9 - error: "name" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | UndefinedType | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/decora_wifi/light.py:128:9 - error: "unique_id" overrides symbol of same name in class "Entity" + /homeassistant/components/decora_wifi/light.py:130:9 - error: "unique_id" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/decora_wifi/light.py:133:9 - error: "brightness" overrides symbol of same name in class "LightEntity" + /homeassistant/components/decora_wifi/light.py:135:9 - error: "brightness" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/decora_wifi/light.py:138:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/decora_wifi/light.py:140:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/delijn/sensor.py /homeassistant/components/delijn/sensor.py:8:6 - error: Import "pydelijn.api" could not be resolved (reportMissingImports) @@ -4907,10 +4968,10 @@ /homeassistant/components/denonavr/receiver.py:102:32 - error: Cannot access attribute "async_update_audyssey" for class "DenonAVRFoundation"   Attribute "async_update_audyssey" is unknown (reportAttributeAccessIssue) /homeassistant/components/derivative/sensor.py - /homeassistant/components/derivative/sensor.py:466:21 - error: "new_derivative" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/derivative/sensor.py:475:68 - error: "new_derivative" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/derivative/sensor.py:483:16 - error: "elapsed_time" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/derivative/sensor.py:484:30 - error: "new_derivative" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/derivative/sensor.py:478:21 - error: "new_derivative" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/derivative/sensor.py:487:68 - error: "new_derivative" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/derivative/sensor.py:495:16 - error: "elapsed_time" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/derivative/sensor.py:496:30 - error: "new_derivative" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/devialet/config_flow.py /homeassistant/components/devialet/config_flow.py:51:19 - error: Argument of type "str | None" cannot be assigned to parameter "title" of type "str" in function "async_create_entry"   Type "str | None" is not assignable to type "str" @@ -5298,12 +5359,6 @@   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/dlna_dmr/media_player.py:1011:9 - error: "media_playlist" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) -/homeassistant/components/dominos/__init__.py - /homeassistant/components/dominos/__init__.py:6:6 - error: Import "pizzapi" could not be resolved (reportMissingImports) - /homeassistant/components/dominos/__init__.py:196:9 - error: "name" overrides symbol of same name in class "Entity" -   "property" is not assignable to "cached_property[str | UndefinedType | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/dominos/__init__.py:211:9 - error: "state" overrides symbol of same name in class "Entity" -   "property" is not assignable to "cached_property[StateType]" (reportIncompatibleVariableOverride) /homeassistant/components/doods/image_processing.py /homeassistant/components/doods/image_processing.py:12:6 - error: Import "pydoods" could not be resolved (reportMissingImports) /homeassistant/components/doods/image_processing.py:222:9 - error: "state" overrides symbol of same name in class "Entity" @@ -5475,16 +5530,6 @@   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/dublin_bus_transport/sensor.py:124:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) -/homeassistant/components/duckdns/__init__.py - /homeassistant/components/duckdns/__init__.py:141:46 - error: Argument of type "HassJob[(now: datetime), CoroutineType[Any, Any, None]]" cannot be assigned to parameter "action" of type "HassJob[(datetime), Coroutine[Any, Any, None] | None] | ((datetime) -> (Coroutine[Any, Any, None] | None))" in function "async_call_later" -   Type "HassJob[(now: datetime), CoroutineType[Any, Any, None]]" is not assignable to type "HassJob[(datetime), Coroutine[Any, Any, None] | None] | ((datetime) -> (Coroutine[Any, Any, None] | None))" -     "HassJob[(now: datetime), CoroutineType[Any, Any, None]]" is not assignable to "HassJob[(datetime), Coroutine[Any, Any, None] | None]" -       Type parameter "_R_co@HassJob" is invariant, but "CoroutineType[Any, Any, None]" is not the same as "Coroutine[Any, Any, None] | None" -     Type "HassJob[(now: datetime), CoroutineType[Any, Any, None]]" is not assignable to type "(datetime) -> (Coroutine[Any, Any, None] | None)" (reportArgumentType) - /homeassistant/components/duckdns/__init__.py:145:5 - error: No overloads for "async_run_hass_job" match the provided arguments (reportCallIssue) - /homeassistant/components/duckdns/__init__.py:145:29 - error: Argument of type "HassJob[(now: datetime), CoroutineType[Any, Any, None]]" cannot be assigned to parameter "hassjob" of type "HassJob[..., Coroutine[Any, Any, _R@async_run_hass_job] | _R@async_run_hass_job]" in function "async_run_hass_job" -   "HassJob[(now: datetime), CoroutineType[Any, Any, None]]" is not assignable to "HassJob[..., Coroutine[Any, Any, _R@async_run_hass_job] | _R@async_run_hass_job]" -     Type parameter "_R_co@HassJob" is invariant, but "CoroutineType[Any, Any, None]" is not the same as "Coroutine[Any, Any, _R@async_run_hass_job] | _R@async_run_hass_job" (reportArgumentType) /homeassistant/components/duke_energy/coordinator.py /homeassistant/components/duke_energy/coordinator.py:110:21 - error: Could not access item in TypedDict   "start" is not a required key in "StatisticsRow", so access may result in runtime exception (reportTypedDictNotRequiredAccess) @@ -6444,8 +6489,8 @@ /homeassistant/components/ecowitt/entity.py:46:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/components/ecowitt/sensor.py - /homeassistant/components/ecowitt/sensor.py:310:7 - error: Base classes for class "EcowittSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/ecowitt/sensor.py:321:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/ecowitt/sensor.py:308:7 - error: Base classes for class "EcowittSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/ecowitt/sensor.py:319:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/edimax/switch.py /homeassistant/components/edimax/switch.py:7:6 - error: Import "pyedimax.smartplug" could not be resolved (reportMissingImports) @@ -6696,7 +6741,7 @@ /homeassistant/components/elkm1/climate.py:129:9 - error: "fan_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/elkm1/config_flow.py - /homeassistant/components/elkm1/config_flow.py:202:9 - error: Method "is_matching" overrides class "ConfigFlow" in an incompatible manner + /homeassistant/components/elkm1/config_flow.py:203:9 - error: Method "is_matching" overrides class "ConfigFlow" in an incompatible manner   Parameter 2 type mismatch: base parameter is type "ConfigFlow", override parameter is type "Elkm1ConfigFlow"     "ConfigFlow" is not assignable to "Elkm1ConfigFlow" (reportIncompatibleMethodOverride) /homeassistant/components/elkm1/entity.py @@ -6904,15 +6949,18 @@       "Device" is not assignable to "PowerStripUSB"       "Device" is not assignable to "None" (reportAssignmentType) /homeassistant/components/energy/data.py - /homeassistant/components/energy/data.py:367:17 - error: Could not assign item in TypedDict + /homeassistant/components/energy/data.py:388:17 - error: Could not assign item in TypedDict   Type "list[SourceType] | list[DeviceConsumption]" is not assignable to type "list[SourceType]"   Type "list[SourceType] | list[DeviceConsumption]" is not assignable to type "list[DeviceConsumption]" +   Type "list[SourceType] | list[DeviceConsumption]" is not assignable to type "list[DeviceConsumption]"     "list[DeviceConsumption]" is not assignable to "list[SourceType]"       Type parameter "_T@list" is invariant, but "DeviceConsumption" is not the same as "SourceType"       Consider switching from "list" to "Sequence" which is covariant     "list[SourceType]" is not assignable to "list[DeviceConsumption]"       Type parameter "_T@list" is invariant, but "SourceType" is not the same as "DeviceConsumption" -       Consider switching from "list" to "Sequence" which is covariant (reportGeneralTypeIssues) + ... (reportGeneralTypeIssues) + /homeassistant/components/energy/data.py:388:29 - error: Could not access item in TypedDict +   "device_consumption_water" is not a required key in "EnergyPreferencesUpdate", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/energy/sensor.py /homeassistant/components/energy/sensor.py:321:17 - error: "valid_units" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/energy/sensor.py:321:30 - error: "default_price_unit" is possibly unbound (reportPossiblyUnboundVariable) @@ -6923,21 +6971,21 @@ /homeassistant/components/energy/sensor.py:487:9 - error: "unique_id" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/energy/validate.py - /homeassistant/components/energy/validate.py:174:45 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) - /homeassistant/components/energy/validate.py:234:45 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) - /homeassistant/components/energy/validate.py:305:45 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) - /homeassistant/components/energy/validate.py:338:45 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) - /homeassistant/components/energy/validate.py:392:56 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) - /homeassistant/components/energy/validate.py:521:56 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) - /homeassistant/components/energy/validate.py:581:56 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) - /homeassistant/components/energy/validate.py:641:56 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) - /homeassistant/components/energy/validate.py:749:26 - error: "statistics" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/validate.py:181:45 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/validate.py:241:45 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/validate.py:312:45 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/validate.py:345:45 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/validate.py:399:56 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/validate.py:528:56 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/validate.py:588:56 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/validate.py:648:56 - error: "models" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/validate.py:773:26 - error: "statistics" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) /homeassistant/components/energy/websocket_api.py - /homeassistant/components/energy/websocket_api.py:276:18 - error: "statistics" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) - /homeassistant/components/energy/websocket_api.py:298:24 - error: Could not access item in TypedDict + /homeassistant/components/energy/websocket_api.py:277:18 - error: "statistics" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/websocket_api.py:299:24 - error: Could not access item in TypedDict   "start" is not a required key in "StatisticsRow", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/energy/websocket_api.py:361:52 - error: "statistics" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) - /homeassistant/components/energy/websocket_api.py:372:22 - error: "statistics" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/websocket_api.py:362:52 - error: "statistics" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) + /homeassistant/components/energy/websocket_api.py:373:22 - error: "statistics" is not a known attribute of module "homeassistant.components.recorder" (reportAttributeAccessIssue) /homeassistant/components/energyzero/sensor.py /homeassistant/components/energyzero/sensor.py:163:7 - error: Base classes for class "EnergyZeroSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/energyzero/sensor.py:180:14 - error: "entity_description" overrides symbol of same name in class "Entity" @@ -7642,6 +7690,18 @@ /homeassistant/components/esphome/valve.py:94:15 - error: Method "async_set_valve_position" overrides class "ValveEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) +/homeassistant/components/essent/sensor.py + /homeassistant/components/essent/sensor.py:188:7 - error: Base classes for class "EssentSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/essent/sensor.py:204:14 - error: "entity_description" overrides symbol of same name in class "Entity" +   Variable is mutable so its type is invariant +     Override type "EssentSensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/essent/sensor.py:204:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" +   Variable is mutable so its type is invariant +     Override type "EssentSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/essent/sensor.py:209:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) + /homeassistant/components/essent/sensor.py:214:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/etherscan/sensor.py /homeassistant/components/etherscan/sensor.py:7:6 - error: Import "pyetherscan" could not be resolved (reportMissingImports) /homeassistant/components/etherscan/sensor.py:71:9 - error: "name" overrides symbol of same name in class "Entity" @@ -8150,25 +8210,25 @@ /homeassistant/components/fitbit/application_credentials.py /homeassistant/components/fitbit/application_credentials.py:64:40 - error: "resp" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/fitbit/sensor.py - /homeassistant/components/fitbit/sensor.py:613:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/fitbit/sensor.py:615:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "FitbitSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/fitbit/sensor.py:649:7 - error: Base classes for class "FitbitBatterySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/fitbit/sensor.py:665:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/fitbit/sensor.py:651:7 - error: Base classes for class "FitbitBatterySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/fitbit/sensor.py:667:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "FitbitSensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/fitbit/sensor.py:665:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/fitbit/sensor.py:667:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "FitbitSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/fitbit/sensor.py:678:9 - error: "icon" overrides symbol of same name in class "Entity" + /homeassistant/components/fitbit/sensor.py:680:9 - error: "icon" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/fitbit/sensor.py:685:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/fitbit/sensor.py:689:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/fitbit/sensor.py:705:7 - error: Base classes for class "FitbitBatteryLevelSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/fitbit/sensor.py:722:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/fitbit/sensor.py:709:7 - error: Base classes for class "FitbitBatteryLevelSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/fitbit/sensor.py:726:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "FitbitSensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/fitbit/sensor.py:722:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/fitbit/sensor.py:726:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "FitbitSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/fivem/binary_sensor.py @@ -8722,6 +8782,45 @@ /homeassistant/components/freedompro/sensor.py:56:7 - error: Base classes for class "Device" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/freedompro/switch.py /homeassistant/components/freedompro/switch.py:35:7 - error: Base classes for class "Device" define variable "available" in incompatible way (reportIncompatibleVariableOverride) +/homeassistant/components/fressnapf_tracker/binary_sensor.py + /homeassistant/components/fressnapf_tracker/binary_sensor.py:57:7 - error: Base classes for class "FressnapfTrackerBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/binary_sensor.py:60:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" +   Variable is mutable so its type is invariant +     Override type "FressnapfTrackerBinarySensorDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/binary_sensor.py:63:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" +   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/fressnapf_tracker/device_tracker.py + /homeassistant/components/fressnapf_tracker/device_tracker.py:41:9 - error: "available" overrides symbol of same name in class "Entity" +   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/device_tracker.py:46:9 - error: "latitude" overrides symbol of same name in class "TrackerEntity" +   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/device_tracker.py:53:9 - error: "longitude" overrides symbol of same name in class "TrackerEntity" +   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/device_tracker.py:65:9 - error: "location_accuracy" overrides symbol of same name in class "TrackerEntity" +   "property" is not assignable to "cached_property[float]" (reportIncompatibleVariableOverride) +/homeassistant/components/fressnapf_tracker/light.py + /homeassistant/components/fressnapf_tracker/light.py:45:7 - error: Base classes for class "FressnapfTrackerLight" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/light.py:48:5 - error: "_attr_color_mode" overrides symbol of same name in class "LightEntity" +   Variable is mutable so its type is invariant +     Override type "ColorMode" is not the same as base type "ColorMode | str | None" (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/light.py:49:5 - error: "_attr_supported_color_modes" overrides symbol of same name in class "LightEntity" +   Variable is mutable so its type is invariant +     Override type "set[ColorMode]" is not the same as base type "set[ColorMode] | set[str] | None" (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/light.py:52:9 - error: "brightness" overrides symbol of same name in class "LightEntity" +   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/light.py:91:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" +   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/fressnapf_tracker/sensor.py + /homeassistant/components/fressnapf_tracker/sensor.py:58:7 - error: Base classes for class "FressnapfTrackerSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/sensor.py:61:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" +   Variable is mutable so its type is invariant +     Override type "FressnapfTrackerSensorDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/sensor.py:64:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) +/homeassistant/components/fressnapf_tracker/switch.py + /homeassistant/components/fressnapf_tracker/switch.py:41:7 - error: Base classes for class "FressnapfTrackerSwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/fressnapf_tracker/switch.py:55:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" +   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/fritz/binary_sensor.py /homeassistant/components/fritz/binary_sensor.py:75:7 - error: Base classes for class "FritzBoxBinarySensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/fritz/binary_sensor.py:75:7 - error: Base classes for class "FritzBoxBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -9326,6 +9425,13 @@   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/geniushub/water_heater.py:73:9 - error: "current_operation" overrides symbol of same name in class "WaterHeaterEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/gentex_homelink/event.py + /homeassistant/components/gentex_homelink/event.py:54:14 - error: "_attr_name" overrides symbol of same name in class "Entity" +   Variable is mutable so its type is invariant +     Override type "str" is not the same as base type "str | None" (reportIncompatibleVariableOverride) + /homeassistant/components/gentex_homelink/event.py:55:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity" +   Variable is mutable so its type is invariant +     Override type "str" is not the same as base type "str | None" (reportIncompatibleVariableOverride) /homeassistant/components/geo_json_events/geo_location.py /homeassistant/components/geo_json_events/geo_location.py:109:31 - error: Object of type "None" is not subscriptable (reportOptionalSubscript) /homeassistant/components/geo_json_events/geo_location.py:110:32 - error: Object of type "None" is not subscriptable (reportOptionalSubscript) @@ -9654,6 +9760,20 @@ /homeassistant/components/google/coordinator.py:157:19 - error: Argument missing for parameter "calendarId" (reportCallIssue) /homeassistant/components/google/coordinator.py:157:37 - error: No parameter named "calendar_id" (reportCallIssue) /homeassistant/components/google/coordinator.py:157:67 - error: No parameter named "search" (reportCallIssue) +/homeassistant/components/google_air_quality/sensor.py + /homeassistant/components/google_air_quality/sensor.py:166:7 - error: Base classes for class "AirQualitySensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/google_air_quality/sensor.py:184:14 - error: "entity_description" overrides symbol of same name in class "Entity" +   Variable is mutable so its type is invariant +     Override type "AirQualitySensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/google_air_quality/sensor.py:184:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" +   Variable is mutable so its type is invariant +     Override type "AirQualitySensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/google_air_quality/sensor.py:199:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) + /homeassistant/components/google_air_quality/sensor.py:204:9 - error: "options" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/google_air_quality/sensor.py:209:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/google_assistant/report_state.py /homeassistant/components/google_assistant/report_state.py:143:44 - error: Argument of type "HassJob[(now: Unknown | None = None), CoroutineType[Any, Any, Unknown]]" cannot be assigned to parameter "action" of type "HassJob[(datetime), Coroutine[Any, Any, None] | None] | ((datetime) -> (Coroutine[Any, Any, None] | None))" in function "async_call_later"   Type "HassJob[(now: Unknown | None = None), CoroutineType[Any, Any, Unknown]]" is not assignable to type "HassJob[(datetime), Coroutine[Any, Any, None] | None] | ((datetime) -> (Coroutine[Any, Any, None] | None))" @@ -9795,10 +9915,27 @@ /homeassistant/components/google_translate/tts.py:91:9 - error: "supported_options" overrides symbol of same name in class "TextToSpeechEntity"   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/google_travel_time/sensor.py - /homeassistant/components/google_travel_time/sensor.py:172:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/google_travel_time/sensor.py:173:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/google_travel_time/sensor.py:180:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/google_travel_time/sensor.py:181:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/google_weather/sensor.py + /homeassistant/components/google_weather/sensor.py:208:7 - error: Base classes for class "GoogleWeatherSensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/google_weather/sensor.py:208:7 - error: Base classes for class "GoogleWeatherSensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/google_weather/sensor.py:208:7 - error: Base classes for class "GoogleWeatherSensor" define variable "_attr_unit_of_measurement" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/google_weather/sensor.py:208:7 - error: Base classes for class "GoogleWeatherSensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/google_weather/sensor.py:208:7 - error: Base classes for class "GoogleWeatherSensor" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/google_weather/sensor.py:208:7 - error: Base classes for class "GoogleWeatherSensor" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/google_weather/sensor.py:208:7 - error: Base classes for class "GoogleWeatherSensor" define variable "unit_of_measurement" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/google_weather/sensor.py:208:7 - error: Base classes for class "GoogleWeatherSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/google_weather/sensor.py:228:14 - error: "entity_description" overrides symbol of same name in class "Entity" +   Variable is mutable so its type is invariant +     Override type "GoogleWeatherSensorDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/google_weather/sensor.py:228:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" +   Variable is mutable so its type is invariant +     Override type "GoogleWeatherSensorDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/google_weather/sensor.py:231:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/google_weather/weather.py /homeassistant/components/google_weather/weather.py:134:7 - error: Base classes for class "GoogleWeatherEntity" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/google_weather/weather.py:134:7 - error: Base classes for class "GoogleWeatherEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) @@ -9997,8 +10134,6 @@   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/group/sensor.py:462:9 - error: "icon" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) -/homeassistant/components/growatt_server/__init__.py - /homeassistant/components/growatt_server/__init__.py:40:53 - error: "login_response" is unbound (reportUnboundVariable) /homeassistant/components/growatt_server/coordinator.py /homeassistant/components/growatt_server/coordinator.py:94:39 - error: Cannot access attribute "plant_energy_overview" for class "GrowattApi"   Attribute "plant_energy_overview" is unknown (reportAttributeAccessIssue) @@ -10217,6 +10352,10 @@   "property" is not assignable to "cached_property[list[TodoItem] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/habitica/todo.py:338:9 - error: "todo_items" overrides symbol of same name in class "TodoListEntity"   "property" is not assignable to "cached_property[list[TodoItem] | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/hanna/sensor.py + /homeassistant/components/hanna/sensor.py:90:7 - error: Base classes for class "HannaSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/hanna/sensor.py:104:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/hardware/__init__.py /homeassistant/components/hardware/__init__.py:30:23 - error: Argument of type "PsutilWrapper" cannot be assigned to parameter "ha_psutil" of type "Module("psutil_home_assistant")" in function "__init__"   Type "PsutilWrapper" is not assignable to type "Module("psutil_home_assistant")" (reportArgumentType) @@ -10708,14 +10847,14 @@ /homeassistant/components/homeassistant_green/config_flow.py:63:44 - error: Type "None" is not assignable to declared type "dict[str, bool]"   "None" is not assignable to "dict[str, bool]" (reportAssignmentType) /homeassistant/components/homeassistant_hardware/firmware_config_flow.py - /homeassistant/components/homeassistant_hardware/firmware_config_flow.py:271:41 - error: Argument of type "str | None" cannot be assigned to parameter "version" of type "str" in function "__init__" + /homeassistant/components/homeassistant_hardware/firmware_config_flow.py:282:45 - error: Argument of type "str | None" cannot be assigned to parameter "version" of type "str" in function "__init__"   Type "str | None" is not assignable to type "str"     "None" is not assignable to "str" (reportArgumentType) - /homeassistant/components/homeassistant_hardware/firmware_config_flow.py:655:23 - error: Could not access item in TypedDict + /homeassistant/components/homeassistant_hardware/firmware_config_flow.py:678:23 - error: Could not access item in TypedDict   "title" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/homeassistant_hardware/firmware_config_flow.py:656:22 - error: Could not access item in TypedDict + /homeassistant/components/homeassistant_hardware/firmware_config_flow.py:679:22 - error: Could not access item in TypedDict   "data" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/homeassistant_hardware/firmware_config_flow.py:666:5 - error: "_probed_firmware_info" overrides symbol of same name in class "BaseFirmwareInstallFlow" + /homeassistant/components/homeassistant_hardware/firmware_config_flow.py:689:5 - error: "_probed_firmware_info" overrides symbol of same name in class "BaseFirmwareInstallFlow"   Variable is mutable so its type is invariant     Override type "FirmwareInfo" is not the same as base type "FirmwareInfo | None" (reportIncompatibleVariableOverride) /homeassistant/components/homeassistant_hardware/helpers.py @@ -10732,11 +10871,11 @@ /homeassistant/components/homeassistant_hardware/switch.py:18:7 - error: Base classes for class "BaseBetaFirmwareSwitch" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/homeassistant_hardware/switch.py:18:7 - error: Base classes for class "BaseBetaFirmwareSwitch" define variable "state" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/homeassistant_hardware/update.py - /homeassistant/components/homeassistant_hardware/update.py:82:7 - error: Base classes for class "BaseFirmwareUpdateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homeassistant_hardware/update.py:107:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/homeassistant_hardware/update.py:83:7 - error: Base classes for class "BaseFirmwareUpdateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homeassistant_hardware/update.py:108:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "FirmwareUpdateEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/homeassistant_hardware/update.py:107:14 - error: "entity_description" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/homeassistant_hardware/update.py:108:14 - error: "entity_description" overrides symbol of same name in class "UpdateEntity"   Variable is mutable so its type is invariant     Override type "FirmwareUpdateEntityDescription" is not the same as base type "UpdateEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/homeassistant_yellow/config_flow.py @@ -11774,152 +11913,156 @@ /homeassistant/components/homematicip_cloud/alarm_control_panel.py:128:9 - error: "unique_id" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/binary_sensor.py - /homeassistant/components/homematicip_cloud/binary_sensor.py:143:7 - error: Base classes for class "HomematicipCloudConnectionSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:143:7 - error: Base classes for class "HomematicipCloudConnectionSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:151:9 - error: "name" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:147:7 - error: Base classes for class "HomematicipCloudConnectionSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:147:7 - error: Base classes for class "HomematicipCloudConnectionSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:155:9 - error: "name" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | UndefinedType | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:156:39 - error: Cannot access attribute "name" for class "AsyncHome" + /homeassistant/components/homematicip_cloud/binary_sensor.py:160:39 - error: Cannot access attribute "name" for class "AsyncHome"   Attribute "name" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/binary_sensor.py:156:63 - error: Cannot access attribute "name" for class "AsyncHome" + /homeassistant/components/homematicip_cloud/binary_sensor.py:160:63 - error: Cannot access attribute "name" for class "AsyncHome"   Attribute "name" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/binary_sensor.py:159:9 - error: "device_info" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:163:9 - error: "device_info" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[DeviceInfo | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:165:26 - error: Argument of type "set[tuple[Literal['homematicip_cloud'], Any | None]]" cannot be assigned to parameter "identifiers" of type "set[tuple[str, str]]" in function "__init__" + /homeassistant/components/homematicip_cloud/binary_sensor.py:169:26 - error: Argument of type "set[tuple[Literal['homematicip_cloud'], Any | None]]" cannot be assigned to parameter "identifiers" of type "set[tuple[str, str]]" in function "__init__"   Type "Any | None" is not assignable to type "str"     "None" is not assignable to "str" (reportArgumentType) - /homeassistant/components/homematicip_cloud/binary_sensor.py:170:9 - error: "icon" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:174:9 - error: "icon" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:179:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:183:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:181:16 - error: Type "Any | None" is not assignable to return type "bool" + /homeassistant/components/homematicip_cloud/binary_sensor.py:185:16 - error: Type "Any | None" is not assignable to return type "bool"   Type "Any | None" is not assignable to type "bool"     "None" is not assignable to "bool" (reportReturnType) - /homeassistant/components/homematicip_cloud/binary_sensor.py:184:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:188:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:189:7 - error: Base classes for class "HomematicipBaseActionSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:189:7 - error: Base classes for class "HomematicipBaseActionSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:189:7 - error: Base classes for class "HomematicipBaseActionSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:189:7 - error: Base classes for class "HomematicipBaseActionSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:189:7 - error: Base classes for class "HomematicipBaseActionSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:195:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:193:7 - error: Base classes for class "HomematicipBaseActionSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:193:7 - error: Base classes for class "HomematicipBaseActionSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:193:7 - error: Base classes for class "HomematicipBaseActionSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:193:7 - error: Base classes for class "HomematicipBaseActionSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:193:7 - error: Base classes for class "HomematicipBaseActionSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:199:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:200:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:204:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:219:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:219:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:219:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:219:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:219:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:219:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:237:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:223:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:223:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:223:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:223:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:223:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:223:7 - error: Base classes for class "HomematicipMultiContactInterface" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:246:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:247:7 - error: Base classes for class "HomematicipContactInterface" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:247:7 - error: Base classes for class "HomematicipContactInterface" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:247:7 - error: Base classes for class "HomematicipContactInterface" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:247:7 - error: Base classes for class "HomematicipContactInterface" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:247:7 - error: Base classes for class "HomematicipContactInterface" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:247:7 - error: Base classes for class "HomematicipContactInterface" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:247:7 - error: Base classes for class "HomematicipContactInterface" define variable "is_on" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:255:7 - error: Base classes for class "HomematicipShutterContact" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:255:7 - error: Base classes for class "HomematicipShutterContact" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:255:7 - error: Base classes for class "HomematicipShutterContact" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:255:7 - error: Base classes for class "HomematicipShutterContact" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:255:7 - error: Base classes for class "HomematicipShutterContact" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:255:7 - error: Base classes for class "HomematicipShutterContact" define variable "is_on" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:268:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:249:20 - error: Cannot access attribute "windowState" for class "FunctionalChannel" +   Attribute "windowState" is unknown (reportAttributeAccessIssue) + /homeassistant/components/homematicip_cloud/binary_sensor.py:251:24 - error: Cannot access attribute "windowState" for class "FunctionalChannel" +   Attribute "windowState" is unknown (reportAttributeAccessIssue) + /homeassistant/components/homematicip_cloud/binary_sensor.py:254:7 - error: Base classes for class "HomematicipContactInterface" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:254:7 - error: Base classes for class "HomematicipContactInterface" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:254:7 - error: Base classes for class "HomematicipContactInterface" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:254:7 - error: Base classes for class "HomematicipContactInterface" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:254:7 - error: Base classes for class "HomematicipContactInterface" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:254:7 - error: Base classes for class "HomematicipContactInterface" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:254:7 - error: Base classes for class "HomematicipContactInterface" define variable "is_on" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:262:7 - error: Base classes for class "HomematicipShutterContact" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:262:7 - error: Base classes for class "HomematicipShutterContact" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:262:7 - error: Base classes for class "HomematicipShutterContact" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:262:7 - error: Base classes for class "HomematicipShutterContact" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:262:7 - error: Base classes for class "HomematicipShutterContact" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:262:7 - error: Base classes for class "HomematicipShutterContact" define variable "is_on" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:275:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:280:7 - error: Base classes for class "HomematicipMotionDetector" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:280:7 - error: Base classes for class "HomematicipMotionDetector" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:280:7 - error: Base classes for class "HomematicipMotionDetector" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:280:7 - error: Base classes for class "HomematicipMotionDetector" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:280:7 - error: Base classes for class "HomematicipMotionDetector" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:280:7 - error: Base classes for class "HomematicipMotionDetector" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:286:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:287:7 - error: Base classes for class "HomematicipMotionDetector" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:287:7 - error: Base classes for class "HomematicipMotionDetector" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:287:7 - error: Base classes for class "HomematicipMotionDetector" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:287:7 - error: Base classes for class "HomematicipMotionDetector" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:287:7 - error: Base classes for class "HomematicipMotionDetector" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:287:7 - error: Base classes for class "HomematicipMotionDetector" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:293:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:291:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:291:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:291:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:291:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:291:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:291:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:297:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:298:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:298:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:298:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:298:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:298:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:298:7 - error: Base classes for class "HomematicipPresenceDetector" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:304:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:302:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:302:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:302:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:302:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:302:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:302:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:308:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:309:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:309:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:309:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:309:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:309:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:309:7 - error: Base classes for class "HomematicipSmokeDetector" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:315:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:318:7 - error: Base classes for class "HomematicipWaterDetector" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:318:7 - error: Base classes for class "HomematicipWaterDetector" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:318:7 - error: Base classes for class "HomematicipWaterDetector" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:318:7 - error: Base classes for class "HomematicipWaterDetector" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:318:7 - error: Base classes for class "HomematicipWaterDetector" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:318:7 - error: Base classes for class "HomematicipWaterDetector" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:324:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:325:7 - error: Base classes for class "HomematicipWaterDetector" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:325:7 - error: Base classes for class "HomematicipWaterDetector" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:325:7 - error: Base classes for class "HomematicipWaterDetector" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:325:7 - error: Base classes for class "HomematicipWaterDetector" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:325:7 - error: Base classes for class "HomematicipWaterDetector" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:325:7 - error: Base classes for class "HomematicipWaterDetector" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:331:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:329:7 - error: Base classes for class "HomematicipStormSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:329:7 - error: Base classes for class "HomematicipStormSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:329:7 - error: Base classes for class "HomematicipStormSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:329:7 - error: Base classes for class "HomematicipStormSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:329:7 - error: Base classes for class "HomematicipStormSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:337:9 - error: "icon" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:336:7 - error: Base classes for class "HomematicipStormSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:336:7 - error: Base classes for class "HomematicipStormSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:336:7 - error: Base classes for class "HomematicipStormSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:336:7 - error: Base classes for class "HomematicipStormSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:336:7 - error: Base classes for class "HomematicipStormSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:344:9 - error: "icon" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:342:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:349:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:347:7 - error: Base classes for class "HomematicipRainSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:347:7 - error: Base classes for class "HomematicipRainSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:347:7 - error: Base classes for class "HomematicipRainSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:347:7 - error: Base classes for class "HomematicipRainSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:347:7 - error: Base classes for class "HomematicipRainSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:347:7 - error: Base classes for class "HomematicipRainSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:357:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:354:7 - error: Base classes for class "HomematicipRainSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:354:7 - error: Base classes for class "HomematicipRainSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:354:7 - error: Base classes for class "HomematicipRainSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:354:7 - error: Base classes for class "HomematicipRainSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:354:7 - error: Base classes for class "HomematicipRainSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:354:7 - error: Base classes for class "HomematicipRainSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:364:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:362:7 - error: Base classes for class "HomematicipSunshineSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:362:7 - error: Base classes for class "HomematicipSunshineSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:362:7 - error: Base classes for class "HomematicipSunshineSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:362:7 - error: Base classes for class "HomematicipSunshineSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:362:7 - error: Base classes for class "HomematicipSunshineSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:372:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:369:7 - error: Base classes for class "HomematicipSunshineSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:369:7 - error: Base classes for class "HomematicipSunshineSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:369:7 - error: Base classes for class "HomematicipSunshineSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:369:7 - error: Base classes for class "HomematicipSunshineSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:369:7 - error: Base classes for class "HomematicipSunshineSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:379:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:377:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:384:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:388:7 - error: Base classes for class "HomematicipBatterySensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:388:7 - error: Base classes for class "HomematicipBatterySensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:388:7 - error: Base classes for class "HomematicipBatterySensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:388:7 - error: Base classes for class "HomematicipBatterySensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:388:7 - error: Base classes for class "HomematicipBatterySensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:388:7 - error: Base classes for class "HomematicipBatterySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:398:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:395:7 - error: Base classes for class "HomematicipBatterySensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:395:7 - error: Base classes for class "HomematicipBatterySensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:395:7 - error: Base classes for class "HomematicipBatterySensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:395:7 - error: Base classes for class "HomematicipBatterySensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:395:7 - error: Base classes for class "HomematicipBatterySensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:395:7 - error: Base classes for class "HomematicipBatterySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:405:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:403:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:403:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:403:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:403:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:403:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:403:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:415:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:410:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:410:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:410:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:410:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:410:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:410:7 - error: Base classes for class "HomematicipPluggableMainsFailureSurveillanceSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:422:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:420:7 - error: Base classes for class "HomematicipSecurityZoneSensorGroup" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:420:7 - error: Base classes for class "HomematicipSecurityZoneSensorGroup" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:420:7 - error: Base classes for class "HomematicipSecurityZoneSensorGroup" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:420:7 - error: Base classes for class "HomematicipSecurityZoneSensorGroup" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:431:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:427:7 - error: Base classes for class "HomematicipSecurityZoneSensorGroup" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:427:7 - error: Base classes for class "HomematicipSecurityZoneSensorGroup" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:427:7 - error: Base classes for class "HomematicipSecurityZoneSensorGroup" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:427:7 - error: Base classes for class "HomematicipSecurityZoneSensorGroup" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:438:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:438:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:445:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:453:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:460:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:471:7 - error: Base classes for class "HomematicipSecuritySensorGroup" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:471:7 - error: Base classes for class "HomematicipSecuritySensorGroup" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:471:7 - error: Base classes for class "HomematicipSecuritySensorGroup" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:471:7 - error: Base classes for class "HomematicipSecuritySensorGroup" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:471:7 - error: Base classes for class "HomematicipSecuritySensorGroup" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:481:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:478:7 - error: Base classes for class "HomematicipSecuritySensorGroup" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:478:7 - error: Base classes for class "HomematicipSecuritySensorGroup" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:478:7 - error: Base classes for class "HomematicipSecuritySensorGroup" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:478:7 - error: Base classes for class "HomematicipSecuritySensorGroup" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:478:7 - error: Base classes for class "HomematicipSecuritySensorGroup" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/binary_sensor.py:488:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/binary_sensor.py:494:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/homematicip_cloud/binary_sensor.py:501:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/button.py /homeassistant/components/homematicip_cloud/button.py:30:7 - error: Base classes for class "HomematicipGarageDoorControllerButton" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) @@ -12031,51 +12174,39 @@   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/cover.py:284:9 - error: "is_closed" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/cover.py:286:40 - error: Cannot access attribute "doorState" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/cover.py:287:24 - error: Cannot access attribute "doorState" for class "FunctionalChannel"   Attribute "doorState" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/cover.py:290:39 - error: Cannot access attribute "async_send_door_command" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/cover.py:292:23 - error: Cannot access attribute "async_send_door_command" for class "FunctionalChannel"   Attribute "async_send_door_command" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/cover.py:294:39 - error: Cannot access attribute "async_send_door_command" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/cover.py:297:23 - error: Cannot access attribute "async_send_door_command" for class "FunctionalChannel"   Attribute "async_send_door_command" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/cover.py:298:39 - error: Cannot access attribute "async_send_door_command" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/cover.py:302:23 - error: Cannot access attribute "async_send_door_command" for class "FunctionalChannel"   Attribute "async_send_door_command" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/cover.py:301:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/cover.py:301:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/cover.py:301:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/cover.py:301:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/cover.py:301:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/cover.py:301:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/cover.py:312:9 - error: "current_cover_position" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/homematicip_cloud/cover.py:305:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/cover.py:305:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/cover.py:305:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/cover.py:305:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/cover.py:305:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/cover.py:305:7 - error: Base classes for class "HomematicipCoverShutterGroup" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/cover.py:316:9 - error: "current_cover_position" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/cover.py:319:9 - error: "current_cover_tilt_position" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/homematicip_cloud/cover.py:323:9 - error: "current_cover_tilt_position" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/cover.py:326:9 - error: "is_closed" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/homematicip_cloud/cover.py:330:9 - error: "is_closed" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/entity.py - /homeassistant/components/homematicip_cloud/entity.py:100:9 - error: "device_info" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/entity.py:113:9 - error: "device_info" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[DeviceInfo | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/entity.py:107:30 - error: Argument of type "set[tuple[Literal['homematicip_cloud'], Any | None]]" cannot be assigned to parameter "identifiers" of type "set[tuple[str, str]]" in function "__init__" -   Type "Any | None" is not assignable to type "str" -     "None" is not assignable to "str" (reportArgumentType) - /homeassistant/components/homematicip_cloud/entity.py:114:37 - error: Argument of type "tuple[Literal['homematicip_cloud'], Any | None]" cannot be assigned to parameter "via_device" of type "tuple[str, str]" in function "__init__" -   Type "Any | None" is not assignable to type "str" -     "None" is not assignable to "str" (reportArgumentType) - /homeassistant/components/homematicip_cloud/entity.py:185:9 - error: "name" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/entity.py:201:9 - error: "name" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | UndefinedType | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/entity.py:205:32 - error: Cannot access attribute "name" for class "AsyncHome" -   Attribute "name" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/entity.py:206:34 - error: Cannot access attribute "name" for class "AsyncHome" -   Attribute "name" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/entity.py:211:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/entity.py:233:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/entity.py:216:9 - error: "unique_id" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/entity.py:238:9 - error: "unique_id" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/entity.py:227:9 - error: "icon" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/entity.py:247:9 - error: "icon" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/entity.py:236:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/entity.py:256:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/entity.py:265:16 - error: Type "None" is not assignable to return type "FunctionalChannel" -   "None" is not assignable to "FunctionalChannel" (reportReturnType) /homeassistant/components/homematicip_cloud/event.py /homeassistant/components/homematicip_cloud/event.py:68:7 - error: Base classes for class "HomematicipDoorBellEvent" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/event.py:68:7 - error: Base classes for class "HomematicipDoorBellEvent" define variable "name" in incompatible way (reportIncompatibleVariableOverride) @@ -12089,7 +12220,7 @@ /homeassistant/components/homematicip_cloud/event.py:90:14 - error: "entity_description" overrides symbol of same name in class "EventEntity"   Variable is mutable so its type is invariant     Override type "HmipEventEntityDescription" is not the same as base type "EventEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/event.py:121:20 - error: Type "str | None" is not assignable to return type "str" + /homeassistant/components/homematicip_cloud/event.py:123:20 - error: Type "str | None" is not assignable to return type "str"   Type "str | None" is not assignable to type "str"     "None" is not assignable to "str" (reportReturnType) /homeassistant/components/homematicip_cloud/hap.py @@ -12129,31 +12260,31 @@ /homeassistant/components/homematicip_cloud/light.py:124:7 - error: Base classes for class "HomematicipLightHS" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/light.py:135:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/light.py:137:40 - error: Cannot access attribute "on" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/light.py:138:24 - error: Cannot access attribute "on" for class "FunctionalChannel"   Attribute "on" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/light.py:140:9 - error: "brightness" overrides symbol of same name in class "LightEntity" + /homeassistant/components/homematicip_cloud/light.py:141:9 - error: "brightness" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/light.py:142:44 - error: Cannot access attribute "dimLevel" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/light.py:144:28 - error: Cannot access attribute "dimLevel" for class "FunctionalChannel"   Attribute "dimLevel" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/light.py:145:9 - error: "hs_color" overrides symbol of same name in class "LightEntity" + /homeassistant/components/homematicip_cloud/light.py:147:9 - error: "hs_color" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[tuple[float, float] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/light.py:148:37 - error: Cannot access attribute "hue" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/light.py:150:20 - error: Cannot access attribute "hue" for class "FunctionalChannel"   Attribute "hue" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/light.py:149:40 - error: Cannot access attribute "saturationLevel" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/light.py:150:43 - error: Cannot access attribute "saturationLevel" for class "FunctionalChannel"   Attribute "saturationLevel" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/light.py:153:37 - error: Cannot access attribute "hue" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/light.py:153:21 - error: Cannot access attribute "hue" for class "FunctionalChannel"   Attribute "hue" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/light.py:154:37 - error: Cannot access attribute "saturationLevel" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/light.py:154:21 - error: Cannot access attribute "saturationLevel" for class "FunctionalChannel"   Attribute "saturationLevel" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/light.py:166:43 - error: Cannot access attribute "hue" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/light.py:166:27 - error: Cannot access attribute "hue" for class "FunctionalChannel"   Attribute "hue" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/light.py:167:50 - error: Cannot access attribute "saturationLevel" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/light.py:167:34 - error: Cannot access attribute "saturationLevel" for class "FunctionalChannel"   Attribute "saturationLevel" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/light.py:171:49 - error: Cannot access attribute "dimLevel" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/light.py:171:33 - error: Cannot access attribute "dimLevel" for class "FunctionalChannel"   Attribute "dimLevel" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/light.py:173:39 - error: Cannot access attribute "set_hue_saturation_dim_level_async" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/light.py:172:23 - error: Cannot access attribute "set_hue_saturation_dim_level_async" for class "FunctionalChannel"   Attribute "set_hue_saturation_dim_level_async" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/light.py:179:39 - error: Cannot access attribute "set_switch_state_async" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/light.py:179:23 - error: Cannot access attribute "set_switch_state_async" for class "FunctionalChannel"   Attribute "set_switch_state_async" is unknown (reportAttributeAccessIssue) /homeassistant/components/homematicip_cloud/light.py:186:7 - error: Base classes for class "HomematicipMultiDimmer" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/light.py:186:7 - error: Base classes for class "HomematicipMultiDimmer" define variable "name" in incompatible way (reportIncompatibleVariableOverride) @@ -12246,195 +12377,201 @@ /homeassistant/components/homematicip_cloud/sensor.py:295:7 - error: Base classes for class "HomematicipWaterFlowSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/sensor.py:308:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:310:40 - error: Cannot access attribute "waterFlow" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:311:24 - error: Cannot access attribute "waterFlow" for class "FunctionalChannel"   Attribute "waterFlow" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:313:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:313:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:313:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:313:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:313:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:313:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:332:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:314:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:314:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:314:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:314:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:314:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:314:7 - error: Base classes for class "HomematicipWaterVolumeSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:333:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:354:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:354:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:354:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:354:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:354:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:354:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:365:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:355:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:355:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:355:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:355:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:355:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:355:7 - error: Base classes for class "HomematicipTiltAngleSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:366:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:370:7 - error: Base classes for class "HomematicipTiltStateSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:370:7 - error: Base classes for class "HomematicipTiltStateSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:370:7 - error: Base classes for class "HomematicipTiltStateSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:370:7 - error: Base classes for class "HomematicipTiltStateSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:370:7 - error: Base classes for class "HomematicipTiltStateSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:382:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:371:7 - error: Base classes for class "HomematicipTiltStateSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:371:7 - error: Base classes for class "HomematicipTiltStateSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:371:7 - error: Base classes for class "HomematicipTiltStateSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:371:7 - error: Base classes for class "HomematicipTiltStateSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:371:7 - error: Base classes for class "HomematicipTiltStateSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:383:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:388:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/sensor.py:389:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:405:7 - error: Base classes for class "HomematicipFloorTerminalBlockMechanicChannelValve" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:405:7 - error: Base classes for class "HomematicipFloorTerminalBlockMechanicChannelValve" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:405:7 - error: Base classes for class "HomematicipFloorTerminalBlockMechanicChannelValve" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:405:7 - error: Base classes for class "HomematicipFloorTerminalBlockMechanicChannelValve" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:405:7 - error: Base classes for class "HomematicipFloorTerminalBlockMechanicChannelValve" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:426:9 - error: "icon" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/sensor.py:406:7 - error: Base classes for class "HomematicipFloorTerminalBlockMechanicChannelValve" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:406:7 - error: Base classes for class "HomematicipFloorTerminalBlockMechanicChannelValve" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:406:7 - error: Base classes for class "HomematicipFloorTerminalBlockMechanicChannelValve" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:406:7 - error: Base classes for class "HomematicipFloorTerminalBlockMechanicChannelValve" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:406:7 - error: Base classes for class "HomematicipFloorTerminalBlockMechanicChannelValve" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:427:9 - error: "icon" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:440:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:441:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:452:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:452:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:452:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:452:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:452:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:452:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:464:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:453:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:453:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:453:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:453:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:453:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:453:7 - error: Base classes for class "HomematicipAccesspointDutyCycle" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:465:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:469:7 - error: Base classes for class "HomematicipHeatingThermostat" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:469:7 - error: Base classes for class "HomematicipHeatingThermostat" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:469:7 - error: Base classes for class "HomematicipHeatingThermostat" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:469:7 - error: Base classes for class "HomematicipHeatingThermostat" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:469:7 - error: Base classes for class "HomematicipHeatingThermostat" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:479:9 - error: "icon" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/sensor.py:470:7 - error: Base classes for class "HomematicipHeatingThermostat" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:470:7 - error: Base classes for class "HomematicipHeatingThermostat" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:470:7 - error: Base classes for class "HomematicipHeatingThermostat" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:470:7 - error: Base classes for class "HomematicipHeatingThermostat" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:470:7 - error: Base classes for class "HomematicipHeatingThermostat" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:480:9 - error: "icon" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:488:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:489:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:495:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:495:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:495:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:495:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:495:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:495:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:507:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:496:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:496:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:496:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:496:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:496:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:496:7 - error: Base classes for class "HomematicipHumiditySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:508:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:512:7 - error: Base classes for class "HomematicipTemperatureSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:512:7 - error: Base classes for class "HomematicipTemperatureSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:512:7 - error: Base classes for class "HomematicipTemperatureSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:512:7 - error: Base classes for class "HomematicipTemperatureSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:512:7 - error: Base classes for class "HomematicipTemperatureSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:524:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:513:7 - error: Base classes for class "HomematicipTemperatureSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:513:7 - error: Base classes for class "HomematicipTemperatureSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:513:7 - error: Base classes for class "HomematicipTemperatureSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:513:7 - error: Base classes for class "HomematicipTemperatureSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:513:7 - error: Base classes for class "HomematicipTemperatureSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:525:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:532:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/sensor.py:533:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:543:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:543:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:543:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:543:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:543:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:543:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:556:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:544:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:544:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:544:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:544:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:544:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:544:7 - error: Base classes for class "HomematicipAbsoluteHumiditySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:557:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:561:41 - error: Cannot access attribute "vaporAmount" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:562:41 - error: Cannot access attribute "vaporAmount" for class "FunctionalChannel"   Attribute "vaporAmount" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:565:37 - error: Cannot access attribute "vaporAmount" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:566:37 - error: Cannot access attribute "vaporAmount" for class "FunctionalChannel"   Attribute "vaporAmount" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:566:40 - error: Cannot access attribute "vaporAmount" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:567:40 - error: Cannot access attribute "vaporAmount" for class "FunctionalChannel"   Attribute "vaporAmount" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:573:7 - error: Base classes for class "HomematicipIlluminanceSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:573:7 - error: Base classes for class "HomematicipIlluminanceSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:573:7 - error: Base classes for class "HomematicipIlluminanceSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:573:7 - error: Base classes for class "HomematicipIlluminanceSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:573:7 - error: Base classes for class "HomematicipIlluminanceSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:585:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:574:7 - error: Base classes for class "HomematicipIlluminanceSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:574:7 - error: Base classes for class "HomematicipIlluminanceSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:574:7 - error: Base classes for class "HomematicipIlluminanceSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:574:7 - error: Base classes for class "HomematicipIlluminanceSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:574:7 - error: Base classes for class "HomematicipIlluminanceSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:586:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:593:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/sensor.py:594:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:604:7 - error: Base classes for class "HomematicipPowerSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:604:7 - error: Base classes for class "HomematicipPowerSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:604:7 - error: Base classes for class "HomematicipPowerSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:604:7 - error: Base classes for class "HomematicipPowerSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:604:7 - error: Base classes for class "HomematicipPowerSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:604:7 - error: Base classes for class "HomematicipPowerSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:616:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:605:7 - error: Base classes for class "HomematicipPowerSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:605:7 - error: Base classes for class "HomematicipPowerSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:605:7 - error: Base classes for class "HomematicipPowerSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:605:7 - error: Base classes for class "HomematicipPowerSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:605:7 - error: Base classes for class "HomematicipPowerSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:605:7 - error: Base classes for class "HomematicipPowerSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:617:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:621:7 - error: Base classes for class "HomematicipEnergySensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:621:7 - error: Base classes for class "HomematicipEnergySensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:621:7 - error: Base classes for class "HomematicipEnergySensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:621:7 - error: Base classes for class "HomematicipEnergySensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:621:7 - error: Base classes for class "HomematicipEnergySensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:621:7 - error: Base classes for class "HomematicipEnergySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:633:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:622:7 - error: Base classes for class "HomematicipEnergySensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:622:7 - error: Base classes for class "HomematicipEnergySensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:622:7 - error: Base classes for class "HomematicipEnergySensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:622:7 - error: Base classes for class "HomematicipEnergySensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:622:7 - error: Base classes for class "HomematicipEnergySensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:622:7 - error: Base classes for class "HomematicipEnergySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:634:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:638:7 - error: Base classes for class "HomematicipWindspeedSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:638:7 - error: Base classes for class "HomematicipWindspeedSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:638:7 - error: Base classes for class "HomematicipWindspeedSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:638:7 - error: Base classes for class "HomematicipWindspeedSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:638:7 - error: Base classes for class "HomematicipWindspeedSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:650:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:639:7 - error: Base classes for class "HomematicipWindspeedSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:639:7 - error: Base classes for class "HomematicipWindspeedSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:639:7 - error: Base classes for class "HomematicipWindspeedSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:639:7 - error: Base classes for class "HomematicipWindspeedSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:639:7 - error: Base classes for class "HomematicipWindspeedSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:651:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:655:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/sensor.py:656:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:670:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:670:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:670:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:670:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:670:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:670:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:682:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:671:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:671:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:671:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:671:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:671:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:671:7 - error: Base classes for class "HomematicipTodayRainSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:683:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:687:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:687:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:687:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:687:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:687:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:687:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:699:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:688:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:688:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:688:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:688:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:688:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:688:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh1" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:700:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:704:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:704:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:704:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:704:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:704:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:704:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:716:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:705:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:705:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:705:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:705:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:705:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:705:7 - error: Base classes for class "HomematicpTemperatureExternalSensorCh2" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:717:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:721:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:721:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:721:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:721:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:721:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:721:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:733:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:722:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:722:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:722:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:722:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:722:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:722:7 - error: Base classes for class "HomematicpTemperatureExternalSensorDelta" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:734:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:738:7 - error: Base classes for class "HmipEsiSensorEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:738:7 - error: Base classes for class "HmipEsiSensorEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:738:7 - error: Base classes for class "HmipEsiSensorEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:738:7 - error: Base classes for class "HmipEsiSensorEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:738:7 - error: Base classes for class "HmipEsiSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:762:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/sensor.py:739:7 - error: Base classes for class "HmipEsiSensorEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:739:7 - error: Base classes for class "HmipEsiSensorEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:739:7 - error: Base classes for class "HmipEsiSensorEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:739:7 - error: Base classes for class "HmipEsiSensorEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:739:7 - error: Base classes for class "HmipEsiSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:763:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:770:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:766:51 - error: Argument of type "FunctionalChannel | None" cannot be assigned to parameter of type "FunctionalChannel" +   Type "FunctionalChannel | None" is not assignable to type "FunctionalChannel" +     "None" is not assignable to "FunctionalChannel" (reportArgumentType) + /homeassistant/components/homematicip_cloud/sensor.py:771:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:788:46 - error: Cannot access attribute "currentPowerConsumption" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:773:35 - error: Argument of type "FunctionalChannel | None" cannot be assigned to parameter of type "FunctionalChannel" +   Type "FunctionalChannel | None" is not assignable to type "FunctionalChannel" +     "None" is not assignable to "FunctionalChannel" (reportArgumentType) + /homeassistant/components/homematicip_cloud/sensor.py:789:46 - error: Cannot access attribute "currentPowerConsumption" for class "FunctionalChannel"   Attribute "currentPowerConsumption" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:806:46 - error: Cannot access attribute "energyCounterOne" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:807:46 - error: Cannot access attribute "energyCounterOne" for class "FunctionalChannel"   Attribute "energyCounterOne" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:807:45 - error: Cannot access attribute "energyCounterOneType" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:808:45 - error: Cannot access attribute "energyCounterOneType" for class "FunctionalChannel"   Attribute "energyCounterOneType" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:824:46 - error: Cannot access attribute "energyCounterTwo" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:825:46 - error: Cannot access attribute "energyCounterTwo" for class "FunctionalChannel"   Attribute "energyCounterTwo" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:825:45 - error: Cannot access attribute "energyCounterTwoType" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:826:45 - error: Cannot access attribute "energyCounterTwoType" for class "FunctionalChannel"   Attribute "energyCounterTwoType" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:842:46 - error: Cannot access attribute "energyCounterThree" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:843:46 - error: Cannot access attribute "energyCounterThree" for class "FunctionalChannel"   Attribute "energyCounterThree" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:843:45 - error: Cannot access attribute "energyCounterThreeType" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:844:45 - error: Cannot access attribute "energyCounterThreeType" for class "FunctionalChannel"   Attribute "energyCounterThreeType" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:860:46 - error: Cannot access attribute "currentGasFlow" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:861:46 - error: Cannot access attribute "currentGasFlow" for class "FunctionalChannel"   Attribute "currentGasFlow" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:878:46 - error: Cannot access attribute "gasVolume" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:879:46 - error: Cannot access attribute "gasVolume" for class "FunctionalChannel"   Attribute "gasVolume" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:896:46 - error: Cannot access attribute "currentPowerConsumption" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:897:46 - error: Cannot access attribute "currentPowerConsumption" for class "FunctionalChannel"   Attribute "currentPowerConsumption" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:914:46 - error: Cannot access attribute "energyCounterOne" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/sensor.py:915:46 - error: Cannot access attribute "energyCounterOne" for class "FunctionalChannel"   Attribute "energyCounterOne" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/sensor.py:919:7 - error: Base classes for class "HomematicipPassageDetectorDeltaCounter" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:919:7 - error: Base classes for class "HomematicipPassageDetectorDeltaCounter" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:919:7 - error: Base classes for class "HomematicipPassageDetectorDeltaCounter" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:919:7 - error: Base classes for class "HomematicipPassageDetectorDeltaCounter" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:919:7 - error: Base classes for class "HomematicipPassageDetectorDeltaCounter" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:923:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/homematicip_cloud/sensor.py:920:7 - error: Base classes for class "HomematicipPassageDetectorDeltaCounter" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:920:7 - error: Base classes for class "HomematicipPassageDetectorDeltaCounter" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:920:7 - error: Base classes for class "HomematicipPassageDetectorDeltaCounter" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:920:7 - error: Base classes for class "HomematicipPassageDetectorDeltaCounter" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:920:7 - error: Base classes for class "HomematicipPassageDetectorDeltaCounter" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/sensor.py:924:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/sensor.py:928:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/sensor.py:929:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/services.py /homeassistant/components/homematicip_cloud/services.py:319:36 - error: Argument of type "dict[Unknown, Unknown]" cannot be assigned to parameter "json_state" of type "str" in function "handle_config" @@ -12448,28 +12585,28 @@ /homeassistant/components/homematicip_cloud/switch.py:98:7 - error: Base classes for class "HomematicipMultiSwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/switch.py:114:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:116:40 - error: Cannot access attribute "on" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/switch.py:117:24 - error: Cannot access attribute "on" for class "FunctionalChannel"   Attribute "on" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/switch.py:120:39 - error: Cannot access attribute "async_turn_on" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/switch.py:122:23 - error: Cannot access attribute "async_turn_on" for class "FunctionalChannel"   Attribute "async_turn_on" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/switch.py:124:39 - error: Cannot access attribute "async_turn_off" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/switch.py:127:23 - error: Cannot access attribute "async_turn_off" for class "FunctionalChannel"   Attribute "async_turn_off" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/switch.py:127:7 - error: Base classes for class "HomematicipSwitch" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:127:7 - error: Base classes for class "HomematicipSwitch" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:127:7 - error: Base classes for class "HomematicipSwitch" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:127:7 - error: Base classes for class "HomematicipSwitch" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:127:7 - error: Base classes for class "HomematicipSwitch" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:127:7 - error: Base classes for class "HomematicipSwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:127:7 - error: Base classes for class "HomematicipSwitch" define variable "is_on" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:135:7 - error: Base classes for class "HomematicipGroupSwitch" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:135:7 - error: Base classes for class "HomematicipGroupSwitch" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:135:7 - error: Base classes for class "HomematicipGroupSwitch" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:135:7 - error: Base classes for class "HomematicipGroupSwitch" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:144:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/homematicip_cloud/switch.py:130:7 - error: Base classes for class "HomematicipSwitch" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/switch.py:130:7 - error: Base classes for class "HomematicipSwitch" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/switch.py:130:7 - error: Base classes for class "HomematicipSwitch" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/switch.py:130:7 - error: Base classes for class "HomematicipSwitch" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/switch.py:130:7 - error: Base classes for class "HomematicipSwitch" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/switch.py:130:7 - error: Base classes for class "HomematicipSwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/switch.py:130:7 - error: Base classes for class "HomematicipSwitch" define variable "is_on" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/switch.py:138:7 - error: Base classes for class "HomematicipGroupSwitch" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/switch.py:138:7 - error: Base classes for class "HomematicipGroupSwitch" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/switch.py:138:7 - error: Base classes for class "HomematicipGroupSwitch" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/switch.py:138:7 - error: Base classes for class "HomematicipGroupSwitch" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/homematicip_cloud/switch.py:147:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:149:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/switch.py:152:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/switch.py:158:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/homematicip_cloud/switch.py:161:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/valve.py /homeassistant/components/homematicip_cloud/valve.py:35:7 - error: Base classes for class "HomematicipWateringValve" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) @@ -12478,11 +12615,11 @@ /homeassistant/components/homematicip_cloud/valve.py:35:7 - error: Base classes for class "HomematicipWateringValve" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/valve.py:35:7 - error: Base classes for class "HomematicipWateringValve" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/homematicip_cloud/valve.py:35:7 - error: Base classes for class "HomematicipWateringValve" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/homematicip_cloud/valve.py:50:39 - error: Cannot access attribute "set_watering_switch_state_async" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/valve.py:51:23 - error: Cannot access attribute "set_watering_switch_state_async" for class "FunctionalChannel"   Attribute "set_watering_switch_state_async" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/valve.py:54:39 - error: Cannot access attribute "set_watering_switch_state_async" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/valve.py:56:23 - error: Cannot access attribute "set_watering_switch_state_async" for class "FunctionalChannel"   Attribute "set_watering_switch_state_async" is unknown (reportAttributeAccessIssue) - /homeassistant/components/homematicip_cloud/valve.py:59:40 - error: Cannot access attribute "wateringActive" for class "FunctionalChannel" + /homeassistant/components/homematicip_cloud/valve.py:62:24 - error: Cannot access attribute "wateringActive" for class "FunctionalChannel"   Attribute "wateringActive" is unknown (reportAttributeAccessIssue) /homeassistant/components/homematicip_cloud/weather.py /homeassistant/components/homematicip_cloud/weather.py:66:7 - error: Base classes for class "HomematicipWeatherSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) @@ -12722,16 +12859,16 @@ /homeassistant/components/huawei_lte/button.py:39:7 - error: Base classes for class "BaseButton" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/huawei_lte/button.py:39:7 - error: Base classes for class "BaseButton" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/huawei_lte/device_tracker.py - /homeassistant/components/huawei_lte/device_tracker.py:175:7 - error: Base classes for class "HuaweiLteScannerEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/huawei_lte/device_tracker.py:189:9 - error: "name" overrides symbol of same name in class "Entity" + /homeassistant/components/huawei_lte/device_tracker.py:157:7 - error: Base classes for class "HuaweiLteScannerEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/huawei_lte/device_tracker.py:171:9 - error: "name" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | UndefinedType | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/huawei_lte/device_tracker.py:198:9 - error: "ip_address" overrides symbol of same name in class "ScannerEntity" + /homeassistant/components/huawei_lte/device_tracker.py:180:9 - error: "ip_address" overrides symbol of same name in class "ScannerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/huawei_lte/device_tracker.py:203:9 - error: "mac_address" overrides symbol of same name in class "ScannerEntity" + /homeassistant/components/huawei_lte/device_tracker.py:185:9 - error: "mac_address" overrides symbol of same name in class "ScannerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/huawei_lte/device_tracker.py:208:9 - error: "hostname" overrides symbol of same name in class "ScannerEntity" + /homeassistant/components/huawei_lte/device_tracker.py:190:9 - error: "hostname" overrides symbol of same name in class "ScannerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/huawei_lte/device_tracker.py:218:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/huawei_lte/device_tracker.py:200:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/huawei_lte/entity.py /homeassistant/components/huawei_lte/entity.py:34:9 - error: "unique_id" overrides symbol of same name in class "Entity" @@ -13681,6 +13818,11 @@   Attribute "mac_address" is unknown (reportAttributeAccessIssue) /homeassistant/components/hue/v2/sensor.py:261:46 - error: Cannot access attribute "mac_address" for class "GroupedLightLevel"   Attribute "mac_address" is unknown (reportAttributeAccessIssue) +/homeassistant/components/hue_ble/config_flow.py + /homeassistant/components/hue_ble/config_flow.py:73:15 - error: "light" is possibly unbound (reportPossiblyUnboundVariable) +/homeassistant/components/hue_ble/light.py + /homeassistant/components/hue_ble/light.py:148:9 - error: "color_mode" overrides symbol of same name in class "LightEntity" +   "property" is not assignable to "cached_property[ColorMode | str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/huisbaasje/sensor.py /homeassistant/components/huisbaasje/sensor.py:243:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant @@ -14151,11 +14293,11 @@   Type "int | None" is not assignable to type "float"     "None" is not assignable to "float" (reportReturnType) /homeassistant/components/hvv_departures/binary_sensor.py - /homeassistant/components/hvv_departures/binary_sensor.py:156:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/hvv_departures/binary_sensor.py:157:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/hvv_departures/binary_sensor.py:161:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/hvv_departures/binary_sensor.py:162:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/hvv_departures/binary_sensor.py:169:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/hvv_departures/binary_sensor.py:170:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/hvv_departures/config_flow.py /homeassistant/components/hvv_departures/config_flow.py:144:5 - error: "config_entry" incorrectly overrides property of same name in class "OptionsFlow" (reportIncompatibleMethodOverride) @@ -14407,6 +14549,8 @@ /homeassistant/components/iglo/light.py:115:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/ign_sismologia/geo_location.py + /homeassistant/components/ign_sismologia/geo_location.py:205:31 - error: Object of type "None" is not subscriptable (reportOptionalSubscript) + /homeassistant/components/ign_sismologia/geo_location.py:206:32 - error: Object of type "None" is not subscriptable (reportOptionalSubscript) /homeassistant/components/ign_sismologia/geo_location.py:214:9 - error: "name" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | UndefinedType | None]" (reportIncompatibleVariableOverride) /homeassistant/components/ign_sismologia/geo_location.py:221:20 - error: Type "float" is not assignable to return type "str | None" @@ -14452,14 +14596,14 @@ /homeassistant/components/ihc/util.py /homeassistant/components/ihc/util.py:5:6 - error: Import "ihcsdk.ihccontroller" could not be resolved (reportMissingImports) /homeassistant/components/image/__init__.py - /homeassistant/components/image/__init__.py:187:5 - error: "_attr_state" overrides symbol of same name in class "Entity" + /homeassistant/components/image/__init__.py:206:5 - error: "_attr_state" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "None" is not the same as base type "StateType" (reportIncompatibleVariableOverride) - /homeassistant/components/image/__init__.py:202:9 - error: "entity_picture" overrides symbol of same name in class "Entity" + /homeassistant/components/image/__init__.py:221:9 - error: "entity_picture" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/image/__init__.py:276:9 - error: "state" overrides symbol of same name in class "Entity" + /homeassistant/components/image/__init__.py:297:9 - error: "state" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[StateType]" (reportIncompatibleVariableOverride) - /homeassistant/components/image/__init__.py:284:9 - error: "state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/image/__init__.py:305:9 - error: "state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[dict[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/image/media_source.py /homeassistant/components/image/media_source.py:29:5 - error: "name" overrides symbol of same name in class "MediaSource" @@ -14897,12 +15041,12 @@ /homeassistant/components/intellifire/switch.py:81:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/intent/__init__.py - /homeassistant/components/intent/__init__.py:274:5 - error: "slot_schema" incorrectly overrides property of same name in class "IntentHandler" (reportIncompatibleMethodOverride) - /homeassistant/components/intent/__init__.py:274:19 - error: Type "dict[Any | Optional, ((value: Any) -> str) | All]" is not assignable to declared type "property" (reportAssignmentType) - /homeassistant/components/intent/__init__.py:466:5 - error: "slot_schema" incorrectly overrides property of same name in class "IntentHandler" (reportIncompatibleMethodOverride) - /homeassistant/components/intent/__init__.py:466:19 - error: Type "dict[Optional, (value: Any) -> str]" is not assignable to declared type "property" (reportAssignmentType) - /homeassistant/components/intent/__init__.py:486:5 - error: "slot_schema" incorrectly overrides property of same name in class "IntentHandler" (reportIncompatibleMethodOverride) - /homeassistant/components/intent/__init__.py:486:19 - error: Type "dict[Optional, (value: Any) -> str]" is not assignable to declared type "property" (reportAssignmentType) + /homeassistant/components/intent/__init__.py:277:5 - error: "slot_schema" incorrectly overrides property of same name in class "IntentHandler" (reportIncompatibleMethodOverride) + /homeassistant/components/intent/__init__.py:277:19 - error: Type "dict[Any | Optional, ((value: Any) -> str) | All]" is not assignable to declared type "property" (reportAssignmentType) + /homeassistant/components/intent/__init__.py:494:5 - error: "slot_schema" incorrectly overrides property of same name in class "IntentHandler" (reportIncompatibleMethodOverride) + /homeassistant/components/intent/__init__.py:494:19 - error: Type "dict[Optional, (value: Any) -> str]" is not assignable to declared type "property" (reportAssignmentType) + /homeassistant/components/intent/__init__.py:514:5 - error: "slot_schema" incorrectly overrides property of same name in class "IntentHandler" (reportIncompatibleMethodOverride) + /homeassistant/components/intent/__init__.py:514:19 - error: Type "dict[Optional, (value: Any) -> str]" is not assignable to declared type "property" (reportAssignmentType) /homeassistant/components/intent/timers.py /homeassistant/components/intent/timers.py:814:5 - error: "slot_schema" incorrectly overrides property of same name in class "IntentHandler" (reportIncompatibleMethodOverride) /homeassistant/components/intent/timers.py:814:19 - error: Type "dict[Required | Optional, All | ((value: Any) -> str)]" is not assignable to declared type "property" (reportAssignmentType) @@ -16342,7 +16486,7 @@ /homeassistant/components/keymitt_ble/switch.py:60:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/kitchen_sink/__init__.py - /homeassistant/components/kitchen_sink/__init__.py:236:16 - error: Could not access item in TypedDict + /homeassistant/components/kitchen_sink/__init__.py:286:16 - error: Could not access item in TypedDict   "sum" is not a required key in "StatisticsRow", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/kitchen_sink/lock.py /homeassistant/components/kitchen_sink/lock.py:80:9 - error: "is_locked" overrides symbol of same name in class "LockEntity" @@ -16512,23 +16656,41 @@   Variable is mutable so its type is invariant     Override type "Cover" is not the same as base type "Device" (reportIncompatibleVariableOverride) /homeassistant/components/knx/date.py - /homeassistant/components/knx/date.py:63:7 - error: Base classes for class "KNXDateEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/date.py:63:7 - error: Base classes for class "KNXDateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/date.py:63:7 - error: Base classes for class "KNXDateEntity" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/date.py:63:7 - error: Base classes for class "KNXDateEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/date.py:63:7 - error: Base classes for class "KNXDateEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/date.py:63:7 - error: Base classes for class "KNXDateEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/date.py:90:9 - error: "native_value" overrides symbol of same name in class "DateEntity" + /homeassistant/components/knx/date.py:74:7 - error: Base classes for class "_KNXDate" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:74:7 - error: Base classes for class "_KNXDate" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:74:7 - error: Base classes for class "_KNXDate" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:74:7 - error: Base classes for class "_KNXDate" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:92:9 - error: "native_value" overrides symbol of same name in class "DateEntity"   "property" is not assignable to "cached_property[date | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:101:7 - error: Base classes for class "KnxYamlDate" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:101:7 - error: Base classes for class "KnxYamlDate" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:101:7 - error: Base classes for class "KnxYamlDate" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:101:7 - error: Base classes for class "KnxYamlDate" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:124:7 - error: Base classes for class "KnxUiDate" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:124:7 - error: Base classes for class "KnxUiDate" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:124:7 - error: Base classes for class "KnxUiDate" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:124:7 - error: Base classes for class "KnxUiDate" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/date.py:139:14 - error: "_device" overrides symbol of same name in class "_KnxEntityBase" +   Variable is mutable so its type is invariant +     Override type "DateDevice" is not the same as base type "Device" (reportIncompatibleVariableOverride) /homeassistant/components/knx/datetime.py - /homeassistant/components/knx/datetime.py:64:7 - error: Base classes for class "KNXDateTimeEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/datetime.py:64:7 - error: Base classes for class "KNXDateTimeEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/datetime.py:64:7 - error: Base classes for class "KNXDateTimeEntity" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/datetime.py:64:7 - error: Base classes for class "KNXDateTimeEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/datetime.py:64:7 - error: Base classes for class "KNXDateTimeEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/datetime.py:64:7 - error: Base classes for class "KNXDateTimeEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/datetime.py:93:9 - error: "native_value" overrides symbol of same name in class "DateTimeEntity" + /homeassistant/components/knx/datetime.py:75:7 - error: Base classes for class "_KNXDateTime" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:75:7 - error: Base classes for class "_KNXDateTime" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:75:7 - error: Base classes for class "_KNXDateTime" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:75:7 - error: Base classes for class "_KNXDateTime" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:95:9 - error: "native_value" overrides symbol of same name in class "DateTimeEntity"   "property" is not assignable to "cached_property[datetime | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:106:7 - error: Base classes for class "KnxYamlDateTime" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:106:7 - error: Base classes for class "KnxYamlDateTime" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:106:7 - error: Base classes for class "KnxYamlDateTime" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:106:7 - error: Base classes for class "KnxYamlDateTime" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:129:7 - error: Base classes for class "KnxUiDateTime" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:129:7 - error: Base classes for class "KnxUiDateTime" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:129:7 - error: Base classes for class "KnxUiDateTime" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:129:7 - error: Base classes for class "KnxUiDateTime" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/datetime.py:144:14 - error: "_device" overrides symbol of same name in class "_KnxEntityBase" +   Variable is mutable so its type is invariant +     Override type "DateTimeDevice" is not the same as base type "Device" (reportIncompatibleVariableOverride) /homeassistant/components/knx/device.py /homeassistant/components/knx/device.py:6:23 - error: "XknxConnectionState" is not exported from module "xknx.core"   Import from "xknx.core.connection_state" instead (reportPrivateImportUsage) @@ -16706,14 +16868,23 @@ /homeassistant/components/knx/text.py:85:9 - error: "native_value" overrides symbol of same name in class "TextEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/knx/time.py - /homeassistant/components/knx/time.py:63:7 - error: Base classes for class "KNXTimeEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/time.py:63:7 - error: Base classes for class "KNXTimeEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/time.py:63:7 - error: Base classes for class "KNXTimeEntity" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/time.py:63:7 - error: Base classes for class "KNXTimeEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/time.py:63:7 - error: Base classes for class "KNXTimeEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/time.py:63:7 - error: Base classes for class "KNXTimeEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/knx/time.py:90:9 - error: "native_value" overrides symbol of same name in class "TimeEntity" + /homeassistant/components/knx/time.py:74:7 - error: Base classes for class "_KNXTime" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:74:7 - error: Base classes for class "_KNXTime" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:74:7 - error: Base classes for class "_KNXTime" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:74:7 - error: Base classes for class "_KNXTime" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:92:9 - error: "native_value" overrides symbol of same name in class "TimeEntity"   "property" is not assignable to "cached_property[time | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:101:7 - error: Base classes for class "KnxYamlTime" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:101:7 - error: Base classes for class "KnxYamlTime" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:101:7 - error: Base classes for class "KnxYamlTime" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:101:7 - error: Base classes for class "KnxYamlTime" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:124:7 - error: Base classes for class "KnxUiTime" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:124:7 - error: Base classes for class "KnxUiTime" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:124:7 - error: Base classes for class "KnxUiTime" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:124:7 - error: Base classes for class "KnxUiTime" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/knx/time.py:139:14 - error: "_device" overrides symbol of same name in class "_KnxEntityBase" +   Variable is mutable so its type is invariant +     Override type "TimeDevice" is not the same as base type "Device" (reportIncompatibleVariableOverride) /homeassistant/components/knx/trigger.py /homeassistant/components/knx/trigger.py:6:22 - error: "DPTBase" is not exported from module "xknx.dpt"   Import from "xknx.dpt.dpt" instead (reportPrivateImportUsage) @@ -16953,14 +17124,14 @@ /homeassistant/components/lacrosse_view/sensor.py:248:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/components/lamarzocco/binary_sensor.py - /homeassistant/components/lamarzocco/binary_sensor.py:102:7 - error: Base classes for class "LaMarzoccoBinarySensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/binary_sensor.py:105:5 - error: "entity_description" overrides symbol of same name in class "LaMarzoccoEntity" + /homeassistant/components/lamarzocco/binary_sensor.py:111:7 - error: Base classes for class "LaMarzoccoBinarySensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lamarzocco/binary_sensor.py:114:5 - error: "entity_description" overrides symbol of same name in class "LaMarzoccoEntity"   Variable is mutable so its type is invariant     Override type "LaMarzoccoBinarySensorEntityDescription" is not the same as base type "LaMarzoccoEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/binary_sensor.py:105:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/lamarzocco/binary_sensor.py:114:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "LaMarzoccoBinarySensorEntityDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/binary_sensor.py:108:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/lamarzocco/binary_sensor.py:117:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/lamarzocco/button.py /homeassistant/components/lamarzocco/button.py:68:7 - error: Base classes for class "LaMarzoccoButtonEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -16973,28 +17144,28 @@ /homeassistant/components/lamarzocco/calendar.py /homeassistant/components/lamarzocco/calendar.py:48:7 - error: Base classes for class "LaMarzoccoCalendarEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lamarzocco/entity.py - /homeassistant/components/lamarzocco/entity.py:104:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/lamarzocco/entity.py:123:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "LaMarzoccoEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/lamarzocco/number.py - /homeassistant/components/lamarzocco/number.py:218:7 - error: Base classes for class "LaMarzoccoNumberEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/number.py:221:5 - error: "entity_description" overrides symbol of same name in class "LaMarzoccoEntity" + /homeassistant/components/lamarzocco/number.py:242:7 - error: Base classes for class "LaMarzoccoNumberEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lamarzocco/number.py:245:5 - error: "entity_description" overrides symbol of same name in class "LaMarzoccoEntity"   Variable is mutable so its type is invariant     Override type "LaMarzoccoNumberEntityDescription" is not the same as base type "LaMarzoccoEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/number.py:221:5 - error: "entity_description" overrides symbol of same name in class "NumberEntity" + /homeassistant/components/lamarzocco/number.py:245:5 - error: "entity_description" overrides symbol of same name in class "NumberEntity"   Variable is mutable so its type is invariant     Override type "LaMarzoccoNumberEntityDescription" is not the same as base type "NumberEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/number.py:224:9 - error: "native_value" overrides symbol of same name in class "NumberEntity" + /homeassistant/components/lamarzocco/number.py:248:9 - error: "native_value" overrides symbol of same name in class "NumberEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) /homeassistant/components/lamarzocco/select.py - /homeassistant/components/lamarzocco/select.py:137:7 - error: Base classes for class "LaMarzoccoSelectEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/select.py:140:5 - error: "entity_description" overrides symbol of same name in class "LaMarzoccoEntity" + /homeassistant/components/lamarzocco/select.py:140:7 - error: Base classes for class "LaMarzoccoSelectEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lamarzocco/select.py:143:5 - error: "entity_description" overrides symbol of same name in class "LaMarzoccoEntity"   Variable is mutable so its type is invariant     Override type "LaMarzoccoSelectEntityDescription" is not the same as base type "LaMarzoccoEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/select.py:140:5 - error: "entity_description" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/lamarzocco/select.py:143:5 - error: "entity_description" overrides symbol of same name in class "SelectEntity"   Variable is mutable so its type is invariant     Override type "LaMarzoccoSelectEntityDescription" is not the same as base type "SelectEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/select.py:143:9 - error: "current_option" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/lamarzocco/select.py:146:9 - error: "current_option" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/lamarzocco/sensor.py /homeassistant/components/lamarzocco/sensor.py:192:7 - error: Base classes for class "LaMarzoccoSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -17007,17 +17178,17 @@ /homeassistant/components/lamarzocco/sensor.py:198:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/lamarzocco/switch.py - /homeassistant/components/lamarzocco/switch.py:122:7 - error: Base classes for class "LaMarzoccoSwitchEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/switch.py:125:5 - error: "entity_description" overrides symbol of same name in class "LaMarzoccoEntity" + /homeassistant/components/lamarzocco/switch.py:128:7 - error: Base classes for class "LaMarzoccoSwitchEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lamarzocco/switch.py:131:5 - error: "entity_description" overrides symbol of same name in class "LaMarzoccoEntity"   Variable is mutable so its type is invariant     Override type "LaMarzoccoSwitchEntityDescription" is not the same as base type "LaMarzoccoEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/switch.py:125:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity" + /homeassistant/components/lamarzocco/switch.py:131:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity"   Variable is mutable so its type is invariant     Override type "LaMarzoccoSwitchEntityDescription" is not the same as base type "SwitchEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/switch.py:152:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/lamarzocco/switch.py:158:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/switch.py:157:7 - error: Base classes for class "LaMarzoccoAutoOnOffSwitchEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lamarzocco/switch.py:198:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/lamarzocco/switch.py:163:7 - error: Base classes for class "LaMarzoccoAutoOnOffSwitchEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lamarzocco/switch.py:204:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/lamarzocco/update.py /homeassistant/components/lamarzocco/update.py:72:7 - error: Base classes for class "LaMarzoccoUpdateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -17257,103 +17428,45 @@     Override type "LawnMowerEntityFeature" is not the same as base type "int | None" (reportIncompatibleVariableOverride) /homeassistant/components/lawn_mower/__init__.py:89:9 - error: "state" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[StateType]" (reportIncompatibleVariableOverride) -/homeassistant/components/lcn/__init__.py - /homeassistant/components/lcn/__init__.py:279:65 - error: Argument of type "ModStatusAccessControl" cannot be assigned to parameter "inp" of type "InputType" in function "_async_fire_access_control_event" -   Type "ModStatusAccessControl" is not assignable to type "InputType" (reportArgumentType) - /homeassistant/components/lcn/__init__.py:281:60 - error: Argument of type "ModSendKeysHost" cannot be assigned to parameter "inp" of type "InputType" in function "_async_fire_send_keys_event" -   Type "ModSendKeysHost" is not assignable to type "InputType" (reportArgumentType) - /homeassistant/components/lcn/__init__.py:294:21 - error: Cannot access attribute "code" for class "InputType" -   Attribute "code" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/__init__.py:300:12 - error: Cannot access attribute "periphery" for class "InputType" -   Attribute "periphery" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/__init__.py:302:27 - error: Cannot access attribute "level" for class "InputType" -   Attribute "level" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/__init__.py:302:45 - error: Cannot access attribute "key" for class "InputType" -   Attribute "key" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/__init__.py:302:64 - error: Cannot access attribute "action" for class "InputType" -   Attribute "action" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/__init__.py:305:29 - error: Cannot access attribute "periphery" for class "InputType" -   Attribute "periphery" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/__init__.py:316:40 - error: Cannot access attribute "actions" for class "InputType" -   Attribute "actions" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/__init__.py:320:44 - error: Cannot access attribute "keys" for class "InputType" -   Attribute "keys" is unknown (reportAttributeAccessIssue) /homeassistant/components/lcn/binary_sensor.py /homeassistant/components/lcn/binary_sensor.py:63:7 - error: Base classes for class "LcnBinarySensor" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/binary_sensor.py:63:7 - error: Base classes for class "LcnBinarySensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/binary_sensor.py:63:7 - error: Base classes for class "LcnBinarySensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/binary_sensor.py:76:38 - error: Cannot access attribute "request_status_binary_sensors" for class "GroupConnection" -   Attribute "request_status_binary_sensors" is unknown (reportAttributeAccessIssue) /homeassistant/components/lcn/climate.py /homeassistant/components/lcn/climate.py:82:7 - error: Base classes for class "LcnClimate" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/climate.py:82:7 - error: Base classes for class "LcnClimate" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/climate.py:82:7 - error: Base classes for class "LcnClimate" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/climate.py:117:9 - error: "temperature_unit" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/lcn/climate.py:115:9 - error: "temperature_unit" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[str]" (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/climate.py:125:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity" -   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/climate.py:130:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity" -   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/climate.py:135:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/lcn/climate.py:123:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACMode | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/climate.py:145:9 - error: "max_temp" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/lcn/climate.py:133:9 - error: "max_temp" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float]" (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/climate.py:150:9 - error: "min_temp" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/lcn/climate.py:138:9 - error: "min_temp" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float]" (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/climate.py:187:36 - error: Cannot access attribute "request_status_variable" for class "GroupConnection" -   Attribute "request_status_variable" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/climate.py:190:36 - error: Cannot access attribute "request_status_variable" for class "GroupConnection" -   Attribute "request_status_variable" is unknown (reportAttributeAccessIssue) /homeassistant/components/lcn/cover.py /homeassistant/components/lcn/cover.py:76:7 - error: Base classes for class "LcnOutputsCover" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/cover.py:76:7 - error: Base classes for class "LcnOutputsCover" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/cover.py:76:7 - error: Base classes for class "LcnOutputsCover" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/cover.py:135:40 - error: Cannot access attribute "request_status_output" for class "GroupConnection" -   Attribute "request_status_output" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/cover.py:138:40 - error: Cannot access attribute "request_status_output" for class "GroupConnection" -   Attribute "request_status_output" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/cover.py:168:7 - error: Base classes for class "LcnRelayCover" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/cover.py:168:7 - error: Base classes for class "LcnRelayCover" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/cover.py:168:7 - error: Base classes for class "LcnRelayCover" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/cover.py:192:13 - error: Operator "|=" not supported for types "CoverEntityFeature | None" and "Literal[CoverEntityFeature.SET_POSITION]" + /homeassistant/components/lcn/cover.py:172:7 - error: Base classes for class "LcnRelayCover" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/cover.py:172:7 - error: Base classes for class "LcnRelayCover" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/cover.py:172:7 - error: Base classes for class "LcnRelayCover" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/cover.py:196:13 - error: Operator "|=" not supported for types "CoverEntityFeature | None" and "Literal[CoverEntityFeature.SET_POSITION]"   Operator "|" not supported for types "None" and "Literal[CoverEntityFeature.SET_POSITION]" (reportOperatorIssue) - /homeassistant/components/lcn/cover.py:258:41 - error: Cannot access attribute "request_status_relays" for class "GroupConnection" -   Attribute "request_status_relays" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/cover.py:261:40 - error: Cannot access attribute "request_status_motor_position" for class "GroupConnection" -   Attribute "request_status_motor_position" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/cover.py:286:49 - error: Cannot assign to attribute "_attr_current_cover_position" for class "LcnRelayCover*" -   Type "float" is not assignable to type "int | None" -     "float" is not assignable to "int" -     "float" is not assignable to "None" (reportAttributeAccessIssue) /homeassistant/components/lcn/entity.py - /homeassistant/components/lcn/entity.py:49:9 - error: "unique_id" overrides symbol of same name in class "Entity" + /homeassistant/components/lcn/entity.py:50:9 - error: "unique_id" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/entity.py:60:9 - error: "should_poll" overrides symbol of same name in class "Entity" + /homeassistant/components/lcn/entity.py:61:9 - error: "should_poll" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/entity.py:72:62 - error: Cannot access attribute "register_for_inputs" for class "GroupConnection" -   Attribute "register_for_inputs" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/entity.py:73:13 - error: Argument of type "(input_obj: InputType) -> None" cannot be assigned to parameter "callback" of type "(Input) -> None" in function "register_for_inputs" -   Type "(input_obj: InputType) -> None" is not assignable to type "(Input) -> None" -     Parameter 1: type "Input" is incompatible with type "InputType" -       Type "Input" is not assignable to type "InputType" (reportArgumentType) - /homeassistant/components/lcn/entity.py:84:9 - error: "name" overrides symbol of same name in class "Entity" + /homeassistant/components/lcn/entity.py:85:9 - error: "name" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | UndefinedType | None]" (reportIncompatibleVariableOverride) -/homeassistant/components/lcn/helpers.py - /homeassistant/components/lcn/helpers.py:254:33 - error: Cannot access attribute "serials_known" for class "GroupConnection" -   Attribute "serials_known" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/helpers.py:274:47 - error: Cannot access attribute "request_name" for class "GroupConnection" -   Attribute "request_name" is unknown (reportAttributeAccessIssue) /homeassistant/components/lcn/light.py /homeassistant/components/lcn/light.py:81:7 - error: Base classes for class "LcnOutputLight" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/light.py:81:7 - error: Base classes for class "LcnOutputLight" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/light.py:81:7 - error: Base classes for class "LcnOutputLight" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/light.py:152:38 - error: Cannot access attribute "request_status_output" for class "GroupConnection" -   Attribute "request_status_output" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/light.py:170:7 - error: Base classes for class "LcnRelayLight" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/light.py:170:7 - error: Base classes for class "LcnRelayLight" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/light.py:170:7 - error: Base classes for class "LcnRelayLight" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/light.py:203:38 - error: Cannot access attribute "request_status_relays" for class "GroupConnection" -   Attribute "request_status_relays" is unknown (reportAttributeAccessIssue) + /homeassistant/components/lcn/light.py:173:7 - error: Base classes for class "LcnRelayLight" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/light.py:173:7 - error: Base classes for class "LcnRelayLight" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/light.py:173:7 - error: Base classes for class "LcnRelayLight" define variable "name" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/scene.py /homeassistant/components/lcn/scene.py:66:7 - error: Base classes for class "LcnScene" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/scene.py:66:7 - error: Base classes for class "LcnScene" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) @@ -17362,34 +17475,22 @@ /homeassistant/components/lcn/sensor.py:117:7 - error: Base classes for class "LcnVariableSensor" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/sensor.py:117:7 - error: Base classes for class "LcnVariableSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/sensor.py:117:7 - error: Base classes for class "LcnVariableSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/sensor.py:136:38 - error: Cannot access attribute "request_status_variable" for class "GroupConnection" -   Attribute "request_status_variable" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/sensor.py:156:7 - error: Base classes for class "LcnLedLogicSensor" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/sensor.py:156:7 - error: Base classes for class "LcnLedLogicSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/sensor.py:156:7 - error: Base classes for class "LcnLedLogicSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/sensor.py:172:38 - error: Cannot access attribute "request_status_led_and_logic_ops" for class "GroupConnection" -   Attribute "request_status_led_and_logic_ops" is unknown (reportAttributeAccessIssue) + /homeassistant/components/lcn/sensor.py:159:7 - error: Base classes for class "LcnLedLogicSensor" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/sensor.py:159:7 - error: Base classes for class "LcnLedLogicSensor" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/sensor.py:159:7 - error: Base classes for class "LcnLedLogicSensor" define variable "name" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/switch.py /homeassistant/components/lcn/switch.py:71:7 - error: Base classes for class "LcnOutputSwitch" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/switch.py:71:7 - error: Base classes for class "LcnOutputSwitch" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/lcn/switch.py:71:7 - error: Base classes for class "LcnOutputSwitch" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/switch.py:98:38 - error: Cannot access attribute "request_status_output" for class "GroupConnection" -   Attribute "request_status_output" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/switch.py:114:7 - error: Base classes for class "LcnRelaySwitch" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/switch.py:114:7 - error: Base classes for class "LcnRelaySwitch" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/switch.py:114:7 - error: Base classes for class "LcnRelaySwitch" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/switch.py:145:38 - error: Cannot access attribute "request_status_relays" for class "GroupConnection" -   Attribute "request_status_relays" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/switch.py:156:7 - error: Base classes for class "LcnRegulatorLockSwitch" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/switch.py:156:7 - error: Base classes for class "LcnRegulatorLockSwitch" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/switch.py:156:7 - error: Base classes for class "LcnRegulatorLockSwitch" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/switch.py:186:38 - error: Cannot access attribute "request_status_variable" for class "GroupConnection" -   Attribute "request_status_variable" is unknown (reportAttributeAccessIssue) - /homeassistant/components/lcn/switch.py:202:7 - error: Base classes for class "LcnKeyLockSwitch" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/switch.py:202:7 - error: Base classes for class "LcnKeyLockSwitch" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/switch.py:202:7 - error: Base classes for class "LcnKeyLockSwitch" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lcn/switch.py:239:38 - error: Cannot access attribute "request_status_locked_keys" for class "GroupConnection" -   Attribute "request_status_locked_keys" is unknown (reportAttributeAccessIssue) + /homeassistant/components/lcn/switch.py:117:7 - error: Base classes for class "LcnRelaySwitch" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/switch.py:117:7 - error: Base classes for class "LcnRelaySwitch" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/switch.py:117:7 - error: Base classes for class "LcnRelaySwitch" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/switch.py:162:7 - error: Base classes for class "LcnRegulatorLockSwitch" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/switch.py:162:7 - error: Base classes for class "LcnRegulatorLockSwitch" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/switch.py:162:7 - error: Base classes for class "LcnRegulatorLockSwitch" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/switch.py:211:7 - error: Base classes for class "LcnKeyLockSwitch" define variable "should_poll" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/switch.py:211:7 - error: Base classes for class "LcnKeyLockSwitch" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lcn/switch.py:211:7 - error: Base classes for class "LcnKeyLockSwitch" define variable "name" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/ld2410_ble/__init__.py /homeassistant/components/ld2410_ble/__init__.py:6:5 - error: "BleakError" is not exported from module "bleak_retry_connector"   Import from "bleak.exc" instead (reportPrivateImportUsage) @@ -17862,11 +17963,11 @@ /homeassistant/components/libre_hardware_monitor/config_flow.py:11:5 - error: "LibreHardwareMonitorNoDevicesError" is not exported from module "librehardwaremonitor_api"   Import from "librehardwaremonitor_api.errors" instead (reportPrivateImportUsage) /homeassistant/components/libre_hardware_monitor/coordinator.py - /homeassistant/components/libre_hardware_monitor/coordinator.py:10:5 - error: "LibreHardwareMonitorClient" is not exported from module "librehardwaremonitor_api" + /homeassistant/components/libre_hardware_monitor/coordinator.py:9:5 - error: "LibreHardwareMonitorClient" is not exported from module "librehardwaremonitor_api"   Import from "librehardwaremonitor_api.client" instead (reportPrivateImportUsage) - /homeassistant/components/libre_hardware_monitor/coordinator.py:11:5 - error: "LibreHardwareMonitorConnectionError" is not exported from module "librehardwaremonitor_api" + /homeassistant/components/libre_hardware_monitor/coordinator.py:10:5 - error: "LibreHardwareMonitorConnectionError" is not exported from module "librehardwaremonitor_api"   Import from "librehardwaremonitor_api.errors" instead (reportPrivateImportUsage) - /homeassistant/components/libre_hardware_monitor/coordinator.py:12:5 - error: "LibreHardwareMonitorNoDevicesError" is not exported from module "librehardwaremonitor_api" + /homeassistant/components/libre_hardware_monitor/coordinator.py:11:5 - error: "LibreHardwareMonitorNoDevicesError" is not exported from module "librehardwaremonitor_api"   Import from "librehardwaremonitor_api.errors" instead (reportPrivateImportUsage) /homeassistant/components/libre_hardware_monitor/sensor.py /homeassistant/components/libre_hardware_monitor/sensor.py:38:7 - error: Base classes for class "LibreHardwareMonitorSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -18006,6 +18107,8 @@ /homeassistant/components/light/__init__.py:1262:9 - error: "state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[dict[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/light/__init__.py:1435:1 - warning: Operation on "__all__" is not supported, so exported symbol list may be incorrect (reportUnsupportedDunderAll) +/homeassistant/components/light/condition.py + /homeassistant/components/light/condition.py:102:20 - error: "matcher" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/light/reproduce_state.py /homeassistant/components/light/reproduce_state.py:166:17 - error: "service" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/lightwave/__init__.py @@ -18270,6 +18373,9 @@     Type "None" is not assignable to type "EventType[Any] | str"       "None" is not assignable to "EventType[Any]"       "None" is not assignable to "str" (reportArgumentType) +/homeassistant/components/logger/websocket_api.py + /homeassistant/components/logger/websocket_api.py:42:12 - error: Could not access item in TypedDict +   "context" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/london_air/sensor.py /homeassistant/components/london_air/sensor.py:117:9 - error: "name" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | UndefinedType | None]" (reportIncompatibleVariableOverride) @@ -18502,9 +18608,17 @@ /homeassistant/components/lutron_caseta/logbook.py /homeassistant/components/lutron_caseta/logbook.py:49:25 - error: Object of type "None" is not subscriptable (reportOptionalSubscript) /homeassistant/components/lutron_caseta/switch.py - /homeassistant/components/lutron_caseta/switch.py:31:7 - error: Base classes for class "LutronCasetaLight" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lutron_caseta/switch.py:31:7 - error: Base classes for class "LutronCasetaLight" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/lutron_caseta/switch.py:61:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/lutron_caseta/switch.py:39:7 - error: Base classes for class "LutronCasetaLight" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lutron_caseta/switch.py:39:7 - error: Base classes for class "LutronCasetaLight" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lutron_caseta/switch.py:69:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" +   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/lutron_caseta/switch.py:74:7 - error: Base classes for class "LutronCasetaSmartAwaySwitch" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/lutron_caseta/switch.py:94:9 - error: "unique_id" overrides symbol of same name in class "Entity" +   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/lutron_caseta/switch.py:101:53 - error: Argument of type "() -> None" cannot be assigned to parameter "callback_" of type "(str) -> None" in function "add_smart_away_subscriber" +   Type "() -> None" is not assignable to type "(str) -> None" +     Function accepts too many positional parameters; expected 0 but received 1 (reportArgumentType) + /homeassistant/components/lutron_caseta/switch.py:112:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/lw12wifi/light.py /homeassistant/components/lw12wifi/light.py:8:8 - error: Import "lw12" could not be resolved (reportMissingImports) @@ -18639,7 +18753,7 @@ /homeassistant/components/mastodon/sensor.py:79:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/mastodon/services.py - /homeassistant/components/mastodon/services.py:146:42 - error: Argument of type "MaybeSnowflakeIdType | None" cannot be assigned to parameter "media_ids" of type "List[IdType | MediaAttachment] | None" in function "status_post" + /homeassistant/components/mastodon/services.py:156:42 - error: Argument of type "MaybeSnowflakeIdType | None" cannot be assigned to parameter "media_ids" of type "List[IdType | MediaAttachment] | None" in function "status_post"   Type "MaybeSnowflakeIdType | None" is not assignable to type "List[IdType | MediaAttachment] | None"     Type "MaybeSnowflakeIdType" is not assignable to type "List[IdType | MediaAttachment] | None"       "MaybeSnowflakeIdType" is not assignable to "List[IdType | MediaAttachment]" @@ -18733,15 +18847,15 @@   Variable is mutable so its type is invariant     Override type "MatterNumberEntityDescription" is not the same as base type "NumberEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/matter/select.py - /homeassistant/components/matter/select.py:74:5 - error: "device_to_ha" overrides a field of the same name but is missing a default value (reportGeneralTypeIssues) - /homeassistant/components/matter/select.py:75:5 - error: "ha_to_device" overrides a field of the same name but is missing a default value (reportGeneralTypeIssues) - /homeassistant/components/matter/select.py:96:5 - error: "entity_description" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/matter/select.py:86:5 - error: "device_to_ha" overrides a field of the same name but is missing a default value (reportGeneralTypeIssues) + /homeassistant/components/matter/select.py:87:5 - error: "ha_to_device" overrides a field of the same name but is missing a default value (reportGeneralTypeIssues) + /homeassistant/components/matter/select.py:108:5 - error: "entity_description" overrides symbol of same name in class "SelectEntity"   Variable is mutable so its type is invariant     Override type "MatterSelectEntityDescription" is not the same as base type "SelectEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/matter/select.py:121:5 - error: "entity_description" overrides symbol of same name in class "MatterAttributeSelectEntity" + /homeassistant/components/matter/select.py:133:5 - error: "entity_description" overrides symbol of same name in class "MatterAttributeSelectEntity"   Variable is mutable so its type is invariant     Override type "MatterMapSelectEntityDescription" is not the same as base type "MatterSelectEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/matter/select.py:146:34 - error: Type "None" is not assignable to declared type "SelectCluster" + /homeassistant/components/matter/select.py:158:34 - error: Type "None" is not assignable to declared type "SelectCluster"   Type "None" is not assignable to type "SelectCluster"     "None" is not assignable to "ModeSelect"     "None" is not assignable to "OvenMode" @@ -18751,11 +18865,11 @@     "None" is not assignable to "RvcCleanMode"     "None" is not assignable to "DishwasherMode" ... (reportAssignmentType) - /homeassistant/components/matter/select.py:147:13 - error: Argument of type "classproperty" cannot be assigned to parameter "cluster" of type "type[_CLUSTER_T@get_cluster] | int" in function "get_cluster" + /homeassistant/components/matter/select.py:159:13 - error: Argument of type "classproperty" cannot be assigned to parameter "cluster" of type "type[_CLUSTER_T@get_cluster] | int" in function "get_cluster"   Type "classproperty" is not assignable to type "type[_CLUSTER_T@get_cluster] | int"     Type "classproperty" is not assignable to type "type[_CLUSTER_T@get_cluster]"     "classproperty" is not assignable to "int" (reportArgumentType) - /homeassistant/components/matter/select.py:163:34 - error: Type "None" is not assignable to declared type "SelectCluster" + /homeassistant/components/matter/select.py:175:34 - error: Type "None" is not assignable to declared type "SelectCluster"   Type "None" is not assignable to type "SelectCluster"     "None" is not assignable to "ModeSelect"     "None" is not assignable to "OvenMode" @@ -18765,11 +18879,11 @@     "None" is not assignable to "RvcCleanMode"     "None" is not assignable to "DishwasherMode" ... (reportAssignmentType) - /homeassistant/components/matter/select.py:164:13 - error: Argument of type "classproperty" cannot be assigned to parameter "cluster" of type "type[_CLUSTER_T@get_cluster] | int" in function "get_cluster" + /homeassistant/components/matter/select.py:176:13 - error: Argument of type "classproperty" cannot be assigned to parameter "cluster" of type "type[_CLUSTER_T@get_cluster] | int" in function "get_cluster"   Type "classproperty" is not assignable to type "type[_CLUSTER_T@get_cluster] | int"     Type "classproperty" is not assignable to type "type[_CLUSTER_T@get_cluster]"     "classproperty" is not assignable to "int" (reportArgumentType) - /homeassistant/components/matter/select.py:177:5 - error: "entity_description" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/matter/select.py:189:5 - error: "entity_description" overrides symbol of same name in class "SelectEntity"   Variable is mutable so its type is invariant     Override type "MatterListSelectEntityDescription" is not the same as base type "SelectEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/matter/sensor.py @@ -19406,87 +19520,477 @@   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) /homeassistant/components/miele/const.py:175:16 - error: Argument of type "Literal[259]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[259]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:177:17 - error: Argument of type "Literal[11004]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[11004]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:178:13 - error: Argument of type "Literal[11005]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[11005]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:183:12 - error: Argument of type "Literal[11010]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[11010]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:184:19 - error: Argument of type "Literal[11029]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[11029]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:185:16 - error: Argument of type "Literal[11012]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[11012]" is not assignable to "list[int]" (reportArgumentType) /homeassistant/components/miele/const.py:189:23 - error: Argument of type "Literal[295]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[295]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:198:19 - error: Argument of type "Literal[512]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:199:19 - error: Argument of type "Literal[512]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[512]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:198:19 - error: Argument of type "Literal[535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:199:19 - error: Argument of type "Literal[535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:198:19 - error: Argument of type "Literal[536]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:199:19 - error: Argument of type "Literal[536]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[536]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:198:19 - error: Argument of type "Literal[537]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:199:19 - error: Argument of type "Literal[537]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[537]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:198:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:199:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:227:19 - error: Argument of type "Literal[256]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:228:19 - error: Argument of type "Literal[256]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[256]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:227:19 - error: Argument of type "Literal[512]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:228:19 - error: Argument of type "Literal[512]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[512]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:227:19 - error: Argument of type "Literal[535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:228:19 - error: Argument of type "Literal[535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:227:19 - error: Argument of type "Literal[536]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:228:19 - error: Argument of type "Literal[536]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[536]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:227:19 - error: Argument of type "Literal[537]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:228:19 - error: Argument of type "Literal[537]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[537]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:227:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:228:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:228:16 - error: Argument of type "Literal[259]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:229:16 - error: Argument of type "Literal[259]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[259]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:234:20 - error: Argument of type "Literal[519]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:235:20 - error: Argument of type "Literal[519]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[519]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:237:19 - error: Argument of type "Literal[521]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:238:19 - error: Argument of type "Literal[521]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[521]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:238:16 - error: Argument of type "Literal[522]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:239:16 - error: Argument of type "Literal[522]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[522]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:242:23 - error: Argument of type "Literal[295]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:243:23 - error: Argument of type "Literal[295]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[295]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:242:23 - error: Argument of type "Literal[530]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:243:23 - error: Argument of type "Literal[530]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[530]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:244:14 - error: Argument of type "Literal[514]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:245:14 - error: Argument of type "Literal[514]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[514]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:270:19 - error: Argument of type "Literal[1792]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:271:19 - error: Argument of type "Literal[1792]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[1792]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:270:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:271:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:272:20 - error: Argument of type "Literal[1801]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:273:20 - error: Argument of type "Literal[1801]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[1801]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:284:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:285:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:295:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:296:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:305:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:306:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:315:19 - error: Argument of type "Literal[4352]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:316:19 - error: Argument of type "Literal[4352]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[4352]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:315:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:316:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:320:18 - error: Argument of type "Literal[4404]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:321:18 - error: Argument of type "Literal[4404]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[4404]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:332:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:333:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:345:14 - error: Argument of type "Literal[5904]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:346:14 - error: Argument of type "Literal[5904]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[5904]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:352:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:353:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:363:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:364:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:374:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:375:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:376:23 - error: Argument of type "Literal[7938]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:377:23 - error: Argument of type "Literal[7938]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[7938]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:377:24 - error: Argument of type "Literal[7942]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:378:24 - error: Argument of type "Literal[7942]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[7942]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:389:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:390:19 - error: Argument of type "Literal[65535]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[65535]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:392:23 - error: Argument of type "Literal[7938]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:393:23 - error: Argument of type "Literal[7938]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[7938]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:392:23 - error: Argument of type "Literal[7942]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:393:23 - error: Argument of type "Literal[7942]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[7942]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:1404:26 - error: Argument of type "Literal[220]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:453:18 - error: Argument of type "Literal[-1]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[-1]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:464:13 - error: Argument of type "Literal[123]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[123]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:485:24 - error: Argument of type "Literal[10031]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[10031]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:486:17 - error: Argument of type "Literal[10007]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[10007]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:493:18 - error: Argument of type "Literal[-1]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[-1]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:494:17 - error: Argument of type "Literal[26]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[26]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:494:17 - error: Argument of type "Literal[205]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[205]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:495:19 - error: Argument of type "Literal[27]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[27]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:495:19 - error: Argument of type "Literal[214]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[214]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:496:11 - error: Argument of type "Literal[28]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[28]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:496:11 - error: Argument of type "Literal[200]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[200]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:497:17 - error: Argument of type "Literal[7]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[7]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:497:17 - error: Argument of type "Literal[31]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[31]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:497:17 - error: Argument of type "Literal[32]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[32]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:497:17 - error: Argument of type "Literal[202]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[202]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:498:18 - error: Argument of type "Literal[34]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[34]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:499:14 - error: Argument of type "Literal[35]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[35]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:499:14 - error: Argument of type "Literal[210]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[210]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:500:19 - error: Argument of type "Literal[36]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[36]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:500:19 - error: Argument of type "Literal[207]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[207]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:501:15 - error: Argument of type "Literal[37]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[37]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:502:24 - error: Argument of type "Literal[38]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[38]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:504:18 - error: Argument of type "Literal[42]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[42]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:507:18 - error: Argument of type "Literal[204]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[204]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:516:18 - error: Argument of type "Literal[-1]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[-1]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:518:15 - error: Argument of type "Literal[20]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[20]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:518:15 - error: Argument of type "Literal[90]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[90]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:519:20 - error: Argument of type "Literal[30]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[30]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:520:25 - error: Argument of type "Literal[40]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[40]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:521:17 - error: Argument of type "Literal[50]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[50]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:522:16 - error: Argument of type "Literal[60]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[60]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:523:16 - error: Argument of type "Literal[70]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[70]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:524:15 - error: Argument of type "Literal[80]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[80]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:525:19 - error: Argument of type "Literal[99003]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[99003]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:526:16 - error: Argument of type "Literal[120]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[120]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:527:13 - error: Argument of type "Literal[130]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[130]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:528:14 - error: Argument of type "Literal[99004]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[99004]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:529:18 - error: Argument of type "Literal[150]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[150]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:530:17 - error: Argument of type "Literal[160]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[160]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:531:22 - error: Argument of type "Literal[170]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[170]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:532:24 - error: Argument of type "Literal[190]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[190]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:533:22 - error: Argument of type "Literal[220]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[220]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:1423:24 - error: Argument of type "Literal[118]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:535:17 - error: Argument of type "Literal[240]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[240]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:536:17 - error: Argument of type "Literal[99002]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[99002]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:538:24 - error: Argument of type "Literal[100]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[100]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:547:18 - error: Argument of type "Literal[-1]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[-1]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:547:18 - error: Argument of type "Literal[17003]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[17003]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:548:15 - error: Argument of type "Literal[356]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[356]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:560:32 - error: Argument of type "Literal[48]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[48]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:561:30 - error: Argument of type "Literal[49]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[49]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:562:36 - error: Argument of type "Literal[74]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[74]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:563:39 - error: Argument of type "Literal[76]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[76]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:708:18 - error: Argument of type "Literal[-1]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[-1]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:718:18 - error: Argument of type "Literal[-1]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[-1]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:728:18 - error: Argument of type "Literal[-1]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[-1]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:733:17 - error: Argument of type "Literal[24032]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24032]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:733:17 - error: Argument of type "Literal[24064]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24064]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:733:17 - error: Argument of type "Literal[24096]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24096]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:733:17 - error: Argument of type "Literal[24128]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24128]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:734:16 - error: Argument of type "Literal[24033]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24033]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:734:16 - error: Argument of type "Literal[24065]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24065]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:734:16 - error: Argument of type "Literal[24097]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24097]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:734:16 - error: Argument of type "Literal[24129]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24129]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:735:14 - error: Argument of type "Literal[24034]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24034]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:735:14 - error: Argument of type "Literal[24066]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24066]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:735:14 - error: Argument of type "Literal[24098]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24098]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:735:14 - error: Argument of type "Literal[24130]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24130]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:736:19 - error: Argument of type "Literal[24035]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24035]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:736:19 - error: Argument of type "Literal[24067]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24067]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:736:19 - error: Argument of type "Literal[24099]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24099]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:736:19 - error: Argument of type "Literal[24131]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24131]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:737:18 - error: Argument of type "Literal[24036]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24036]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:737:18 - error: Argument of type "Literal[24068]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24068]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:737:18 - error: Argument of type "Literal[24100]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24100]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:737:18 - error: Argument of type "Literal[24132]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24132]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:738:27 - error: Argument of type "Literal[24037]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24037]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:738:27 - error: Argument of type "Literal[24069]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24069]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:738:27 - error: Argument of type "Literal[24101]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24101]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:738:27 - error: Argument of type "Literal[24133]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24133]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:739:23 - error: Argument of type "Literal[24038]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24038]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:739:23 - error: Argument of type "Literal[24070]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24070]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:739:23 - error: Argument of type "Literal[24102]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24102]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:739:23 - error: Argument of type "Literal[24134]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24134]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:740:26 - error: Argument of type "Literal[24039]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24039]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:740:26 - error: Argument of type "Literal[24071]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24071]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:740:26 - error: Argument of type "Literal[24135]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24135]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:741:20 - error: Argument of type "Literal[24040]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24040]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:741:20 - error: Argument of type "Literal[24072]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24072]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:741:20 - error: Argument of type "Literal[24104]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24104]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:741:20 - error: Argument of type "Literal[24136]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24136]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:742:19 - error: Argument of type "Literal[24041]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24041]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:742:19 - error: Argument of type "Literal[24073]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24073]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:742:19 - error: Argument of type "Literal[24105]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24105]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:742:19 - error: Argument of type "Literal[24137]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24137]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:743:18 - error: Argument of type "Literal[24044]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24044]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:743:18 - error: Argument of type "Literal[24076]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24076]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:743:18 - error: Argument of type "Literal[24108]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24108]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:743:18 - error: Argument of type "Literal[24140]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24140]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:744:22 - error: Argument of type "Literal[24045]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24045]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:744:22 - error: Argument of type "Literal[24077]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24077]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:744:22 - error: Argument of type "Literal[24109]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24109]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:744:22 - error: Argument of type "Literal[24141]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24141]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:745:17 - error: Argument of type "Literal[24046]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24046]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:745:17 - error: Argument of type "Literal[24078]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24078]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:745:17 - error: Argument of type "Literal[24110]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24110]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:745:17 - error: Argument of type "Literal[24142]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24142]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:746:16 - error: Argument of type "Literal[24047]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24047]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:746:16 - error: Argument of type "Literal[24079]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24079]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:746:16 - error: Argument of type "Literal[24111]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24111]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:746:16 - error: Argument of type "Literal[24143]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24143]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:747:17 - error: Argument of type "Literal[24048]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24048]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:747:17 - error: Argument of type "Literal[24080]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24080]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:747:17 - error: Argument of type "Literal[24112]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24112]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:747:17 - error: Argument of type "Literal[24144]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24144]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:748:17 - error: Argument of type "Literal[24049]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24049]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:748:17 - error: Argument of type "Literal[24081]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24081]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:748:17 - error: Argument of type "Literal[24113]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24113]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:748:17 - error: Argument of type "Literal[24145]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24145]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:749:18 - error: Argument of type "Literal[24050]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24050]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:749:18 - error: Argument of type "Literal[24082]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24082]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:749:18 - error: Argument of type "Literal[24114]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24114]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:749:18 - error: Argument of type "Literal[24146]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24146]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:750:17 - error: Argument of type "Literal[24051]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24051]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:750:17 - error: Argument of type "Literal[24083]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24083]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:750:17 - error: Argument of type "Literal[24115]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24115]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:750:17 - error: Argument of type "Literal[24147]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24147]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:751:17 - error: Argument of type "Literal[24052]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24052]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:751:17 - error: Argument of type "Literal[24084]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24084]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:751:17 - error: Argument of type "Literal[24116]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24116]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:751:17 - error: Argument of type "Literal[24148]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24148]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:752:17 - error: Argument of type "Literal[24053]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24053]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:752:17 - error: Argument of type "Literal[24085]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24085]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:752:17 - error: Argument of type "Literal[24117]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24117]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:752:17 - error: Argument of type "Literal[24149]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24149]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:753:20 - error: Argument of type "Literal[29054]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[29054]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:753:20 - error: Argument of type "Literal[24086]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24086]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:753:20 - error: Argument of type "Literal[24118]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24118]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:753:20 - error: Argument of type "Literal[24150]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24150]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[16018]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[16018]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[16019]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[16019]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[16020]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[16020]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[16021]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[16021]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[16027]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[16027]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[16033]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[16033]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[16035]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[16035]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[16037]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[16037]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24500]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24500]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24502]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24502]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24503]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24503]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24504]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24504]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24506]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24506]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24513]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24513]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24516]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24516]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24537]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24537]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24542]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24542]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24549]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24549]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24550]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24550]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24551]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24551]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24552]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24552]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24553]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24553]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24554]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24554]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24555]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24555]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24556]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24556]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24557]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24557]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24558]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24558]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24560]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24560]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24562]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24562]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24563]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24563]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24564]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24564]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24565]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24565]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24566]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24566]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24567]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24567]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24568]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24568]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24569]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24569]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24571]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24571]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24572]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24572]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24573]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24573]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24574]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24574]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24575]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24575]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24576]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24576]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24800]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24800]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24801]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24801]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:758:26 - error: Argument of type "Literal[24813]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24813]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:806:23 - error: Argument of type "Literal[24759]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24759]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:806:23 - error: Argument of type "Literal[24773]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24773]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:806:23 - error: Argument of type "Literal[24787]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24787]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:806:23 - error: Argument of type "Literal[24788]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[24788]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:816:18 - error: Argument of type "Literal[-1]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[-1]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:983:21 - error: Argument of type "Literal[2232]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[2232]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:984:22 - error: Argument of type "Literal[2231]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[2231]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:1262:26 - error: Argument of type "Literal[220]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" +   "Literal[220]" is not assignable to "list[int]" (reportArgumentType) + /homeassistant/components/miele/const.py:1281:24 - error: Argument of type "Literal[118]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[118]" is not assignable to "list[int]" (reportArgumentType) - /homeassistant/components/miele/const.py:1423:24 - error: Argument of type "Literal[218]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__" + /homeassistant/components/miele/const.py:1281:24 - error: Argument of type "Literal[218]" cannot be assigned to parameter "values" of type "list[int]" in function "__new__"   "Literal[218]" is not assignable to "list[int]" (reportArgumentType) /homeassistant/components/miele/fan.py /homeassistant/components/miele/fan.py:88:7 - error: Base classes for class "MieleFan" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -19504,6 +20008,15 @@     Override type "MieleLightDescription" is not the same as base type "LightEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/miele/light.py:116:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/miele/select.py + /homeassistant/components/miele/select.py:93:7 - error: Base classes for class "MieleSelectMode" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/miele/select.py:96:5 - error: "entity_description" overrides symbol of same name in class "SelectEntity" +   Variable is mutable so its type is invariant +     Override type "MieleSelectDescription" is not the same as base type "SelectEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/miele/select.py:99:9 - error: "options" overrides symbol of same name in class "SelectEntity" +   "property" is not assignable to "cached_property[list[str]]" (reportIncompatibleVariableOverride) + /homeassistant/components/miele/select.py:107:9 - error: "current_option" overrides symbol of same name in class "SelectEntity" +   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/miele/sensor.py /homeassistant/components/miele/sensor.py:122:31 - error: "duration" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/miele/sensor.py:822:7 - error: Base classes for class "MieleSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -19524,7 +20037,7 @@     Override type "StateType | datetime" is not the same as base type "StateType | date | datetime | Decimal" (reportIncompatibleVariableOverride) /homeassistant/components/miele/sensor.py:968:9 - error: "options" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/miele/sensor.py:994:9 - error: "options" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/miele/sensor.py:989:9 - error: "options" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/miele/switch.py /homeassistant/components/miele/switch.py:151:7 - error: Base classes for class "MieleSwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -19679,13 +20192,13 @@ /homeassistant/components/mobile_app/device_tracker.py:122:9 - error: "device_info" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[DeviceInfo | None]" (reportIncompatibleVariableOverride) /homeassistant/components/mobile_app/entity.py - /homeassistant/components/mobile_app/entity.py:81:9 - error: "device_info" overrides symbol of same name in class "Entity" + /homeassistant/components/mobile_app/entity.py:98:9 - error: "device_info" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[DeviceInfo | None]" (reportIncompatibleVariableOverride) /homeassistant/components/mobile_app/sensor.py /homeassistant/components/mobile_app/sensor.py:84:7 - error: Base classes for class "MobileAppSensor" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mobile_app/webhook.py - /homeassistant/components/mobile_app/webhook.py:212:19 - error: "humanize" is not a known attribute of module "voluptuous" (reportAttributeAccessIssue) - /homeassistant/components/mobile_app/webhook.py:674:27 - error: "humanize" is not a known attribute of module "voluptuous" (reportAttributeAccessIssue) + /homeassistant/components/mobile_app/webhook.py:211:19 - error: "humanize" is not a known attribute of module "voluptuous" (reportAttributeAccessIssue) + /homeassistant/components/mobile_app/webhook.py:675:27 - error: "humanize" is not a known attribute of module "voluptuous" (reportAttributeAccessIssue) /homeassistant/components/mochad/light.py /homeassistant/components/mochad/light.py:72:14 - error: "_attr_name" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant @@ -20282,115 +20795,115 @@ /homeassistant/components/mqtt/camera.py /homeassistant/components/mqtt/camera.py:77:7 - error: Base classes for class "MqttCamera" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/client.py - /homeassistant/components/mqtt/client.py:315:38 - error: Argument of type "property" cannot be assigned to parameter "num" of type "int" in function "_base62" + /homeassistant/components/mqtt/client.py:352:38 - error: Argument of type "property" cannot be assigned to parameter "num" of type "int" in function "_base62"   "property" is not assignable to "int" (reportArgumentType) - /homeassistant/components/mqtt/client.py:318:39 - error: "CallbackAPIVersion" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) - /homeassistant/components/mqtt/client.py:546:25 - error: Cannot access attribute "_socket" for class "socket" + /homeassistant/components/mqtt/client.py:355:39 - error: "CallbackAPIVersion" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/client.py:583:25 - error: Cannot access attribute "_socket" for class "socket"   Attribute "_socket" is unknown (reportAttributeAccessIssue) - /homeassistant/components/mqtt/client.py:546:25 - error: Cannot access attribute "_socket" for class "SSLSocket" + /homeassistant/components/mqtt/client.py:583:25 - error: Cannot access attribute "_socket" for class "SSLSocket"   Attribute "_socket" is unknown (reportAttributeAccessIssue) - /homeassistant/components/mqtt/client.py:1013:27 - error: "ReasonCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) - /homeassistant/components/mqtt/client.py:1014:27 - error: "Properties" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) - /homeassistant/components/mqtt/client.py:1186:28 - error: "ReasonCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) - /homeassistant/components/mqtt/client.py:1187:27 - error: "Properties" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) - /homeassistant/components/mqtt/client.py:1198:33 - error: "ReasonCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) - /homeassistant/components/mqtt/client.py:1199:27 - error: "Properties" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) - /homeassistant/components/mqtt/client.py:1223:61 - error: "MQTTErrorCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) - /homeassistant/components/mqtt/client.py:1240:27 - error: "ReasonCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) - /homeassistant/components/mqtt/client.py:1241:26 - error: "Properties" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/client.py:1055:27 - error: "ReasonCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/client.py:1056:27 - error: "Properties" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/client.py:1228:28 - error: "ReasonCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/client.py:1229:27 - error: "Properties" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/client.py:1240:33 - error: "ReasonCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/client.py:1241:27 - error: "Properties" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/client.py:1265:61 - error: "MQTTErrorCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/client.py:1282:27 - error: "ReasonCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/client.py:1283:26 - error: "Properties" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) /homeassistant/components/mqtt/climate.py /homeassistant/components/mqtt/climate.py:528:7 - error: Base classes for class "MqttClimate" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/climate.py:528:7 - error: Base classes for class "MqttClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/config_flow.py - /homeassistant/components/mqtt/config_flow.py:924:46 - error: Argument of type "Any | None" cannot be assigned to parameter "key" of type "SensorStateClass | str" in function "__getitem__" + /homeassistant/components/mqtt/config_flow.py:965:46 - error: Argument of type "Any | None" cannot be assigned to parameter "key" of type "SensorStateClass | str" in function "__getitem__"   Type "Any | None" is not assignable to type "SensorStateClass | str"     Type "None" is not assignable to type "SensorStateClass | str"       "None" is not assignable to "SensorStateClass"       "None" is not assignable to "str" (reportArgumentType) - /homeassistant/components/mqtt/config_flow.py:1140:13 - error: "unit_of_measurement" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/mqtt/config_flow.py:3847:13 - error: "reconfigure_entry" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/mqtt/config_flow.py:3854:21 - error: "reconfigure_entry" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/mqtt/config_flow.py:3865:25 - error: "reconfigure_entry" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/mqtt/config_flow.py:4093:26 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:1181:13 - error: "unit_of_measurement" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/mqtt/config_flow.py:4232:13 - error: "reconfigure_entry" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/mqtt/config_flow.py:4239:21 - error: "reconfigure_entry" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/mqtt/config_flow.py:4250:25 - error: "reconfigure_entry" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/mqtt/config_flow.py:4478:26 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4114:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4499:23 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4114:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4499:23 - error: Could not access item in TypedDict   "name" is not a required key in "MqttDeviceData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4115:27 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4500:27 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4130:26 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4515:26 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4143:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4528:23 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4173:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4558:23 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4215:30 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4600:30 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4217:33 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4602:33 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4227:17 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4612:17 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4236:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4621:23 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4236:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4621:23 - error: Could not access item in TypedDict   "name" is not a required key in "MqttDeviceData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4252:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4637:23 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4252:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4637:23 - error: Could not access item in TypedDict   "name" is not a required key in "MqttDeviceData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4259:40 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4644:40 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4282:16 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4667:16 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4284:44 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4669:44 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4293:17 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4678:17 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4303:26 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4688:26 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4360:26 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4745:26 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4409:31 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4794:31 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4436:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4821:23 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4436:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4821:23 - error: Could not access item in TypedDict   "name" is not a required key in "MqttDeviceData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4438:18 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4823:18 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4450:19 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4835:19 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4450:19 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4835:19 - error: Could not access item in TypedDict   "name" is not a required key in "MqttDeviceData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4500:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4885:23 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4500:23 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4885:23 - error: Could not access item in TypedDict   "name" is not a required key in "MqttDeviceData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4504:35 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4889:35 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4510:16 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4895:16 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4546:36 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4931:36 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4557:19 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4942:19 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4557:19 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4942:19 - error: Could not access item in TypedDict   "name" is not a required key in "MqttDeviceData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4580:45 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4965:45 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4585:35 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4970:35 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4591:17 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:4976:17 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4629:31 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:5014:31 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4635:45 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:5020:45 - error: Could not access item in TypedDict   "components" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:4640:17 - error: Could not access item in TypedDict + /homeassistant/components/mqtt/config_flow.py:5025:17 - error: Could not access item in TypedDict   "device" is not a required key in "MqttSubentryData", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/mqtt/config_flow.py:5092:27 - error: "ReasonCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) - /homeassistant/components/mqtt/config_flow.py:5093:27 - error: "Properties" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/config_flow.py:5477:27 - error: "ReasonCode" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) + /homeassistant/components/mqtt/config_flow.py:5478:27 - error: "Properties" is not exported from module "paho.mqtt.client" (reportPrivateImportUsage) /homeassistant/components/mqtt/cover.py /homeassistant/components/mqtt/cover.py:234:7 - error: Base classes for class "MqttCover" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/cover.py:234:7 - error: Base classes for class "MqttCover" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -20413,7 +20926,7 @@   "property" is not assignable to "cached_property[DeviceInfo | None]" (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/entity.py:1365:7 - error: Base classes for class "MqttEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/entity.py:1365:7 - error: Base classes for class "MqttEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/mqtt/entity.py:1642:9 - error: Method "_message_callback" overrides class "MqttAttributesMixin" in an incompatible manner + /homeassistant/components/mqtt/entity.py:1643:9 - error: Method "_message_callback" overrides class "MqttAttributesMixin" in an incompatible manner   Positional parameter count mismatch; base method has 3, but override has 4   Parameter 2 type mismatch: base parameter is type "set[str] | None", override parameter is type "MessageCallbackType"   Parameter 3 type mismatch: base parameter is type "ReceiveMessage", override parameter is type "set[str] | None" @@ -20422,7 +20935,7 @@     Type "ReceiveMessage" is not assignable to type "set[str] | None"       "ReceiveMessage" is not assignable to "set[str]"       "ReceiveMessage" is not assignable to "None" (reportIncompatibleMethodOverride) - /homeassistant/components/mqtt/entity.py:1642:9 - error: Method "_message_callback" overrides class "MqttAvailabilityMixin" in an incompatible manner + /homeassistant/components/mqtt/entity.py:1643:9 - error: Method "_message_callback" overrides class "MqttAvailabilityMixin" in an incompatible manner   Positional parameter count mismatch; base method has 3, but override has 4   Parameter 2 type mismatch: base parameter is type "set[str] | None", override parameter is type "MessageCallbackType"   Parameter 3 type mismatch: base parameter is type "ReceiveMessage", override parameter is type "set[str] | None" @@ -20431,7 +20944,7 @@     Type "ReceiveMessage" is not assignable to type "set[str] | None"       "ReceiveMessage" is not assignable to "set[str]"       "ReceiveMessage" is not assignable to "None" (reportIncompatibleMethodOverride) - /homeassistant/components/mqtt/entity.py:1667:64 - error: "attrs_snapshot" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/mqtt/entity.py:1668:64 - error: "attrs_snapshot" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/mqtt/event.py /homeassistant/components/mqtt/event.py:90:7 - error: Base classes for class "MqttEvent" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/event.py:90:7 - error: Base classes for class "MqttEvent" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -20526,8 +21039,8 @@ /homeassistant/components/mqtt/tag.py /homeassistant/components/mqtt/tag.py:90:9 - error: "tags" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/mqtt/text.py - /homeassistant/components/mqtt/text.py:112:7 - error: Base classes for class "MqttTextEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/mqtt/text.py:112:7 - error: Base classes for class "MqttTextEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/mqtt/text.py:114:7 - error: Base classes for class "MqttTextEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/mqtt/text.py:114:7 - error: Base classes for class "MqttTextEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/update.py /homeassistant/components/mqtt/update.py:99:7 - error: Base classes for class "MqttUpdate" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/update.py:99:7 - error: Base classes for class "MqttUpdate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -20548,11 +21061,11 @@ /homeassistant/components/mqtt/vacuum.py:193:7 - error: Base classes for class "MqttStateVacuum" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/vacuum.py:193:7 - error: Base classes for class "MqttStateVacuum" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/valve.py - /homeassistant/components/mqtt/valve.py:153:7 - error: Base classes for class "MqttValve" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/mqtt/valve.py:153:7 - error: Base classes for class "MqttValve" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/mqtt/valve.py:156:7 - error: Base classes for class "MqttValve" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/mqtt/valve.py:156:7 - error: Base classes for class "MqttValve" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt/water_heater.py - /homeassistant/components/mqtt/water_heater.py:183:7 - error: Base classes for class "MqttWaterHeater" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/mqtt/water_heater.py:183:7 - error: Base classes for class "MqttWaterHeater" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/mqtt/water_heater.py:184:7 - error: Base classes for class "MqttWaterHeater" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/mqtt/water_heater.py:184:7 - error: Base classes for class "MqttWaterHeater" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mqtt_room/sensor.py /homeassistant/components/mqtt_room/sensor.py:171:9 - error: "name" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | UndefinedType | None]" (reportIncompatibleVariableOverride) @@ -20566,9 +21079,6 @@ /homeassistant/components/mullvad/binary_sensor.py:42:7 - error: Base classes for class "MullvadBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mullvad/binary_sensor.py:64:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) -/homeassistant/components/music_assistant/__init__.py - /homeassistant/components/music_assistant/__init__.py:10:36 - error: "MusicAssistantClient" is not exported from module "music_assistant_client" -   Import from "music_assistant_client.client" instead (reportPrivateImportUsage) /homeassistant/components/music_assistant/button.py /homeassistant/components/music_assistant/button.py:36:7 - error: Base classes for class "MusicAssistantFavoriteButton" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/music_assistant/button.py:36:7 - error: Base classes for class "MusicAssistantFavoriteButton" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -20576,86 +21086,79 @@   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/music_assistant/config_flow.py - /homeassistant/components/music_assistant/config_flow.py:7:36 - error: "MusicAssistantClient" is not exported from module "music_assistant_client" -   Import from "music_assistant_client.client" instead (reportPrivateImportUsage) + /homeassistant/components/music_assistant/config_flow.py:104:65 - error: Argument of type "str | None" cannot be assigned to parameter "url" of type "str" in function "_get_server_info" +   Type "str | None" is not assignable to type "str" +     "None" is not assignable to "str" (reportArgumentType) + /homeassistant/components/music_assistant/config_flow.py:369:61 - error: Argument of type "str | None" cannot be assigned to parameter "token" of type "str" in function "_test_connection" +   Type "str | None" is not assignable to type "str" +     "None" is not assignable to "str" (reportArgumentType) /homeassistant/components/music_assistant/entity.py - /homeassistant/components/music_assistant/entity.py:17:40 - error: "MusicAssistantClient" is not exported from module "music_assistant_client" -   Import from "music_assistant_client.client" instead (reportPrivateImportUsage) /homeassistant/components/music_assistant/entity.py:62:9 - error: "unique_id" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/music_assistant/entity.py:70:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) -/homeassistant/components/music_assistant/media_browser.py - /homeassistant/components/music_assistant/media_browser.py:26:40 - error: "MusicAssistantClient" is not exported from module "music_assistant_client" -   Import from "music_assistant_client.client" instead (reportPrivateImportUsage) /homeassistant/components/music_assistant/media_player.py - /homeassistant/components/music_assistant/media_player.py:185:7 - error: Base classes for class "MusicAssistantPlayer" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/music_assistant/media_player.py:185:7 - error: Base classes for class "MusicAssistantPlayer" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/music_assistant/media_player.py:243:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/music_assistant/media_player.py:128:7 - error: Base classes for class "MusicAssistantPlayer" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/music_assistant/media_player.py:128:7 - error: Base classes for class "MusicAssistantPlayer" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/music_assistant/media_player.py:186:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/music_assistant/media_player.py:307:15 - error: Method "async_media_play" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:250:15 - error: Method "async_media_play" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:312:15 - error: Method "async_media_pause" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:255:15 - error: Method "async_media_pause" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:317:15 - error: Method "async_media_stop" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:260:15 - error: Method "async_media_stop" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:322:15 - error: Method "async_media_next_track" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:265:15 - error: Method "async_media_next_track" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:327:15 - error: Method "async_media_previous_track" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:270:15 - error: Method "async_media_previous_track" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:332:15 - error: Method "async_media_seek" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:275:15 - error: Method "async_media_seek" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:338:15 - error: Method "async_mute_volume" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:281:15 - error: Method "async_mute_volume" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:343:15 - error: Method "async_set_volume_level" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:286:15 - error: Method "async_set_volume_level" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:349:15 - error: Method "async_volume_up" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:292:15 - error: Method "async_volume_up" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:354:15 - error: Method "async_volume_down" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:297:15 - error: Method "async_volume_down" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:359:15 - error: Method "async_turn_on" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:302:15 - error: Method "async_turn_on" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:364:15 - error: Method "async_turn_off" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:307:15 - error: Method "async_turn_off" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:369:15 - error: Method "async_set_shuffle" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:312:15 - error: Method "async_set_shuffle" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:378:15 - error: Method "async_set_repeat" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:321:15 - error: Method "async_set_repeat" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:387:15 - error: Method "async_clear_playlist" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:330:15 - error: Method "async_clear_playlist" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:395:15 - error: Method "async_play_media" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:338:15 - error: Method "async_play_media" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:429:15 - error: Method "async_join_players" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:372:15 - error: Method "async_join_players" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:442:15 - error: Method "async_unjoin_player" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:385:15 - error: Method "async_unjoin_player" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/music_assistant/media_player.py:447:15 - error: Method "async_select_source" overrides class "MediaPlayerEntity" in an incompatible manner + /homeassistant/components/music_assistant/media_player.py:390:15 - error: Method "async_select_source" overrides class "MediaPlayerEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) -/homeassistant/components/music_assistant/schemas.py - /homeassistant/components/music_assistant/schemas.py:57:40 - error: "MusicAssistantClient" is not exported from module "music_assistant_client" -   Import from "music_assistant_client.client" instead (reportPrivateImportUsage) -/homeassistant/components/music_assistant/services.py - /homeassistant/components/music_assistant/services.py:52:40 - error: "MusicAssistantClient" is not exported from module "music_assistant_client" -   Import from "music_assistant_client.client" instead (reportPrivateImportUsage) /homeassistant/components/mutesync/binary_sensor.py /homeassistant/components/mutesync/binary_sensor.py:30:7 - error: Base classes for class "MuteStatus" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/mutesync/binary_sensor.py:51:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" @@ -20824,17 +21327,21 @@ /homeassistant/components/mystrom/binary_sensor.py:92:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/mystrom/sensor.py - /homeassistant/components/mystrom/sensor.py:63:29 - error: Type "MyStromSwitch | MyStromBulb" is not assignable to declared type "MyStromSwitch" + /homeassistant/components/mystrom/sensor.py:80:29 - error: Type "MyStromSwitch | MyStromBulb" is not assignable to declared type "MyStromSwitch"   Type "MyStromSwitch | MyStromBulb" is not assignable to type "MyStromSwitch"     "MyStromBulb" is not assignable to "MyStromSwitch" (reportAssignmentType) - /homeassistant/components/mystrom/sensor.py:87:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" -   Variable is mutable so its type is invariant -     Override type "MyStromSwitchSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/mystrom/sensor.py:91:35 - error: Argument of type "set[tuple[Literal['mystrom'], str | None]]" cannot be assigned to parameter "identifiers" of type "set[tuple[str, str]]" in function "__init__" + /homeassistant/components/mystrom/sensor.py:108:35 - error: Argument of type "set[tuple[Literal['mystrom'], str | None]]" cannot be assigned to parameter "identifiers" of type "set[tuple[str, str]]" in function "__init__"   Type "str | None" is not assignable to type "str"     "None" is not assignable to "str" (reportArgumentType) - /homeassistant/components/mystrom/sensor.py:98:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/mystrom/sensor.py:129:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" +   Variable is mutable so its type is invariant +     Override type "MyStromSwitchSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/mystrom/sensor.py:132:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) + /homeassistant/components/mystrom/sensor.py:159:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) + /homeassistant/components/mystrom/sensor.py:177:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" +   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/myuplink/__init__.py /homeassistant/components/myuplink/__init__.py:10:22 - error: "MyUplinkAPI" is not exported from module "myuplink"   Import from "myuplink.api" instead (reportPrivateImportUsage) @@ -21048,13 +21555,30 @@   "str" is not assignable to "int" (reportArgumentType) /homeassistant/components/neato/vacuum.py:384:45 - error: Argument of type "str" cannot be assigned to parameter "navigation_mode" of type "int" in function "start_cleaning"   "str" is not assignable to "int" (reportArgumentType) +/homeassistant/components/nederlandse_spoorwegen/binary_sensor.py + /homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:90:7 - error: Base classes for class "NSBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:105:14 - error: "entity_description" overrides symbol of same name in class "Entity" +   Variable is mutable so its type is invariant +     Override type "NSBinarySensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:105:14 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" +   Variable is mutable so its type is invariant +     Override type "NSBinarySensorEntityDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/nederlandse_spoorwegen/binary_sensor.py:116:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" +   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/nederlandse_spoorwegen/sensor.py - /homeassistant/components/nederlandse_spoorwegen/sensor.py:129:7 - error: Base classes for class "NSDepartureSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/nederlandse_spoorwegen/sensor.py:154:9 - error: "name" overrides symbol of same name in class "Entity" -   "property" is not assignable to "cached_property[str | UndefinedType | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/nederlandse_spoorwegen/sensor.py:159:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/nederlandse_spoorwegen/sensor.py:179:47 - error: Argument of type "Any | None" cannot be assigned to parameter "key" of type "str" in function "get" +   Type "Any | None" is not assignable to type "str" +     "None" is not assignable to "str" (reportArgumentType) + /homeassistant/components/nederlandse_spoorwegen/sensor.py:266:7 - error: Base classes for class "NSSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/nederlandse_spoorwegen/sensor.py:281:14 - error: "entity_description" overrides symbol of same name in class "Entity" +   Variable is mutable so its type is invariant +     Override type "NSSensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/nederlandse_spoorwegen/sensor.py:281:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" +   Variable is mutable so its type is invariant +     Override type "NSSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/nederlandse_spoorwegen/sensor.py:294:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/nederlandse_spoorwegen/sensor.py:171:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/nederlandse_spoorwegen/sensor.py:307:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/ness_alarm/alarm_control_panel.py /homeassistant/components/ness_alarm/alarm_control_panel.py:74:35 - error: Argument of type "str | None" cannot be assigned to parameter "code" of type "str" in function "disarm" @@ -22256,23 +22780,23 @@   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/octoprint/sensor.py:152:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/octoprint/sensor.py:176:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/octoprint/sensor.py:177:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/octoprint/sensor.py:205:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/octoprint/sensor.py:207:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/octoprint/sensor.py:243:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/octoprint/sensor.py:246:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/octoprint/sensor.py:281:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/octoprint/sensor.py:286:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/octoprint/sensor.py:285:29 - error: "name" is not a known attribute of "None" (reportOptionalMemberAccess) - /homeassistant/components/octoprint/sensor.py:293:16 - error: Type "str | None" is not assignable to return type "bool" + /homeassistant/components/octoprint/sensor.py:290:29 - error: "name" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/octoprint/sensor.py:298:16 - error: Type "str | None" is not assignable to return type "bool"   Type "str | None" is not assignable to type "bool"     "str" is not assignable to "bool" (reportReturnType) - /homeassistant/components/octoprint/sensor.py:293:37 - error: "name" is not a known attribute of "None" (reportOptionalMemberAccess) - /homeassistant/components/octoprint/sensor.py:312:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/octoprint/sensor.py:298:37 - error: "name" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/octoprint/sensor.py:317:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/octoprint/sensor.py:316:29 - error: "size" is not a known attribute of "None" (reportOptionalMemberAccess) - /homeassistant/components/octoprint/sensor.py:324:37 - error: "size" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/octoprint/sensor.py:321:29 - error: "size" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/octoprint/sensor.py:329:37 - error: "size" is not a known attribute of "None" (reportOptionalMemberAccess) /homeassistant/components/oem/climate.py /homeassistant/components/oem/climate.py:7:6 - error: Import "oemthermostat" could not be resolved (reportMissingImports) /homeassistant/components/oem/climate.py:89:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity" @@ -22328,14 +22852,14 @@ /homeassistant/components/ohme/select.py:92:9 - error: "current_option" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/ohme/sensor.py - /homeassistant/components/ohme/sensor.py:127:7 - error: Base classes for class "OhmeSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/ohme/sensor.py:130:5 - error: "entity_description" overrides symbol of same name in class "OhmeEntity" + /homeassistant/components/ohme/sensor.py:110:7 - error: Base classes for class "OhmeSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/ohme/sensor.py:113:5 - error: "entity_description" overrides symbol of same name in class "OhmeEntity"   Variable is mutable so its type is invariant     Override type "OhmeSensorDescription" is not the same as base type "OhmeEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/ohme/sensor.py:130:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/ohme/sensor.py:113:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "OhmeSensorDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/ohme/sensor.py:133:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/ohme/sensor.py:116:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/ohme/switch.py /homeassistant/components/ohme/switch.py:95:7 - error: Base classes for class "OhmeSwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -24496,22 +25020,34 @@ /homeassistant/components/point/sensor.py:71:7 - error: Base classes for class "MinutPointSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/point/sensor.py:86:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) +/homeassistant/components/pooldose/binary_sensor.py + /homeassistant/components/pooldose/binary_sensor.py:106:26 - error: Could not access item in TypedDict +   "binary_sensor" is not a required key in "StructuredValuesDict", so access may result in runtime exception (reportTypedDictNotRequiredAccess) + /homeassistant/components/pooldose/binary_sensor.py:122:7 - error: Base classes for class "PooldoseBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/pooldose/binary_sensor.py:126:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" +   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/pooldose/entity.py /homeassistant/components/pooldose/entity.py:41:23 - error: Could not access item in TypedDict   "IP" is not a required key in "DeviceInfoDict", so access may result in runtime exception (reportTypedDictNotRequiredAccess) +/homeassistant/components/pooldose/number.py + /homeassistant/components/pooldose/number.py:111:7 - error: Base classes for class "PooldoseNumber" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/pooldose/sensor.py - /homeassistant/components/pooldose/sensor.py:189:19 - error: Could not access item in TypedDict + /homeassistant/components/pooldose/sensor.py:197:19 - error: Could not access item in TypedDict   "sensor" is not a required key in "StructuredValuesDict", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/pooldose/sensor.py:205:7 - error: Base classes for class "PooldoseSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/pooldose/sensor.py:208:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/pooldose/sensor.py:213:7 - error: Base classes for class "PooldoseSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/pooldose/sensor.py:216:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "PooldoseSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/pooldose/sensor.py:211:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/pooldose/sensor.py:219:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/pooldose/sensor.py:215:20 - error: Could not access item in TypedDict + /homeassistant/components/pooldose/sensor.py:223:20 - error: Could not access item in TypedDict   "value" is not a required key in "ValueDict", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/pooldose/sensor.py:219:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/pooldose/sensor.py:227:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/pooldose/switch.py + /homeassistant/components/pooldose/switch.py:51:19 - error: Could not access item in TypedDict +   "switch" is not a required key in "StructuredValuesDict", so access may result in runtime exception (reportTypedDictNotRequiredAccess) + /homeassistant/components/pooldose/switch.py:61:7 - error: Base classes for class "PooldoseSwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/poolsense/binary_sensor.py /homeassistant/components/poolsense/binary_sensor.py:44:7 - error: Base classes for class "PoolSenseBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/poolsense/binary_sensor.py:48:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" @@ -24776,8 +25312,8 @@ /homeassistant/components/proliphix/climate.py:117:9 - error: "hvac_modes" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[list[HVACMode]]" (reportIncompatibleVariableOverride) /homeassistant/components/prometheus/__init__.py - /homeassistant/components/prometheus/__init__.py:679:12 - error: "metric" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/prometheus/__init__.py:692:17 - error: "metric" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/prometheus/__init__.py:812:12 - error: "metric" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/prometheus/__init__.py:825:17 - error: "metric" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/proximity/coordinator.py /homeassistant/components/proximity/coordinator.py:126:37 - error: Could not access item in TypedDict   "old_entity_id" is not a required key in "_EventEntityRegistryUpdatedData_Update", so access may result in runtime exception (reportTypedDictNotRequiredAccess) @@ -25053,6 +25589,8 @@ /homeassistant/components/qingping/sensor.py:169:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/qld_bushfire/geo_location.py + /homeassistant/components/qld_bushfire/geo_location.py:215:31 - error: Object of type "None" is not subscriptable (reportOptionalSubscript) + /homeassistant/components/qld_bushfire/geo_location.py:216:32 - error: Object of type "None" is not subscriptable (reportOptionalSubscript) /homeassistant/components/qld_bushfire/geo_location.py:224:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/qnap/coordinator.py @@ -25891,7 +26429,7 @@ /homeassistant/components/reolink/host.py /homeassistant/components/reolink/host.py:15:34 - error: "DEFAULT_BC_PORT" is not exported from module "reolink_aio.baichuan"   Import from "reolink_aio.baichuan.util" instead (reportPrivateImportUsage) - /homeassistant/components/reolink/host.py:822:56 - error: Argument of type "HassJob[(*_: Any), CoroutineType[Any, Any, None]]" cannot be assigned to parameter "action" of type "HassJob[(datetime), Coroutine[Any, Any, None] | None] | ((datetime) -> (Coroutine[Any, Any, None] | None))" in function "async_call_later" + /homeassistant/components/reolink/host.py:826:56 - error: Argument of type "HassJob[(*_: Any), CoroutineType[Any, Any, None]]" cannot be assigned to parameter "action" of type "HassJob[(datetime), Coroutine[Any, Any, None] | None] | ((datetime) -> (Coroutine[Any, Any, None] | None))" in function "async_call_later"   Type "HassJob[(*_: Any), CoroutineType[Any, Any, None]]" is not assignable to type "HassJob[(datetime), Coroutine[Any, Any, None] | None] | ((datetime) -> (Coroutine[Any, Any, None] | None))"     "HassJob[(*_: Any), CoroutineType[Any, Any, None]]" is not assignable to "HassJob[(datetime), Coroutine[Any, Any, None] | None]"       Type parameter "_R_co@HassJob" is invariant, but "CoroutineType[Any, Any, None]" is not the same as "Coroutine[Any, Any, None] | None" @@ -26699,129 +27237,120 @@   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/rmvtransport/sensor.py:189:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) -/homeassistant/components/roborock/__init__.py - /homeassistant/components/roborock/__init__.py:20:39 - error: "RoborockMqttClientA01" is not exported from module "roborock.version_a01_apis" -   Import from "roborock.version_a01_apis.roborock_mqtt_client_a01" instead (reportPrivateImportUsage) /homeassistant/components/roborock/binary_sensor.py - /homeassistant/components/roborock/binary_sensor.py:99:7 - error: Base classes for class "RoborockBinarySensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/binary_sensor.py:115:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/roborock/binary_sensor.py:101:7 - error: Base classes for class "RoborockBinarySensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/roborock/binary_sensor.py:117:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RoborockBinarySensorDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/binary_sensor.py:115:14 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/roborock/binary_sensor.py:117:14 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "RoborockBinarySensorDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/binary_sensor.py:118:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/roborock/binary_sensor.py:120:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/roborock/button.py - /homeassistant/components/roborock/button.py:120:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/roborock/button.py:121:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RoborockButtonDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/button.py:120:14 - error: "entity_description" overrides symbol of same name in class "ButtonEntity" + /homeassistant/components/roborock/button.py:121:14 - error: "entity_description" overrides symbol of same name in class "ButtonEntity"   Variable is mutable so its type is invariant     Override type "RoborockButtonDescription" is not the same as base type "ButtonEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/button.py:145:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/roborock/button.py:158:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "ButtonEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) -/homeassistant/components/roborock/coordinator.py - /homeassistant/components/roborock/coordinator.py:27:39 - error: "RoborockClientA01" is not exported from module "roborock.version_a01_apis" -   Import from "roborock.version_a01_apis.roborock_client_a01" instead (reportPrivateImportUsage) /homeassistant/components/roborock/entity.py - /homeassistant/components/roborock/entity.py:17:39 - error: "RoborockClientA01" is not exported from module "roborock.version_a01_apis" -   Import from "roborock.version_a01_apis.roborock_client_a01" instead (reportPrivateImportUsage) - /homeassistant/components/roborock/entity.py:135:36 - error: Argument of type "Self@RoborockCoordinatedEntityV1" cannot be assigned to parameter "self" of type "CoordinatorEntity[DataUpdateCoordinator[dict[str, Any]]]" in function "__init__" + /homeassistant/components/roborock/entity.py:89:36 - error: Argument of type "Self@RoborockCoordinatedEntityV1" cannot be assigned to parameter "self" of type "CoordinatorEntity[DataUpdateCoordinator[dict[str, Any]]]" in function "__init__"   "RoborockCoordinatedEntityV1*" is not assignable to "CoordinatorEntity[DataUpdateCoordinator[dict[str, Any]]]"     Type parameter "_DataUpdateCoordinatorT@CoordinatorEntity" is invariant, but "RoborockDataUpdateCoordinator" is not the same as "DataUpdateCoordinator[dict[str, Any]]" (reportArgumentType) - /homeassistant/components/roborock/entity.py:135:54 - error: Argument of type "RoborockDataUpdateCoordinator" cannot be assigned to parameter "coordinator" of type "DataUpdateCoordinator[dict[str, Any]]" in function "__init__" + /homeassistant/components/roborock/entity.py:89:54 - error: Argument of type "RoborockDataUpdateCoordinator" cannot be assigned to parameter "coordinator" of type "DataUpdateCoordinator[dict[str, Any]]" in function "__init__"   "RoborockDataUpdateCoordinator" is not assignable to "DataUpdateCoordinator[dict[str, Any]]" -     Type parameter "_DataT@DataUpdateCoordinator" is invariant, but "DeviceProp" is not the same as "dict[str, Any]" (reportArgumentType) - /homeassistant/components/roborock/entity.py:206:36 - error: Argument of type "Self@RoborockCoordinatedEntityA01" cannot be assigned to parameter "self" of type "CoordinatorEntity[DataUpdateCoordinator[dict[str, Any]]]" in function "__init__" +     Type parameter "_DataT@DataUpdateCoordinator" is invariant, but "DeviceState" is not the same as "dict[str, Any]" (reportArgumentType) + /homeassistant/components/roborock/entity.py:125:36 - error: Argument of type "Self@RoborockCoordinatedEntityA01" cannot be assigned to parameter "self" of type "CoordinatorEntity[DataUpdateCoordinator[dict[str, Any]]]" in function "__init__"   "RoborockCoordinatedEntityA01*" is not assignable to "CoordinatorEntity[DataUpdateCoordinator[dict[str, Any]]]" -     Type parameter "_DataUpdateCoordinatorT@CoordinatorEntity" is invariant, but "RoborockDataUpdateCoordinatorA01" is not the same as "DataUpdateCoordinator[dict[str, Any]]" (reportArgumentType) - /homeassistant/components/roborock/entity.py:206:54 - error: Argument of type "RoborockDataUpdateCoordinatorA01" cannot be assigned to parameter "coordinator" of type "DataUpdateCoordinator[dict[str, Any]]" in function "__init__" -   "RoborockDataUpdateCoordinatorA01" is not assignable to "DataUpdateCoordinator[dict[str, Any]]" -     Type parameter "_DataT@DataUpdateCoordinator" is invariant, but "dict[RoborockDyadDataProtocol | RoborockZeoProtocol, StateType]" is not the same as "dict[str, Any]" (reportArgumentType) +     Type parameter "_DataUpdateCoordinatorT@CoordinatorEntity" is invariant, but "RoborockDataUpdateCoordinatorA01[Unknown]" is not the same as "DataUpdateCoordinator[dict[str, Any]]" (reportArgumentType) /homeassistant/components/roborock/image.py - /homeassistant/components/roborock/image.py:42:7 - error: Base classes for class "RoborockMap" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/image.py:46:5 - error: "image_last_updated" overrides symbol of same name in class "ImageEntity" + /homeassistant/components/roborock/image.py:47:7 - error: Base classes for class "RoborockMap" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/roborock/image.py:51:5 - error: "image_last_updated" overrides symbol of same name in class "ImageEntity"   Variable is mutable so its type is invariant     Override type "datetime" is not the same as base type "cached_property" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/image.py:61:14 - error: "_attr_name" overrides symbol of same name in class "Entity" + /homeassistant/components/roborock/image.py:71:14 - error: "_attr_name" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "str" is not the same as base type "str | None" (reportIncompatibleVariableOverride) /homeassistant/components/roborock/number.py - /homeassistant/components/roborock/number.py:102:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/roborock/number.py:89:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RoborockNumberDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/number.py:102:14 - error: "entity_description" overrides symbol of same name in class "NumberEntity" + /homeassistant/components/roborock/number.py:89:14 - error: "entity_description" overrides symbol of same name in class "NumberEntity"   Variable is mutable so its type is invariant     Override type "RoborockNumberDescription" is not the same as base type "NumberEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/number.py:106:9 - error: "native_value" overrides symbol of same name in class "NumberEntity" + /homeassistant/components/roborock/number.py:96:9 - error: "native_value" overrides symbol of same name in class "NumberEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) /homeassistant/components/roborock/select.py - /homeassistant/components/roborock/select.py:74:26 - error: Argument of type "(key: str, _: DeviceProp) -> list[int | None]" cannot be assigned to parameter "parameter_lambda" of type "(str, DeviceProp) -> list[int]" in function "__init__" -   Type "(key: str, _: DeviceProp) -> list[int | None]" is not assignable to type "(str, DeviceProp) -> list[int]" + /homeassistant/components/roborock/select.py:83:26 - error: Argument of type "(key: str, _: PropertiesApi) -> list[int | None]" cannot be assigned to parameter "parameter_lambda" of type "(str, PropertiesApi) -> list[int]" in function "__init__" +   Type "(key: str, _: PropertiesApi) -> list[int | None]" is not assignable to type "(str, PropertiesApi) -> list[int]"     Function return type "list[int | None]" is incompatible with type "list[int]"       "list[int | None]" is not assignable to "list[int]"         Type parameter "_T@list" is invariant, but "int | None" is not the same as "int"         Consider switching from "list" to "Sequence" which is covariant (reportArgumentType) - /homeassistant/components/roborock/select.py:108:7 - error: Base classes for class "RoborockSelectEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/select.py:120:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/roborock/select.py:117:7 - error: Base classes for class "RoborockSelectEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/roborock/select.py:129:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RoborockSelectDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/select.py:120:14 - error: "entity_description" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/roborock/select.py:129:14 - error: "entity_description" overrides symbol of same name in class "SelectEntity"   Variable is mutable so its type is invariant     Override type "RoborockSelectDescription" is not the same as base type "SelectEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/select.py:137:9 - error: "current_option" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/roborock/select.py:147:9 - error: "current_option" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/select.py:142:7 - error: Base classes for class "RoborockCurrentMapSelectEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/select.py:167:9 - error: "options" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/roborock/select.py:152:7 - error: Base classes for class "RoborockCurrentMapSelectEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/roborock/select.py:205:9 - error: "options" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[list[str]]" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/select.py:172:9 - error: "current_option" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/roborock/select.py:210:9 - error: "current_option" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/roborock/sensor.py - /homeassistant/components/roborock/sensor.py:365:7 - error: Base classes for class "RoborockSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/sensor.py:376:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/roborock/sensor.py:360:7 - error: Base classes for class "RoborockSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/roborock/sensor.py:371:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RoborockSensorDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/sensor.py:376:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/roborock/sensor.py:371:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "RoborockSensorDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/sensor.py:385:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/roborock/sensor.py:379:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/sensor.py:392:7 - error: Base classes for class "RoborockCurrentRoom" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/sensor.py:412:9 - error: "options" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/roborock/sensor.py:384:7 - error: Base classes for class "RoborockCurrentRoom" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/roborock/sensor.py:405:9 - error: "options" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/sensor.py:424:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/roborock/sensor.py:412:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/sensor.py:434:7 - error: Base classes for class "RoborockSensorEntityA01" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/sensor.py:445:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/roborock/sensor.py:425:7 - error: Base classes for class "RoborockSensorEntityA01" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/roborock/sensor.py:436:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RoborockSensorDescriptionA01" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/sensor.py:445:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/roborock/sensor.py:436:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "RoborockSensorDescriptionA01" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/sensor.py:449:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/roborock/sensor.py:440:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/roborock/switch.py - /homeassistant/components/roborock/switch.py:155:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/roborock/switch.py:104:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RoborockSwitchDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/switch.py:155:14 - error: "entity_description" overrides symbol of same name in class "SwitchEntity" + /homeassistant/components/roborock/switch.py:104:14 - error: "entity_description" overrides symbol of same name in class "SwitchEntity"   Variable is mutable so its type is invariant     Override type "RoborockSwitchDescription" is not the same as base type "SwitchEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/switch.py:189:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/roborock/switch.py:137:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/roborock/time.py - /homeassistant/components/roborock/time.py:166:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/roborock/time.py:152:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RoborockTimeDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/time.py:166:14 - error: "entity_description" overrides symbol of same name in class "TimeEntity" + /homeassistant/components/roborock/time.py:152:14 - error: "entity_description" overrides symbol of same name in class "TimeEntity"   Variable is mutable so its type is invariant     Override type "RoborockTimeDescription" is not the same as base type "TimeEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/roborock/time.py:170:9 - error: "native_value" overrides symbol of same name in class "TimeEntity" + /homeassistant/components/roborock/time.py:159:9 - error: "native_value" overrides symbol of same name in class "TimeEntity"   "property" is not assignable to "cached_property[time | None]" (reportIncompatibleVariableOverride) /homeassistant/components/roborock/vacuum.py /homeassistant/components/roborock/vacuum.py:99:7 - error: Base classes for class "RoborockVacuum" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/roborock/vacuum.py:130:9 - error: "fan_speed_list" overrides symbol of same name in class "StateVacuumEntity" +   "property" is not assignable to "cached_property[list[str]]" (reportIncompatibleVariableOverride) /homeassistant/components/roborock/vacuum.py:135:9 - error: "activity" overrides symbol of same name in class "StateVacuumEntity"   "property" is not assignable to "cached_property[VacuumActivity | None]" (reportIncompatibleVariableOverride) /homeassistant/components/roborock/vacuum.py:141:9 - error: "fan_speed" overrides symbol of same name in class "StateVacuumEntity" @@ -27018,9 +27547,6 @@ /homeassistant/components/rova/sensor.py:59:7 - error: Base classes for class "RovaSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/rova/sensor.py:81:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) -/homeassistant/components/rpi_camera/camera.py - /homeassistant/components/rpi_camera/camera.py:154:9 - error: "frame_interval" overrides symbol of same name in class "Camera" -   "property" is not assignable to "cached_property[float]" (reportIncompatibleVariableOverride) /homeassistant/components/rpi_power/binary_sensor.py /homeassistant/components/rpi_power/binary_sensor.py:35:54 - error: Argument of type "UnderVoltage | None" cannot be assigned to parameter "under_voltage" of type "UnderVoltage" in function "__init__"   Type "UnderVoltage | None" is not assignable to type "UnderVoltage" @@ -27196,15 +27722,31 @@ /homeassistant/components/sanix/sensor.py:123:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/saunum/climate.py - /homeassistant/components/saunum/climate.py:41:7 - error: Base classes for class "LeilSaunaClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/saunum/climate.py:52:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/saunum/climate.py:51:7 - error: Base classes for class "LeilSaunaClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/saunum/climate.py:65:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/saunum/climate.py:57:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/saunum/climate.py:70:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/saunum/climate.py:62:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/saunum/climate.py:75:9 - error: "fan_mode" overrides symbol of same name in class "ClimateEntity" +   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/saunum/climate.py:83:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACMode | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/saunum/climate.py:68:9 - error: "hvac_action" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/saunum/climate.py:89:9 - error: "hvac_action" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACAction | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/saunum/light.py + /homeassistant/components/saunum/light.py:31:7 - error: Base classes for class "LeilSaunaLight" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/saunum/light.py:45:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" +   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/saunum/sensor.py + /homeassistant/components/saunum/sensor.py:81:7 - error: Base classes for class "LeilSaunaSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/saunum/sensor.py:94:14 - error: "entity_description" overrides symbol of same name in class "Entity" +   Variable is mutable so its type is invariant +     Override type "LeilSaunaSensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/saunum/sensor.py:94:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" +   Variable is mutable so its type is invariant +     Override type "LeilSaunaSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/saunum/sensor.py:97:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/scene/__init__.py /homeassistant/components/scene/__init__.py:105:9 - error: "state" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[StateType]" (reportIncompatibleVariableOverride) @@ -27486,17 +28028,17 @@   Variable is mutable so its type is invariant     Override type "ScreenLogicCircuitSwitchDescription" is not the same as base type "SwitchEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/script/__init__.py - /homeassistant/components/script/__init__.py:540:7 - error: Base classes for class "ScriptEntity" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/script/__init__.py:540:7 - error: Base classes for class "ScriptEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/script/__init__.py:540:7 - error: Base classes for class "ScriptEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/script/__init__.py:543:12 - error: Type "None" is not assignable to declared type "cached_property" + /homeassistant/components/script/__init__.py:556:7 - error: Base classes for class "ScriptEntity" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/script/__init__.py:556:7 - error: Base classes for class "ScriptEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/script/__init__.py:556:7 - error: Base classes for class "ScriptEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/script/__init__.py:559:12 - error: Type "None" is not assignable to declared type "cached_property"   "None" is not assignable to "cached_property[str | None]" (reportAssignmentType) - /homeassistant/components/script/__init__.py:561:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity" + /homeassistant/components/script/__init__.py:577:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "str" is not the same as base type "str | None" (reportIncompatibleVariableOverride) - /homeassistant/components/script/__init__.py:584:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/script/__init__.py:600:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/script/__init__.py:599:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/script/__init__.py:615:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/scsgate/__init__.py /homeassistant/components/scsgate/__init__.py:6:6 - error: Import "scsgate.connection" could not be resolved (reportMissingImports) @@ -27848,27 +28390,27 @@ /homeassistant/components/seventeentrack/services.py:141:44 - error: Cannot access attribute "isoformat" for class "str"   Attribute "isoformat" is unknown (reportAttributeAccessIssue) /homeassistant/components/sfr_box/binary_sensor.py - /homeassistant/components/sfr_box/binary_sensor.py:89:7 - error: Base classes for class "SFRBoxBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/sfr_box/binary_sensor.py:92:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/sfr_box/binary_sensor.py:92:7 - error: Base classes for class "SFRBoxBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/sfr_box/binary_sensor.py:95:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "SFRBoxBinarySensorEntityDescription[_T@SFRBoxBinarySensor]" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/sfr_box/binary_sensor.py:95:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/sfr_box/binary_sensor.py:98:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/sfr_box/button.py - /homeassistant/components/sfr_box/button.py:85:5 - error: "entity_description" overrides symbol of same name in class "ButtonEntity" + /homeassistant/components/sfr_box/button.py:94:5 - error: "entity_description" overrides symbol of same name in class "ButtonEntity"   Variable is mutable so its type is invariant     Override type "SFRBoxButtonEntityDescription" is not the same as base type "ButtonEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/sfr_box/button.py:98:15 - error: Method "async_press" overrides class "ButtonEntity" in an incompatible manner + /homeassistant/components/sfr_box/button.py:107:15 - error: Method "async_press" overrides class "ButtonEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/sfr_box/entity.py /homeassistant/components/sfr_box/entity.py:29:7 - error: Base classes for class "SFRCoordinatorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/sfr_box/sensor.py - /homeassistant/components/sfr_box/sensor.py:245:7 - error: Base classes for class "SFRBoxSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/sfr_box/sensor.py:248:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/sfr_box/sensor.py:244:7 - error: Base classes for class "SFRBoxSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/sfr_box/sensor.py:247:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "SFRBoxSensorEntityDescription[_T@SFRBoxSensor]" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/sfr_box/sensor.py:251:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/sfr_box/sensor.py:250:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/sharkiq/coordinator.py /homeassistant/components/sharkiq/coordinator.py:74:19 - error: Operator "-" not supported for "None" (reportOptionalOperand) @@ -27899,61 +28441,61 @@         "readline" is not present         "close" is not present (reportArgumentType) /homeassistant/components/shelly/binary_sensor.py - /homeassistant/components/shelly/binary_sensor.py:65:7 - error: Base classes for class "RpcBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:68:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity" + /homeassistant/components/shelly/binary_sensor.py:68:7 - error: Base classes for class "RpcBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:71:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcBinarySensorDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:68:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/shelly/binary_sensor.py:71:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "RpcBinarySensorDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:71:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/shelly/binary_sensor.py:94:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:411:7 - error: Base classes for class "BlockBinarySensor" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:411:7 - error: Base classes for class "BlockBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:414:5 - error: "entity_description" overrides symbol of same name in class "ShellyBlockAttributeEntity" + /homeassistant/components/shelly/binary_sensor.py:431:7 - error: Base classes for class "BlockBinarySensor" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:431:7 - error: Base classes for class "BlockBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:434:5 - error: "entity_description" overrides symbol of same name in class "ShellyBlockAttributeEntity"   Variable is mutable so its type is invariant     Override type "BlockBinarySensorDescription" is not the same as base type "BlockEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:414:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/shelly/binary_sensor.py:434:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "BlockBinarySensorDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:417:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/shelly/binary_sensor.py:437:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:422:7 - error: Base classes for class "RestBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:425:5 - error: "entity_description" overrides symbol of same name in class "ShellyRestAttributeEntity" + /homeassistant/components/shelly/binary_sensor.py:442:7 - error: Base classes for class "RestBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:445:5 - error: "entity_description" overrides symbol of same name in class "ShellyRestAttributeEntity"   Variable is mutable so its type is invariant     Override type "RestBinarySensorDescription" is not the same as base type "RestEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:425:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/shelly/binary_sensor.py:445:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "RestBinarySensorDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:428:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/shelly/binary_sensor.py:448:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:433:7 - error: Base classes for class "BlockSleepingBinarySensor" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:433:7 - error: Base classes for class "BlockSleepingBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:433:7 - error: Base classes for class "BlockSleepingBinarySensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:433:7 - error: Base classes for class "BlockSleepingBinarySensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:433:7 - error: Base classes for class "BlockSleepingBinarySensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:438:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/shelly/binary_sensor.py:453:7 - error: Base classes for class "BlockSleepingBinarySensor" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:453:7 - error: Base classes for class "BlockSleepingBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:453:7 - error: Base classes for class "BlockSleepingBinarySensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:453:7 - error: Base classes for class "BlockSleepingBinarySensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:453:7 - error: Base classes for class "BlockSleepingBinarySensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:458:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "BlockBinarySensorDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:438:5 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/binary_sensor.py:458:5 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "BlockBinarySensorDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:446:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/shelly/binary_sensor.py:466:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:457:7 - error: Base classes for class "RpcSleepingBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:457:7 - error: Base classes for class "RpcSleepingBinarySensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:457:7 - error: Base classes for class "RpcSleepingBinarySensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:457:7 - error: Base classes for class "RpcSleepingBinarySensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:462:5 - error: "entity_description" overrides symbol of same name in class "ShellySleepingRpcAttributeEntity" + /homeassistant/components/shelly/binary_sensor.py:477:7 - error: Base classes for class "RpcSleepingBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:477:7 - error: Base classes for class "RpcSleepingBinarySensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:477:7 - error: Base classes for class "RpcSleepingBinarySensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:477:7 - error: Base classes for class "RpcSleepingBinarySensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/binary_sensor.py:482:5 - error: "entity_description" overrides symbol of same name in class "ShellySleepingRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcBinarySensorDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:462:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/shelly/binary_sensor.py:482:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "RpcBinarySensorDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:462:5 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/binary_sensor.py:482:5 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RpcBinarySensorDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/binary_sensor.py:470:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/shelly/binary_sensor.py:504:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/shelly/button.py /homeassistant/components/shelly/button.py:254:7 - error: Base classes for class "ShellyBaseButton" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -27970,104 +28512,108 @@ /homeassistant/components/shelly/button.py:339:5 - error: "entity_description" overrides symbol of same name in class "ButtonEntity"   Variable is mutable so its type is invariant     Override type "RpcButtonDescription" is not the same as base type "ButtonEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/button.py:365:15 - error: Method "async_press" overrides class "ButtonEntity" in an incompatible manner + /homeassistant/components/shelly/button.py:362:15 - error: Method "async_press" overrides class "ButtonEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/button.py:370:7 - error: Base classes for class "RpcVirtualButton" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/button.py:373:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity" + /homeassistant/components/shelly/button.py:367:7 - error: Base classes for class "RpcVirtualButton" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/button.py:370:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcButtonDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/button.py:373:5 - error: "entity_description" overrides symbol of same name in class "ButtonEntity" + /homeassistant/components/shelly/button.py:370:5 - error: "entity_description" overrides symbol of same name in class "ButtonEntity"   Variable is mutable so its type is invariant     Override type "RpcButtonDescription" is not the same as base type "ButtonEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/button.py:390:15 - error: Method "async_press" overrides class "ButtonEntity" in an incompatible manner + /homeassistant/components/shelly/button.py:374:15 - error: Method "async_press" overrides class "ButtonEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/button.py:401:5 - error: "entity_description" overrides symbol of same name in class "ShellySleepingRpcAttributeEntity" + /homeassistant/components/shelly/button.py:385:5 - error: "entity_description" overrides symbol of same name in class "ShellySleepingRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcButtonDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/button.py:401:5 - error: "entity_description" overrides symbol of same name in class "ButtonEntity" + /homeassistant/components/shelly/button.py:385:5 - error: "entity_description" overrides symbol of same name in class "ButtonEntity"   Variable is mutable so its type is invariant     Override type "RpcButtonDescription" is not the same as base type "ButtonEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/button.py:418:15 - error: Method "async_press" overrides class "ButtonEntity" in an incompatible manner + /homeassistant/components/shelly/button.py:388:15 - error: Method "async_press" overrides class "ButtonEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/button.py:427:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/button.py:396:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/components/shelly/climate.py - /homeassistant/components/shelly/climate.py:82:7 - error: Base classes for class "RpcLinkedgoThermostatClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:85:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity" + /homeassistant/components/shelly/climate.py:81:7 - error: Base classes for class "RpcLinkedgoThermostatClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/climate.py:84:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcClimateDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:85:5 - error: "entity_description" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:84:5 - error: "entity_description" overrides symbol of same name in class "ClimateEntity"   Variable is mutable so its type is invariant     Override type "RpcClimateDescription" is not the same as base type "ClimateEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:147:9 - error: "current_humidity" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:146:9 - error: "current_humidity" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:155:9 - error: "target_humidity" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:154:9 - error: "target_humidity" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:163:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:162:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACMode | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:178:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:177:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:186:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:185:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:191:9 - error: "preset_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:190:9 - error: "preset_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:202:9 - error: "fan_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:201:9 - error: "fan_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/shelly/climate.py:395:7 - error: Base classes for class "BlockSleepingClimate" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/shelly/climate.py:395:7 - error: Base classes for class "BlockSleepingClimate" define variable "_attr_supported_features" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/shelly/climate.py:395:7 - error: Base classes for class "BlockSleepingClimate" define variable "state" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/shelly/climate.py:395:7 - error: Base classes for class "BlockSleepingClimate" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/shelly/climate.py:395:7 - error: Base classes for class "BlockSleepingClimate" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:455:9 - error: "unique_id" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/climate.py:453:9 - error: "unique_id" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:460:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:458:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:476:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:474:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:492:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/climate.py:490:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:499:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:497:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACMode | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:512:9 - error: "preset_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:510:9 - error: "preset_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:521:9 - error: "hvac_action" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:519:9 - error: "hvac_action" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACAction | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:533:9 - error: "preset_modes" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:531:9 - error: "preset_modes" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:683:7 - error: Base classes for class "RpcClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:713:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:681:7 - error: Base classes for class "RpcClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/climate.py:712:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:718:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:717:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:723:9 - error: "current_humidity" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:722:9 - error: "current_humidity" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:731:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:730:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACMode | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:739:9 - error: "hvac_action" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:738:9 - error: "hvac_action" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACAction | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:761:7 - error: Base classes for class "RpcBluTrvClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:788:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:760:7 - error: Base classes for class "RpcBluTrvClimate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/climate.py:787:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:796:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:795:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:801:9 - error: "hvac_action" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/shelly/climate.py:800:9 - error: "hvac_action" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACAction | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/climate.py:809:15 - error: Method "async_set_temperature" overrides class "ClimateEntity" in an incompatible manner + /homeassistant/components/shelly/climate.py:808:15 - error: Method "async_set_temperature" overrides class "ClimateEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/shelly/config_flow.py - /homeassistant/components/shelly/config_flow.py:310:21 - error: Could not access item in TypedDict + /homeassistant/components/shelly/config_flow.py:599:17 - error: Could not access item in TypedDict   "context" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/shelly/config_flow.py:311:21 - error: Could not access item in TypedDict + /homeassistant/components/shelly/config_flow.py:600:25 - error: Could not access item in TypedDict   "context" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/shelly/config_flow.py:403:25 - error: Could not access item in TypedDict + /homeassistant/components/shelly/config_flow.py:614:21 - error: Could not access item in TypedDict +   "context" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) + /homeassistant/components/shelly/config_flow.py:615:21 - error: Could not access item in TypedDict +   "context" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) + /homeassistant/components/shelly/config_flow.py:726:25 - error: Could not access item in TypedDict   "title_placeholders" is not a required key in "ConfigFlowContext", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/shelly/coordinator.py - /homeassistant/components/shelly/coordinator.py:245:12 - error: "new_sleep_period" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/shelly/coordinator.py:246:39 - error: "new_sleep_period" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/shelly/coordinator.py:246:12 - error: "new_sleep_period" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/shelly/coordinator.py:247:39 - error: "new_sleep_period" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/shelly/cover.py /homeassistant/components/shelly/cover.py:104:7 - error: Base classes for class "BlockShellyCover" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/shelly/cover.py:107:5 - error: "entity_description" overrides symbol of same name in class "ShellyBlockAttributeEntity" @@ -28076,71 +28622,71 @@ /homeassistant/components/shelly/cover.py:107:5 - error: "entity_description" overrides symbol of same name in class "CoverEntity"   Variable is mutable so its type is invariant     Override type "BlockCoverDescription" is not the same as base type "CoverEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:123:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/cover.py:124:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "str" is not the same as base type "str | None" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:125:18 - error: "_attr_supported_features" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/cover.py:126:18 - error: "_attr_supported_features" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "CoverEntityFeature" is not the same as base type "int | None" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:125:18 - error: "_attr_supported_features" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:126:18 - error: "_attr_supported_features" overrides symbol of same name in class "CoverEntity"   Variable is mutable so its type is invariant     Override type "CoverEntityFeature" is not the same as base type "CoverEntityFeature | None" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:128:9 - error: "is_closed" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:129:9 - error: "is_closed" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:136:9 - error: "current_cover_position" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:137:9 - error: "current_cover_position" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:144:9 - error: "is_closing" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:145:9 - error: "is_closing" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:152:9 - error: "is_opening" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:153:9 - error: "is_opening" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:188:7 - error: Base classes for class "RpcShellyCover" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:191:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity" + /homeassistant/components/shelly/cover.py:189:7 - error: Base classes for class "RpcShellyCover" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/cover.py:192:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcCoverDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:191:5 - error: "entity_description" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:192:5 - error: "entity_description" overrides symbol of same name in class "CoverEntity"   Variable is mutable so its type is invariant     Override type "RpcCoverDescription" is not the same as base type "CoverEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:207:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/cover.py:209:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "str" is not the same as base type "str | None" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:212:18 - error: "_attr_supported_features" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/cover.py:214:18 - error: "_attr_supported_features" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "CoverEntityFeature" is not the same as base type "int | None" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:212:18 - error: "_attr_supported_features" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:214:18 - error: "_attr_supported_features" overrides symbol of same name in class "CoverEntity"   Variable is mutable so its type is invariant     Override type "CoverEntityFeature" is not the same as base type "CoverEntityFeature | None" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:220:9 - error: "is_closed" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:222:9 - error: "is_closed" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:225:9 - error: "current_cover_position" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:227:9 - error: "current_cover_position" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:233:9 - error: "current_cover_tilt_position" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:235:9 - error: "current_cover_tilt_position" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:241:9 - error: "is_closing" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:243:9 - error: "is_closing" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:246:9 - error: "is_opening" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/shelly/cover.py:248:9 - error: "is_opening" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/cover.py:280:15 - error: Method "async_close_cover" overrides class "CoverEntity" in an incompatible manner + /homeassistant/components/shelly/cover.py:282:15 - error: Method "async_close_cover" overrides class "CoverEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/cover.py:285:15 - error: Method "async_open_cover" overrides class "CoverEntity" in an incompatible manner + /homeassistant/components/shelly/cover.py:287:15 - error: Method "async_open_cover" overrides class "CoverEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/cover.py:290:15 - error: Method "async_set_cover_position" overrides class "CoverEntity" in an incompatible manner + /homeassistant/components/shelly/cover.py:292:15 - error: Method "async_set_cover_position" overrides class "CoverEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/cover.py:297:15 - error: Method "async_stop_cover" overrides class "CoverEntity" in an incompatible manner + /homeassistant/components/shelly/cover.py:299:15 - error: Method "async_stop_cover" overrides class "CoverEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/cover.py:302:15 - error: Method "async_open_cover_tilt" overrides class "CoverEntity" in an incompatible manner + /homeassistant/components/shelly/cover.py:304:15 - error: Method "async_open_cover_tilt" overrides class "CoverEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/cover.py:307:15 - error: Method "async_close_cover_tilt" overrides class "CoverEntity" in an incompatible manner + /homeassistant/components/shelly/cover.py:309:15 - error: Method "async_close_cover_tilt" overrides class "CoverEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/cover.py:312:15 - error: Method "async_set_cover_tilt_position" overrides class "CoverEntity" in an incompatible manner + /homeassistant/components/shelly/cover.py:314:15 - error: Method "async_set_cover_tilt_position" overrides class "CoverEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/cover.py:319:15 - error: Method "async_stop_cover_tilt" overrides class "CoverEntity" in an incompatible manner + /homeassistant/components/shelly/cover.py:321:15 - error: Method "async_stop_cover_tilt" overrides class "CoverEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/shelly/entity.py @@ -28150,99 +28696,106 @@ /homeassistant/components/shelly/entity.py:469:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "str" is not the same as base type "str | None" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/entity.py:483:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/entity.py:480:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/entity.py:509:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/entity.py:506:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RestEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/entity.py:547:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/entity.py:542:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RpcEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/entity.py:594:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/entity.py:589:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/components/shelly/event.py - /homeassistant/components/shelly/event.py:178:7 - error: Base classes for class "ShellyBlockEvent" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/event.py:198:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/event.py:181:7 - error: Base classes for class "ShellyBlockEvent" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/event.py:201:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "ShellyBlockEventDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/event.py:198:14 - error: "entity_description" overrides symbol of same name in class "EventEntity" + /homeassistant/components/shelly/event.py:201:14 - error: "entity_description" overrides symbol of same name in class "EventEntity"   Variable is mutable so its type is invariant     Override type "ShellyBlockEventDescription" is not the same as base type "EventEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/event.py:226:7 - error: Base classes for class "ShellyRpcEvent" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/event.py:243:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/event.py:231:7 - error: Base classes for class "ShellyRpcEvent" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/event.py:245:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "ShellyRpcEventDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/event.py:243:14 - error: "entity_description" overrides symbol of same name in class "EventEntity" + /homeassistant/components/shelly/event.py:245:14 - error: "entity_description" overrides symbol of same name in class "EventEntity" +   Variable is mutable so its type is invariant +     Override type "ShellyRpcEventDescription" is not the same as base type "EventEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/event.py:274:7 - error: Base classes for class "ShellyRpcScriptEvent" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/event.py:289:14 - error: "entity_description" overrides symbol of same name in class "Entity" +   Variable is mutable so its type is invariant +     Override type "ShellyRpcEventDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/event.py:289:14 - error: "entity_description" overrides symbol of same name in class "EventEntity"   Variable is mutable so its type is invariant     Override type "ShellyRpcEventDescription" is not the same as base type "EventEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/shelly/light.py - /homeassistant/components/shelly/light.py:107:7 - error: Base classes for class "BlockShellyLight" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:110:5 - error: "entity_description" overrides symbol of same name in class "ShellyBlockAttributeEntity" + /homeassistant/components/shelly/light.py:109:7 - error: Base classes for class "BlockShellyLight" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/light.py:112:5 - error: "entity_description" overrides symbol of same name in class "ShellyBlockAttributeEntity"   Variable is mutable so its type is invariant     Override type "BlockLightDescription" is not the same as base type "BlockEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:110:5 - error: "entity_description" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:112:5 - error: "entity_description" overrides symbol of same name in class "LightEntity"   Variable is mutable so its type is invariant     Override type "BlockLightDescription" is not the same as base type "LightEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:123:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/light.py:126:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "str" is not the same as base type "str | None" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:124:14 - error: "_attr_supported_color_modes" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:127:14 - error: "_attr_supported_color_modes" overrides symbol of same name in class "LightEntity"   Variable is mutable so its type is invariant     Override type "set[str]" is not the same as base type "set[ColorMode] | set[str] | None" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:151:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/shelly/light.py:154:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:177:9 - error: "brightness" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:180:9 - error: "brightness" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:190:9 - error: "color_mode" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:193:9 - error: "color_mode" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[ColorMode | str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:206:9 - error: "rgb_color" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:209:9 - error: "rgb_color" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[tuple[int, int, int] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:219:9 - error: "rgbw_color" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:222:9 - error: "rgbw_color" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[tuple[int, int, int, int] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:241:9 - error: "effect_list" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:244:9 - error: "effect_list" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:249:9 - error: "effect" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:252:9 - error: "effect" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:365:7 - error: Base classes for class "RpcShellyLightBase" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:368:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity" + /homeassistant/components/shelly/light.py:368:7 - error: Base classes for class "RpcShellyLightBase" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/light.py:371:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcLightDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:368:5 - error: "entity_description" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:371:5 - error: "entity_description" overrides symbol of same name in class "LightEntity"   Variable is mutable so its type is invariant     Override type "RpcLightDescription" is not the same as base type "LightEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:383:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/shelly/light.py:387:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:388:9 - error: "brightness" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:392:9 - error: "brightness" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:393:9 - error: "rgb_color" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:397:9 - error: "rgb_color" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[tuple[int, int, int] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:398:9 - error: "rgbw_color" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:402:9 - error: "rgbw_color" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[tuple[int, int, int, int] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/light.py:505:9 - error: "color_mode" overrides symbol of same name in class "LightEntity" + /homeassistant/components/shelly/light.py:509:9 - error: "color_mode" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[ColorMode | str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/shelly/number.py - /homeassistant/components/shelly/number.py:81:7 - error: Base classes for class "RpcNumber" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/number.py:84:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity" + /homeassistant/components/shelly/number.py:79:7 - error: Base classes for class "RpcNumber" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/number.py:82:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcNumberDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/number.py:84:5 - error: "entity_description" overrides symbol of same name in class "NumberEntity" + /homeassistant/components/shelly/number.py:82:5 - error: "entity_description" overrides symbol of same name in class "NumberEntity"   Variable is mutable so its type is invariant     Override type "RpcNumberDescription" is not the same as base type "NumberEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/number.py:85:5 - error: "attribute_value" incorrectly overrides property of same name in class "ShellyRpcAttributeEntity" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/number.py:115:9 - error: "native_value" overrides symbol of same name in class "NumberEntity" + /homeassistant/components/shelly/number.py:83:5 - error: "attribute_value" incorrectly overrides property of same name in class "ShellyRpcAttributeEntity" (reportIncompatibleMethodOverride) + /homeassistant/components/shelly/number.py:110:9 - error: "native_value" overrides symbol of same name in class "NumberEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/number.py:120:15 - error: Method "async_set_native_value" overrides class "NumberEntity" in an incompatible manner + /homeassistant/components/shelly/number.py:115:15 - error: Method "async_set_native_value" overrides class "NumberEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/number.py:397:7 - error: Base classes for class "BlockSleepingNumber" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/number.py:397:7 - error: Base classes for class "BlockSleepingNumber" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/number.py:400:5 - error: "entity_description" overrides symbol of same name in class "NumberEntity" + /homeassistant/components/shelly/number.py:390:7 - error: Base classes for class "BlockSleepingNumber" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/number.py:390:7 - error: Base classes for class "BlockSleepingNumber" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/number.py:393:5 - error: "entity_description" overrides symbol of same name in class "NumberEntity"   Variable is mutable so its type is invariant     Override type "BlockNumberDescription" is not the same as base type "NumberEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/number.py:423:9 - error: "native_value" overrides symbol of same name in class "NumberEntity" + /homeassistant/components/shelly/number.py:413:9 - error: "native_value" overrides symbol of same name in class "NumberEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) /homeassistant/components/shelly/repairs.py - /homeassistant/components/shelly/repairs.py:224:16 - error: Could not access item in TypedDict + /homeassistant/components/shelly/repairs.py:264:16 - error: Could not access item in TypedDict   "restart_required" is not a required key in "ShellyWsSetConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/shelly/select.py /homeassistant/components/shelly/select.py:43:7 - error: Base classes for class "RpcSelect" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -28252,59 +28805,59 @@ /homeassistant/components/shelly/select.py:46:5 - error: "entity_description" overrides symbol of same name in class "SelectEntity"   Variable is mutable so its type is invariant     Override type "RpcSelectDescription" is not the same as base type "SelectEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/select.py:66:9 - error: "current_option" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/shelly/select.py:63:9 - error: "current_option" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/select.py:74:15 - error: Method "async_select_option" overrides class "SelectEntity" in an incompatible manner + /homeassistant/components/shelly/select.py:71:15 - error: Method "async_select_option" overrides class "SelectEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/shelly/sensor.py - /homeassistant/components/shelly/sensor.py:94:7 - error: Base classes for class "RpcSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:97:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity" + /homeassistant/components/shelly/sensor.py:92:7 - error: Base classes for class "RpcSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/sensor.py:95:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcSensorDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:97:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:95:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "RpcSensorDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:134:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:117:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1808:7 - error: Base classes for class "BlockSensor" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1808:7 - error: Base classes for class "BlockSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1811:5 - error: "entity_description" overrides symbol of same name in class "ShellyBlockAttributeEntity" + /homeassistant/components/shelly/sensor.py:1789:7 - error: Base classes for class "BlockSensor" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/sensor.py:1789:7 - error: Base classes for class "BlockSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/sensor.py:1792:5 - error: "entity_description" overrides symbol of same name in class "ShellyBlockAttributeEntity"   Variable is mutable so its type is invariant     Override type "BlockSensorDescription" is not the same as base type "BlockEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1811:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:1792:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "BlockSensorDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1829:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:1806:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1834:7 - error: Base classes for class "RestSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1837:5 - error: "entity_description" overrides symbol of same name in class "ShellyRestAttributeEntity" + /homeassistant/components/shelly/sensor.py:1811:7 - error: Base classes for class "RestSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/sensor.py:1814:5 - error: "entity_description" overrides symbol of same name in class "ShellyRestAttributeEntity"   Variable is mutable so its type is invariant     Override type "RestSensorDescription" is not the same as base type "RestEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1837:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:1814:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "RestSensorDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1852:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:1817:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1857:7 - error: Base classes for class "BlockSleepingSensor" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1857:7 - error: Base classes for class "BlockSleepingSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1860:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:1822:7 - error: Base classes for class "BlockSleepingSensor" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/sensor.py:1822:7 - error: Base classes for class "BlockSleepingSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/sensor.py:1825:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "BlockSensorDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1883:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:1845:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1894:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:1856:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1905:7 - error: Base classes for class "RpcSleepingSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1908:5 - error: "entity_description" overrides symbol of same name in class "ShellySleepingRpcAttributeEntity" + /homeassistant/components/shelly/sensor.py:1867:7 - error: Base classes for class "RpcSleepingSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/sensor.py:1870:5 - error: "entity_description" overrides symbol of same name in class "ShellySleepingRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcSensorDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1908:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:1870:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "RpcSensorDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1931:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:1893:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/sensor.py:1942:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/shelly/sensor.py:1904:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/shelly/switch.py /homeassistant/components/shelly/switch.py:408:7 - error: Base classes for class "BlockSleepingMotionSwitch" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) @@ -28318,104 +28871,109 @@ /homeassistant/components/shelly/switch.py:413:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity"   Variable is mutable so its type is invariant     Override type "BlockSwitchDescription" is not the same as base type "SwitchEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/switch.py:431:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/shelly/switch.py:428:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/switch.py:458:7 - error: Base classes for class "BlockRelaySwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/switch.py:461:5 - error: "entity_description" overrides symbol of same name in class "ShellyBlockAttributeEntity" + /homeassistant/components/shelly/switch.py:455:7 - error: Base classes for class "BlockRelaySwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/switch.py:458:5 - error: "entity_description" overrides symbol of same name in class "ShellyBlockAttributeEntity"   Variable is mutable so its type is invariant     Override type "BlockSwitchDescription" is not the same as base type "BlockEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/switch.py:461:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity" + /homeassistant/components/shelly/switch.py:458:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity"   Variable is mutable so its type is invariant     Override type "BlockSwitchDescription" is not the same as base type "SwitchEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/switch.py:473:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/switch.py:471:14 - error: "_attr_unique_id" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "str" is not the same as base type "str | None" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/switch.py:476:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/shelly/switch.py:474:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/switch.py:500:7 - error: Base classes for class "RpcSwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/switch.py:503:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity" + /homeassistant/components/shelly/switch.py:498:7 - error: Base classes for class "RpcSwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/switch.py:501:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcSwitchDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/switch.py:503:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity" + /homeassistant/components/shelly/switch.py:501:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity"   Variable is mutable so its type is invariant     Override type "RpcSwitchDescription" is not the same as base type "SwitchEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/switch.py:523:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/shelly/switch.py:517:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/switch.py:528:15 - error: Method "async_turn_on" overrides class "ToggleEntity" in an incompatible manner + /homeassistant/components/shelly/switch.py:522:15 - error: Method "async_turn_on" overrides class "ToggleEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/switch.py:539:15 - error: Method "async_turn_off" overrides class "ToggleEntity" in an incompatible manner + /homeassistant/components/shelly/switch.py:533:15 - error: Method "async_turn_off" overrides class "ToggleEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/shelly/text.py - /homeassistant/components/shelly/text.py:94:7 - error: Base classes for class "RpcText" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/text.py:97:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity" + /homeassistant/components/shelly/text.py:95:7 - error: Base classes for class "RpcText" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/text.py:98:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcTextDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/text.py:97:5 - error: "entity_description" overrides symbol of same name in class "TextEntity" + /homeassistant/components/shelly/text.py:98:5 - error: "entity_description" overrides symbol of same name in class "TextEntity"   Variable is mutable so its type is invariant     Override type "RpcTextDescription" is not the same as base type "TextEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/text.py:98:5 - error: "attribute_value" incorrectly overrides property of same name in class "ShellyRpcAttributeEntity" (reportIncompatibleMethodOverride) - /homeassistant/components/shelly/text.py:102:9 - error: "native_value" overrides symbol of same name in class "TextEntity" + /homeassistant/components/shelly/text.py:99:5 - error: "attribute_value" incorrectly overrides property of same name in class "ShellyRpcAttributeEntity" (reportIncompatibleMethodOverride) + /homeassistant/components/shelly/text.py:114:9 - error: "native_value" overrides symbol of same name in class "TextEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/text.py:107:15 - error: Method "async_set_value" overrides class "TextEntity" in an incompatible manner + /homeassistant/components/shelly/text.py:119:15 - error: Method "async_set_value" overrides class "TextEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/shelly/update.py - /homeassistant/components/shelly/update.py:162:7 - error: Base classes for class "RestUpdateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:168:5 - error: "entity_description" overrides symbol of same name in class "ShellyRestAttributeEntity" + /homeassistant/components/shelly/update.py:161:7 - error: Base classes for class "RestUpdateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/update.py:167:5 - error: "entity_description" overrides symbol of same name in class "ShellyRestAttributeEntity"   Variable is mutable so its type is invariant     Override type "RestUpdateDescription" is not the same as base type "RestEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:168:5 - error: "entity_description" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:167:5 - error: "entity_description" overrides symbol of same name in class "UpdateEntity"   Variable is mutable so its type is invariant     Override type "RestUpdateDescription" is not the same as base type "UpdateEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:189:9 - error: "installed_version" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:185:9 - error: "installed_version" overrides symbol of same name in class "UpdateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:194:9 - error: "latest_version" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:190:9 - error: "latest_version" overrides symbol of same name in class "UpdateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:205:9 - error: "in_progress" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:201:9 - error: "in_progress" overrides symbol of same name in class "UpdateEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:258:7 - error: Base classes for class "RpcUpdateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:264:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity" + /homeassistant/components/shelly/update.py:254:7 - error: Base classes for class "RpcUpdateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/update.py:260:5 - error: "entity_description" overrides symbol of same name in class "ShellyRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcUpdateDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:264:5 - error: "entity_description" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:260:5 - error: "entity_description" overrides symbol of same name in class "UpdateEntity"   Variable is mutable so its type is invariant     Override type "RpcUpdateDescription" is not the same as base type "UpdateEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:306:9 - error: "installed_version" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:299:9 - error: "installed_version" overrides symbol of same name in class "UpdateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:311:9 - error: "latest_version" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:304:9 - error: "latest_version" overrides symbol of same name in class "UpdateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:320:9 - error: "in_progress" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:313:9 - error: "in_progress" overrides symbol of same name in class "UpdateEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:325:9 - error: "update_percentage" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:318:9 - error: "update_percentage" overrides symbol of same name in class "UpdateEntity"   "property" is not assignable to "cached_property[int | float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:372:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:372:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:372:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:372:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "_attr_supported_features" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:372:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:372:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:372:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:372:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "entity_category" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:377:5 - error: "entity_description" overrides symbol of same name in class "ShellySleepingRpcAttributeEntity" + /homeassistant/components/shelly/update.py:365:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/update.py:365:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/update.py:365:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/update.py:365:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "_attr_supported_features" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/update.py:365:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/update.py:365:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/update.py:365:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/update.py:365:7 - error: Base classes for class "RpcSleepingUpdateEntity" define variable "entity_category" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/shelly/update.py:370:5 - error: "entity_description" overrides symbol of same name in class "ShellySleepingRpcAttributeEntity"   Variable is mutable so its type is invariant     Override type "RpcUpdateDescription" is not the same as base type "RpcEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:377:5 - error: "entity_description" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:370:5 - error: "entity_description" overrides symbol of same name in class "UpdateEntity"   Variable is mutable so its type is invariant     Override type "RpcUpdateDescription" is not the same as base type "UpdateEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:377:5 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/shelly/update.py:370:5 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "RpcUpdateDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:399:9 - error: "installed_version" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:378:9 - error: "installed_version" overrides symbol of same name in class "UpdateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:410:9 - error: "latest_version" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:389:9 - error: "latest_version" overrides symbol of same name in class "UpdateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/shelly/update.py:425:9 - error: "release_url" overrides symbol of same name in class "UpdateEntity" + /homeassistant/components/shelly/update.py:404:9 - error: "release_url" overrides symbol of same name in class "UpdateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/shelly/utils.py - /homeassistant/components/shelly/utils.py:235:17 - error: "diff" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/shelly/utils.py:790:50 - error: Could not access item in TypedDict + /homeassistant/components/shelly/utils.py:203:17 - error: "diff" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/shelly/utils.py:256:13 - error: Argument of type "Generator[IPv4Address | IPv6Address, None, None]" cannot be assigned to parameter "iterable" of type "Iterable[IPv4Address]" in function "extend" +   "Generator[IPv4Address | IPv6Address, None, None]" is not assignable to "Iterable[IPv4Address]" +     Type parameter "_T_co@Iterable" is covariant, but "IPv4Address | IPv6Address" is not a subtype of "IPv4Address" +       Type "IPv4Address | IPv6Address" is not assignable to type "IPv4Address" +         "IPv6Address" is not assignable to "IPv4Address" (reportArgumentType) + /homeassistant/components/shelly/utils.py:734:50 - error: Could not access item in TypedDict   "data" is not a required key in "ShellyScriptCode", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/shelly/valve.py /homeassistant/components/shelly/valve.py:60:7 - error: Base classes for class "RpcShellyBaseWaterValve" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -28922,19 +29480,19 @@ /homeassistant/components/smart_meter_texas/sensor.py:61:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/smartthings/binary_sensor.py - /homeassistant/components/smartthings/binary_sensor.py:285:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/smartthings/binary_sensor.py:253:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "SmartThingsBinarySensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/smartthings/binary_sensor.py:285:14 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/smartthings/binary_sensor.py:253:14 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "SmartThingsBinarySensorEntityDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/smartthings/binary_sensor.py:306:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/smartthings/binary_sensor.py:274:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/smartthings/button.py - /homeassistant/components/smartthings/button.py:70:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/smartthings/button.py:78:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "SmartThingsButtonDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/smartthings/button.py:70:14 - error: "entity_description" overrides symbol of same name in class "ButtonEntity" + /homeassistant/components/smartthings/button.py:78:14 - error: "entity_description" overrides symbol of same name in class "ButtonEntity"   Variable is mutable so its type is invariant     Override type "SmartThingsButtonDescription" is not the same as base type "ButtonEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/smartthings/climate.py @@ -29074,30 +29632,30 @@ /homeassistant/components/smartthings/scene.py:40:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/smartthings/select.py - /homeassistant/components/smartthings/select.py:200:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/smartthings/select.py:248:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "SmartThingsSelectDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/smartthings/select.py:200:14 - error: "entity_description" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/smartthings/select.py:248:14 - error: "entity_description" overrides symbol of same name in class "SelectEntity"   Variable is mutable so its type is invariant     Override type "SmartThingsSelectDescription" is not the same as base type "SelectEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/smartthings/select.py:204:9 - error: "options" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/smartthings/select.py:252:9 - error: "options" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[list[str]]" (reportIncompatibleVariableOverride) - /homeassistant/components/smartthings/select.py:221:9 - error: "current_option" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/smartthings/select.py:271:9 - error: "current_option" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/smartthings/sensor.py - /homeassistant/components/smartthings/sensor.py:1230:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/smartthings/sensor.py:1295:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "SmartThingsSensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/smartthings/sensor.py:1230:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/smartthings/sensor.py:1295:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "SmartThingsSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/smartthings/sensor.py:1241:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/smartthings/sensor.py:1306:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/smartthings/sensor.py:1249:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/smartthings/sensor.py:1314:9 - error: "native_unit_of_measurement" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/smartthings/sensor.py:1264:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/smartthings/sensor.py:1329:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/smartthings/sensor.py:1273:9 - error: "options" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/smartthings/sensor.py:1338:9 - error: "options" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/smartthings/switch.py /homeassistant/components/smartthings/switch.py:267:14 - error: "entity_description" overrides symbol of same name in class "Entity" @@ -29521,11 +30079,11 @@ /homeassistant/components/snooz/fan.py:132:9 - error: "assumed_state" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/components/solaredge/coordinator.py - /homeassistant/components/solaredge/coordinator.py:468:33 - error: Could not access item in TypedDict + /homeassistant/components/solaredge/coordinator.py:467:33 - error: Could not access item in TypedDict   "sum" is not a required key in "StatisticsRow", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/solaredge/coordinator.py:478:25 - error: Could not access item in TypedDict + /homeassistant/components/solaredge/coordinator.py:477:25 - error: Could not access item in TypedDict   "start" is not a required key in "StatisticsRow", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/solaredge/coordinator.py:480:37 - error: Could not access item in TypedDict + /homeassistant/components/solaredge/coordinator.py:479:37 - error: Could not access item in TypedDict   "sum" is not a required key in "StatisticsRow", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/solaredge/sensor.py /homeassistant/components/solaredge/sensor.py:289:7 - error: Base classes for class "SolarEdgeSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -29965,8 +30523,11 @@   Type "str | Any | None" is not assignable to type "str"     "None" is not assignable to "str" (reportArgumentType) /homeassistant/components/squeezebox/binary_sensor.py - /homeassistant/components/squeezebox/binary_sensor.py:51:7 - error: Base classes for class "ServerStatusBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/squeezebox/binary_sensor.py:55:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/squeezebox/binary_sensor.py:97:7 - error: Base classes for class "ServerStatusBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/squeezebox/binary_sensor.py:101:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" +   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/squeezebox/binary_sensor.py:106:7 - error: Base classes for class "SqueezeboxBinarySensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/squeezebox/binary_sensor.py:122:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/squeezebox/browse_media.py /homeassistant/components/squeezebox/browse_media.py:164:24 - error: "int" is not iterable @@ -30114,6 +30675,14 @@   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/ssdp/__init__.py /homeassistant/components/ssdp/__init__.py:227:1 - warning: Operation on "__all__" is not supported, so exported symbol list may be incorrect (reportUnsupportedDunderAll) +/homeassistant/components/ssdp/common.py + /homeassistant/components/ssdp/common.py:18:52 - error: Cannot access attribute "scope_id" for class "IPv4Address" +   Attribute "scope_id" is unknown (reportAttributeAccessIssue) +/homeassistant/components/ssdp/scanner.py + /homeassistant/components/ssdp/scanner.py:263:34 - error: Cannot access attribute "scope_id" for class "IPv4Address" +   Attribute "scope_id" is unknown (reportAttributeAccessIssue) + /homeassistant/components/ssdp/scanner.py:268:35 - error: Cannot access attribute "scope_id" for class "IPv4Address" +   Attribute "scope_id" is unknown (reportAttributeAccessIssue) /homeassistant/components/ssdp/server.py /homeassistant/components/ssdp/server.py:86:5 - error: "EMBEDDED_DEVICES" overrides symbol of same name in class "UpnpServerDevice"   Variable is mutable so its type is invariant @@ -30121,6 +30690,10 @@ /homeassistant/components/ssdp/server.py:87:5 - error: "SERVICES" overrides symbol of same name in class "UpnpServerDevice"   Variable is mutable so its type is invariant     Override type "list[type[UpnpServerService]]" is not the same as base type "Sequence[type[UpnpServerService]]" (reportIncompatibleVariableOverride) + /homeassistant/components/ssdp/server.py:174:38 - error: Cannot access attribute "scope_id" for class "IPv4Address" +   Attribute "scope_id" is unknown (reportAttributeAccessIssue) + /homeassistant/components/ssdp/server.py:179:39 - error: Cannot access attribute "scope_id" for class "IPv4Address" +   Attribute "scope_id" is unknown (reportAttributeAccessIssue) /homeassistant/components/ssdp/websocket_api.py /homeassistant/components/ssdp/websocket_api.py:69:78 - error: Argument of type "HassJob[(info: SsdpServiceInfo, change: SsdpChange), None]" cannot be assigned to parameter "callback" of type "SsdpHassJobCallback" in function "async_register_callback"   "HassJob[(info: SsdpServiceInfo, change: SsdpChange), None]" is not assignable to "HassJob[(SsdpServiceInfo, SsdpChange), Coroutine[Any, Any, None] | None]" @@ -30253,17 +30826,17 @@ /homeassistant/components/starlink/entity.py /homeassistant/components/starlink/entity.py:13:7 - error: Base classes for class "StarlinkEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/starlink/sensor.py - /homeassistant/components/starlink/sensor.py:56:7 - error: Base classes for class "StarlinkSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/starlink/sensor.py:59:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/starlink/sensor.py:57:7 - error: Base classes for class "StarlinkSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/starlink/sensor.py:60:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "StarlinkSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/starlink/sensor.py:62:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/starlink/sensor.py:63:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/starlink/sensor.py:67:7 - error: Base classes for class "StarlinkAccumulationSensor" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/starlink/sensor.py:67:7 - error: Base classes for class "StarlinkAccumulationSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/starlink/sensor.py:73:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/starlink/sensor.py:68:7 - error: Base classes for class "StarlinkAccumulationSensor" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/starlink/sensor.py:68:7 - error: Base classes for class "StarlinkAccumulationSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/starlink/sensor.py:74:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/starlink/sensor.py:91:18 - error: "_attr_native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/starlink/sensor.py:92:18 - error: "_attr_native_value" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "int | float" is not the same as base type "StateType | date | datetime | Decimal" (reportIncompatibleVariableOverride) /homeassistant/components/starlink/switch.py @@ -30416,11 +30989,7 @@ /homeassistant/components/stream/worker.py /homeassistant/components/stream/worker.py:109:47 - error: Cannot access attribute "discontinuity" for class "StreamOutput"   Attribute "discontinuity" is unknown (reportAttributeAccessIssue) - /homeassistant/components/stream/worker.py:129:36 - error: "AudioStream" is not exported from module "av.audio" (reportPrivateImportUsage) - /homeassistant/components/stream/worker.py:139:32 - error: "AudioStream" is not exported from module "av.audio" (reportPrivateImportUsage) - /homeassistant/components/stream/worker.py:160:33 - error: "AudioStream" is not exported from module "av.audio" (reportPrivateImportUsage) - /homeassistant/components/stream/worker.py:164:18 - error: "AudioStream" is not exported from module "av.audio" (reportPrivateImportUsage) - /homeassistant/components/stream/worker.py:382:60 - error: "segment_duration" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/stream/worker.py:384:60 - error: "segment_duration" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/streamlabswater/__init__.py /homeassistant/components/streamlabswater/__init__.py:49:45 - error: Argument of type "Any | None" cannot be assigned to parameter "home_or_away" of type "str" in function "update_location"   Type "Any | None" is not assignable to type "str" @@ -30518,10 +31087,10 @@ /homeassistant/components/sun/entity.py:166:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/sun/sensor.py - /homeassistant/components/sun/sensor.py:139:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/sun/sensor.py:127:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "SunSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/sun/sensor.py:150:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/sun/sensor.py:138:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/supervisord/sensor.py /homeassistant/components/supervisord/sensor.py:64:9 - error: "name" overrides symbol of same name in class "Entity" @@ -30653,9 +31222,15 @@   Import from "switchbee.const" instead (reportPrivateImportUsage) /homeassistant/components/switchbee/switch.py:50:7 - error: Base classes for class "SwitchBeeSwitchEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/switchbot/binary_sensor.py - /homeassistant/components/switchbot/binary_sensor.py:88:7 - error: Base classes for class "SwitchBotBinarySensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/switchbot/binary_sensor.py:88:7 - error: Base classes for class "SwitchBotBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/switchbot/binary_sensor.py:103:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/switchbot/binary_sensor.py:103:7 - error: Base classes for class "SwitchBotBinarySensor" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/switchbot/binary_sensor.py:103:7 - error: Base classes for class "SwitchBotBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/switchbot/binary_sensor.py:117:14 - error: "entity_description" overrides symbol of same name in class "Entity" +   Variable is mutable so its type is invariant +     Override type "SwitchbotBinarySensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/switchbot/binary_sensor.py:117:14 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" +   Variable is mutable so its type is invariant +     Override type "SwitchbotBinarySensorEntityDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/switchbot/binary_sensor.py:124:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/switchbot/climate.py /homeassistant/components/switchbot/climate.py:57:7 - error: Base classes for class "SwitchBotClimateEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) @@ -30712,7 +31287,7 @@ /homeassistant/components/switchbot/climate.py:140:35 - error: Cannot access attribute "set_target_temperature" for class "SwitchbotDevice"   Attribute "set_target_temperature" is unknown (reportAttributeAccessIssue) /homeassistant/components/switchbot/const.py - /homeassistant/components/switchbot/const.py:144:5 - error: Type "dict[SwitchbotModel, type[SwitchbotLock] | type[SwitchbotRelaySwitch] | type[SwitchbotAirPurifier] | type[SwitchbotEvaporativeHumidifier] | type[SwitchbotStripLight3] | type[SwitchbotRgbicLight] | type[SwitchbotRelaySwitch2PM] | type[SwitchbotSmartThermostatRadiator]]" is not assignable to declared type "dict[SwitchbotModel, SwitchbotEncryptedDevice]" + /homeassistant/components/switchbot/const.py:146:5 - error: Type "dict[SwitchbotModel, type[SwitchbotLock] | type[SwitchbotRelaySwitch] | type[SwitchbotAirPurifier] | type[SwitchbotEvaporativeHumidifier] | type[SwitchbotStripLight3] | type[SwitchbotRgbicLight] | type[SwitchbotRelaySwitch2PM] | type[SwitchbotSmartThermostatRadiator]]" is not assignable to declared type "dict[SwitchbotModel, SwitchbotEncryptedDevice]"   Type "type[SwitchbotLock]" is not assignable to type "SwitchbotEncryptedDevice"   Type "type[SwitchbotLock]" is not assignable to type "SwitchbotEncryptedDevice"   Type "type[SwitchbotRelaySwitch]" is not assignable to type "SwitchbotEncryptedDevice" @@ -31017,6 +31592,10 @@     Override type "SwitchbotVacuum" is not the same as base type "SwitchbotDevice" (reportIncompatibleVariableOverride) /homeassistant/components/switchbot/vacuum.py:105:9 - error: "activity" overrides symbol of same name in class "StateVacuumEntity"   "property" is not assignable to "cached_property[VacuumActivity | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/switchbot_cloud/__init__.py + /homeassistant/components/switchbot_cloud/__init__.py:135:38 - error: Argument of type "tuple[Remote | Device, SwitchBotCoordinator]" cannot be assigned to parameter "object" of type "tuple[Device, SwitchBotCoordinator]" in function "append" +   Type "Remote | Device" is not assignable to type "Device" +     "Remote" is not assignable to "Device" (reportArgumentType) /homeassistant/components/switchbot_cloud/binary_sensor.py /homeassistant/components/switchbot_cloud/binary_sensor.py:133:7 - error: Base classes for class "SwitchBotCloudBinarySensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/switchbot_cloud/binary_sensor.py:147:14 - error: "entity_description" overrides symbol of same name in class "Entity" @@ -31030,25 +31609,25 @@ /homeassistant/components/switchbot_cloud/button.py /homeassistant/components/switchbot_cloud/button.py:30:7 - error: Base classes for class "SwitchBotCloudBot" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/switchbot_cloud/climate.py - /homeassistant/components/switchbot_cloud/climate.py:61:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/switchbot_cloud/climate.py:61:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/switchbot_cloud/climate.py:61:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "_attr_supported_features" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/switchbot_cloud/climate.py:61:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/switchbot_cloud/climate.py:61:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/switchbot_cloud/climate.py:61:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/switchbot_cloud/climate.py:124:20 - error: No overloads for "get" match the provided arguments (reportCallIssue) - /homeassistant/components/switchbot_cloud/climate.py:125:17 - error: Argument of type "HVACMode | None" cannot be assigned to parameter "key" of type "HVACMode" in function "get" + /homeassistant/components/switchbot_cloud/climate.py:81:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/switchbot_cloud/climate.py:81:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/switchbot_cloud/climate.py:81:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "_attr_supported_features" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/switchbot_cloud/climate.py:81:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/switchbot_cloud/climate.py:81:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/switchbot_cloud/climate.py:81:7 - error: Base classes for class "SwitchBotCloudAirConditioner" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/switchbot_cloud/climate.py:144:20 - error: No overloads for "get" match the provided arguments (reportCallIssue) + /homeassistant/components/switchbot_cloud/climate.py:145:17 - error: Argument of type "HVACMode | None" cannot be assigned to parameter "key" of type "HVACMode" in function "get"   Type "HVACMode | None" is not assignable to type "HVACMode"     "None" is not assignable to "HVACMode" (reportArgumentType) - /homeassistant/components/switchbot_cloud/climate.py:127:16 - error: No overloads for "get" match the provided arguments (reportCallIssue) - /homeassistant/components/switchbot_cloud/climate.py:127:42 - error: Argument of type "Literal[HVACMode.HEAT, HVACMode.COOL, HVACMode.HEAT_COOL, HVACMode.AUTO, HVACMode.DRY, HVACMode.FAN_ONLY] | None" cannot be assigned to parameter "key" of type "HVACMode" in function "get" + /homeassistant/components/switchbot_cloud/climate.py:147:16 - error: No overloads for "get" match the provided arguments (reportCallIssue) + /homeassistant/components/switchbot_cloud/climate.py:147:42 - error: Argument of type "Literal[HVACMode.HEAT, HVACMode.COOL, HVACMode.HEAT_COOL, HVACMode.AUTO, HVACMode.DRY, HVACMode.FAN_ONLY] | None" cannot be assigned to parameter "key" of type "HVACMode" in function "get"   Type "Literal[HVACMode.HEAT, HVACMode.COOL, HVACMode.HEAT_COOL, HVACMode.AUTO, HVACMode.DRY, HVACMode.FAN_ONLY] | None" is not assignable to type "HVACMode"     "None" is not assignable to "HVACMode" (reportArgumentType) - /homeassistant/components/switchbot_cloud/climate.py:137:25 - error: No overloads for "get" match the provided arguments (reportCallIssue) - /homeassistant/components/switchbot_cloud/climate.py:138:13 - error: Argument of type "str | None" cannot be assigned to parameter "key" of type "str" in function "get" + /homeassistant/components/switchbot_cloud/climate.py:157:25 - error: No overloads for "get" match the provided arguments (reportCallIssue) + /homeassistant/components/switchbot_cloud/climate.py:158:13 - error: Argument of type "str | None" cannot be assigned to parameter "key" of type "str" in function "get"   Type "str | None" is not assignable to type "str"     "None" is not assignable to "str" (reportArgumentType) - /homeassistant/components/switchbot_cloud/climate.py:141:26 - error: Argument of type "float | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__" + /homeassistant/components/switchbot_cloud/climate.py:161:26 - error: Argument of type "float | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__"   Type "float | None" is not assignable to type "ConvertibleToInt"     Type "None" is not assignable to type "ConvertibleToInt"       "None" is not assignable to "str" @@ -31058,7 +31637,7 @@         "__int__" is not present       "None" is incompatible with protocol "SupportsIndex" ... (reportArgumentType) - /homeassistant/components/switchbot_cloud/climate.py:141:26 - error: Argument of type "float | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__" + /homeassistant/components/switchbot_cloud/climate.py:161:26 - error: Argument of type "float | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__"   Type "float | None" is not assignable to type "ConvertibleToInt"     Type "None" is not assignable to type "ConvertibleToInt"       "None" is not assignable to "str" @@ -31067,9 +31646,10 @@       "None" is incompatible with protocol "SupportsInt"         "__int__" is not present       "None" is incompatible with protocol "SupportsIndex" (reportArgumentType) - /homeassistant/components/switchbot_cloud/climate.py:180:40 - error: Argument of type "Literal[HVACMode.FAN_ONLY, HVACMode.HEAT, HVACMode.COOL, HVACMode.HEAT_COOL, HVACMode.AUTO, HVACMode.DRY] | None" cannot be assigned to parameter "hvac_mode" of type "HVACMode" in function "async_set_hvac_mode" + /homeassistant/components/switchbot_cloud/climate.py:200:40 - error: Argument of type "Literal[HVACMode.FAN_ONLY, HVACMode.HEAT, HVACMode.COOL, HVACMode.HEAT_COOL, HVACMode.AUTO, HVACMode.DRY] | None" cannot be assigned to parameter "hvac_mode" of type "HVACMode" in function "async_set_hvac_mode"   Type "Literal[HVACMode.FAN_ONLY, HVACMode.HEAT, HVACMode.COOL, HVACMode.HEAT_COOL, HVACMode.AUTO, HVACMode.DRY] | None" is not assignable to type "HVACMode"     "None" is not assignable to "HVACMode" (reportArgumentType) + /homeassistant/components/switchbot_cloud/climate.py:216:7 - error: Base classes for class "SwitchBotCloudSmartRadiatorThermostat" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/switchbot_cloud/cover.py /homeassistant/components/switchbot_cloud/cover.py:43:7 - error: Base classes for class "SwitchBotCloudCover" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/switchbot_cloud/cover.py:64:5 - error: "_attr_supported_features" overrides symbol of same name in class "CoverEntity" @@ -31109,8 +31689,8 @@ /homeassistant/components/switchbot_cloud/lock.py /homeassistant/components/switchbot_cloud/lock.py:30:7 - error: Base classes for class "SwitchBotCloudLock" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/switchbot_cloud/sensor.py - /homeassistant/components/switchbot_cloud/sensor.py:279:7 - error: Base classes for class "SwitchBotCloudSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/switchbot_cloud/sensor.py:343:38 - error: Argument of type "Device | Remote" cannot be assigned to parameter "device" of type "Device" in function "__init__" + /homeassistant/components/switchbot_cloud/sensor.py:280:7 - error: Base classes for class "SwitchBotCloudSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/switchbot_cloud/sensor.py:344:38 - error: Argument of type "Device | Remote" cannot be assigned to parameter "device" of type "Device" in function "__init__"   Type "Device | Remote" is not assignable to type "Device"     "Remote" is not assignable to "Device" (reportArgumentType) /homeassistant/components/switchbot_cloud/switch.py @@ -31989,8 +32569,8 @@   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/telegram_bot/bot.py /homeassistant/components/telegram_bot/bot.py:455:54 - error: "split" is not a known attribute of "None" (reportOptionalMemberAccess) - /homeassistant/components/telegram_bot/bot.py:1109:40 - error: "req" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/telegram_bot/bot.py:1112:56 - error: "req" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/telegram_bot/bot.py:1112:40 - error: "req" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/telegram_bot/bot.py:1115:56 - error: "req" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/telegram_bot/config_flow.py /homeassistant/components/telegram_bot/config_flow.py:232:21 - error: Could not access item in TypedDict   "description_placeholders" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) @@ -32095,49 +32675,37 @@ /homeassistant/components/template/alarm_control_panel.py:388:7 - error: Base classes for class "TriggerAlarmControlPanelEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/alarm_control_panel.py:388:7 - error: Base classes for class "TriggerAlarmControlPanelEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/binary_sensor.py - /homeassistant/components/template/binary_sensor.py:171:7 - error: Base classes for class "StateBinarySensorEntity" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:171:7 - error: Base classes for class "StateBinarySensorEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:171:7 - error: Base classes for class "StateBinarySensorEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:171:7 - error: Base classes for class "StateBinarySensorEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:187:14 - error: "_template" overrides symbol of same name in class "AbstractTemplateEntity" + /homeassistant/components/template/binary_sensor.py:172:7 - error: Base classes for class "AbstractTemplateBinarySensor" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/binary_sensor.py:172:7 - error: Base classes for class "AbstractTemplateBinarySensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/binary_sensor.py:172:7 - error: Base classes for class "AbstractTemplateBinarySensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/binary_sensor.py:172:7 - error: Base classes for class "AbstractTemplateBinarySensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/binary_sensor.py:185:14 - error: "_template" overrides symbol of same name in class "AbstractTemplateEntity"   Variable is mutable so its type is invariant     Override type "Template" is not the same as base type "Template | None" (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:262:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:262:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:262:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:262:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:262:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:262:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:262:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:262:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:262:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/binary_sensor.py:262:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/binary_sensor.py:279:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/binary_sensor.py:279:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/binary_sensor.py:279:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/binary_sensor.py:279:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/binary_sensor.py:279:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/binary_sensor.py:279:7 - error: Base classes for class "TriggerBinarySensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/config_flow.py - /homeassistant/components/template/config_flow.py:753:25 - error: Could not access item in TypedDict + /homeassistant/components/template/config_flow.py:756:25 - error: Could not access item in TypedDict   "step_id" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/template/cover.py - /homeassistant/components/template/cover.py:241:14 - error: "_attr_supported_features" overrides symbol of same name in class "Entity" + /homeassistant/components/template/cover.py:237:14 - error: "_attr_supported_features" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "CoverEntityFeature" is not the same as base type "int | None" (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:241:14 - error: "_attr_supported_features" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/template/cover.py:237:14 - error: "_attr_supported_features" overrides symbol of same name in class "CoverEntity"   Variable is mutable so its type is invariant     Override type "CoverEntityFeature" is not the same as base type "CoverEntityFeature | None" (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:259:9 - error: "is_closed" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/template/cover.py:255:9 - error: "is_closed" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:267:9 - error: "is_opening" overrides symbol of same name in class "CoverEntity" -   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:272:9 - error: "is_closing" overrides symbol of same name in class "CoverEntity" -   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:277:9 - error: "current_cover_position" overrides symbol of same name in class "CoverEntity" -   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:287:9 - error: "current_cover_tilt_position" overrides symbol of same name in class "CoverEntity" -   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:500:7 - error: Base classes for class "TriggerCoverEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:500:7 - error: Base classes for class "TriggerCoverEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:500:7 - error: Base classes for class "TriggerCoverEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:500:7 - error: Base classes for class "TriggerCoverEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:500:7 - error: Base classes for class "TriggerCoverEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/cover.py:500:7 - error: Base classes for class "TriggerCoverEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/cover.py:468:7 - error: Base classes for class "TriggerCoverEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/cover.py:468:7 - error: Base classes for class "TriggerCoverEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/cover.py:468:7 - error: Base classes for class "TriggerCoverEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/cover.py:468:7 - error: Base classes for class "TriggerCoverEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/cover.py:468:7 - error: Base classes for class "TriggerCoverEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/cover.py:468:7 - error: Base classes for class "TriggerCoverEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/event.py /homeassistant/components/template/event.py:202:7 - error: Base classes for class "TriggerEventEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/event.py:202:7 - error: Base classes for class "TriggerEventEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) @@ -32152,83 +32720,37 @@ /homeassistant/components/template/event.py:202:7 - error: Base classes for class "TriggerEventEntity" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/event.py:202:7 - error: Base classes for class "TriggerEventEntity" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/fan.py - /homeassistant/components/template/fan.py:244:9 - error: "speed_count" overrides symbol of same name in class "FanEntity" -   "property" is not assignable to "cached_property[int]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/fan.py:249:9 - error: "preset_modes" overrides symbol of same name in class "FanEntity" -   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/fan.py:259:9 - error: "preset_mode" overrides symbol of same name in class "FanEntity" -   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/fan.py:264:9 - error: "percentage" overrides symbol of same name in class "FanEntity" -   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/fan.py:269:9 - error: "oscillating" overrides symbol of same name in class "FanEntity" -   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/fan.py:274:9 - error: "current_direction" overrides symbol of same name in class "FanEntity" -   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/fan.py:547:7 - error: Base classes for class "TriggerFanEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/fan.py:547:7 - error: Base classes for class "TriggerFanEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/fan.py:547:7 - error: Base classes for class "TriggerFanEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/fan.py:547:7 - error: Base classes for class "TriggerFanEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/fan.py:547:7 - error: Base classes for class "TriggerFanEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/fan.py:547:7 - error: Base classes for class "TriggerFanEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/fan.py:515:7 - error: Base classes for class "TriggerFanEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/fan.py:515:7 - error: Base classes for class "TriggerFanEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/fan.py:515:7 - error: Base classes for class "TriggerFanEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/fan.py:515:7 - error: Base classes for class "TriggerFanEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/fan.py:515:7 - error: Base classes for class "TriggerFanEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/fan.py:515:7 - error: Base classes for class "TriggerFanEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/image.py - /homeassistant/components/template/image.py:115:9 - error: "entity_picture" overrides symbol of same name in class "Entity" -   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/image.py:138:7 - error: Base classes for class "TriggerImageEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/image.py:138:7 - error: Base classes for class "TriggerImageEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/image.py:138:7 - error: Base classes for class "TriggerImageEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/image.py:138:7 - error: Base classes for class "TriggerImageEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/image.py:138:7 - error: Base classes for class "TriggerImageEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/image.py:171:14 - error: "_attr_image_url" overrides symbol of same name in class "ImageEntity" + /homeassistant/components/template/image.py:114:14 - error: "_attr_image_url" overrides symbol of same name in class "ImageEntity"   Variable is mutable so its type is invariant     Override type "str | None" is not the same as base type "str | UndefinedType | None" (reportIncompatibleVariableOverride) + /homeassistant/components/template/image.py:133:9 - error: "entity_picture" overrides symbol of same name in class "Entity" +   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) + /homeassistant/components/template/image.py:154:7 - error: Base classes for class "TriggerImageEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/image.py:154:7 - error: Base classes for class "TriggerImageEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/image.py:154:7 - error: Base classes for class "TriggerImageEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/image.py:154:7 - error: Base classes for class "TriggerImageEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/image.py:154:7 - error: Base classes for class "TriggerImageEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/light.py - /homeassistant/components/template/light.py:325:9 - error: "brightness" overrides symbol of same name in class "LightEntity" -   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:353:9 - error: "hs_color" overrides symbol of same name in class "LightEntity" -   "property" is not assignable to "cached_property[tuple[float, float] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:358:9 - error: "rgb_color" overrides symbol of same name in class "LightEntity" -   "property" is not assignable to "cached_property[tuple[int, int, int] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:363:9 - error: "rgbw_color" overrides symbol of same name in class "LightEntity" -   "property" is not assignable to "cached_property[tuple[int, int, int, int] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:368:9 - error: "rgbww_color" overrides symbol of same name in class "LightEntity" -   "property" is not assignable to "cached_property[tuple[int, int, int, int, int] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:373:9 - error: "effect" overrides symbol of same name in class "LightEntity" -   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:378:9 - error: "effect_list" overrides symbol of same name in class "LightEntity" -   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:383:9 - error: "color_mode" overrides symbol of same name in class "LightEntity" -   "property" is not assignable to "cached_property[ColorMode | str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:388:9 - error: "supported_color_modes" overrides symbol of same name in class "LightEntity" -   "property" is not assignable to "cached_property[set[ColorMode] | set[str] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:393:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" -   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:1125:7 - error: Base classes for class "TriggerLightEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:1125:7 - error: Base classes for class "TriggerLightEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:1125:7 - error: Base classes for class "TriggerLightEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:1125:7 - error: Base classes for class "TriggerLightEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:1125:7 - error: Base classes for class "TriggerLightEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/light.py:1125:7 - error: Base classes for class "TriggerLightEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/light.py:1081:7 - error: Base classes for class "TriggerLightEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/light.py:1081:7 - error: Base classes for class "TriggerLightEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/light.py:1081:7 - error: Base classes for class "TriggerLightEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/light.py:1081:7 - error: Base classes for class "TriggerLightEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/light.py:1081:7 - error: Base classes for class "TriggerLightEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/light.py:1081:7 - error: Base classes for class "TriggerLightEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/lock.py - /homeassistant/components/template/lock.py:175:9 - error: "is_locked" overrides symbol of same name in class "LockEntity" -   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:180:9 - error: "is_jammed" overrides symbol of same name in class "LockEntity" -   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:185:9 - error: "is_unlocking" overrides symbol of same name in class "LockEntity" -   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:190:9 - error: "is_locking" overrides symbol of same name in class "LockEntity" -   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:195:9 - error: "is_open" overrides symbol of same name in class "LockEntity" -   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:200:9 - error: "is_opening" overrides symbol of same name in class "LockEntity" -   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:205:9 - error: "code_format" overrides symbol of same name in class "LockEntity" -   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:371:7 - error: Base classes for class "TriggerLockEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:371:7 - error: Base classes for class "TriggerLockEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:371:7 - error: Base classes for class "TriggerLockEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:371:7 - error: Base classes for class "TriggerLockEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:371:7 - error: Base classes for class "TriggerLockEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/lock.py:371:7 - error: Base classes for class "TriggerLockEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/lock.py:344:7 - error: Base classes for class "TriggerLockEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/lock.py:344:7 - error: Base classes for class "TriggerLockEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/lock.py:344:7 - error: Base classes for class "TriggerLockEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/lock.py:344:7 - error: Base classes for class "TriggerLockEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/lock.py:344:7 - error: Base classes for class "TriggerLockEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/template/lock.py:344:7 - error: Base classes for class "TriggerLockEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/number.py /homeassistant/components/template/number.py:202:7 - error: Base classes for class "TriggerNumberEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/number.py:202:7 - error: Base classes for class "TriggerNumberEntity" define variable "name" in incompatible way (reportIncompatibleVariableOverride) @@ -32244,7 +32766,7 @@ /homeassistant/components/template/select.py:179:7 - error: Base classes for class "TriggerSelectEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/select.py:179:7 - error: Base classes for class "TriggerSelectEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/sensor.py - /homeassistant/components/template/sensor.py:233:14 - error: "_template" overrides symbol of same name in class "AbstractTemplateEntity" + /homeassistant/components/template/sensor.py:201:14 - error: "_template" overrides symbol of same name in class "AbstractTemplateEntity"   Variable is mutable so its type is invariant     Override type "Template" is not the same as base type "Template | None" (reportIncompatibleVariableOverride) /homeassistant/components/template/sensor.py:277:7 - error: Base classes for class "TriggerSensorEntity" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) @@ -32253,8 +32775,6 @@ /homeassistant/components/template/sensor.py:277:7 - error: Base classes for class "TriggerSensorEntity" define variable "icon" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/sensor.py:277:7 - error: Base classes for class "TriggerSensorEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/sensor.py:277:7 - error: Base classes for class "TriggerSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/template/sensor.py:318:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" -   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/template/switch.py /homeassistant/components/template/switch.py:150:7 - error: Base classes for class "AbstractTemplateSwitch" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/template/switch.py:150:7 - error: Base classes for class "AbstractTemplateSwitch" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) @@ -32363,7 +32883,7 @@ /homeassistant/components/template/weather.py:697:9 - error: "native_apparent_temperature" overrides symbol of same name in class "WeatherEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) /homeassistant/components/tesla_fleet/__init__.py - /homeassistant/components/tesla_fleet/__init__.py:102:16 - error: Argument of type "str" cannot be assigned to parameter "region" of type "Literal['na', 'eu', 'cn'] | None" in function "__init__" + /homeassistant/components/tesla_fleet/__init__.py:103:16 - error: Argument of type "str" cannot be assigned to parameter "region" of type "Literal['na', 'eu', 'cn'] | None" in function "__init__"   Type "str" is not assignable to type "Literal['na', 'eu', 'cn'] | None"     "str" is not assignable to "None"     "str" is not assignable to type "Literal['na']" @@ -32631,6 +33151,8 @@   Attribute "storm_mode" is unknown (reportAttributeAccessIssue) /homeassistant/components/tesla_fleet/switch.py:251:39 - error: Cannot access attribute "storm_mode" for class "VehicleFleet"   Attribute "storm_mode" is unknown (reportAttributeAccessIssue) +/homeassistant/components/tesla_fleet/update.py + /homeassistant/components/tesla_fleet/update.py:41:7 - error: Base classes for class "TeslaFleetUpdateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/tesla_wall_connector/__init__.py /homeassistant/components/tesla_wall_connector/__init__.py:85:34 - error: Cannot access attribute "part_number" for class "dict[Unknown, Unknown]"   Attribute "part_number" is unknown (reportAttributeAccessIssue) @@ -32654,15 +33176,15 @@ /homeassistant/components/tesla_wall_connector/entity.py:42:9 - error: "device_info" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[DeviceInfo | None]" (reportIncompatibleVariableOverride) /homeassistant/components/tesla_wall_connector/sensor.py - /homeassistant/components/tesla_wall_connector/sensor.py:203:7 - error: Base classes for class "WallConnectorSensorEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tesla_wall_connector/sensor.py:203:7 - error: Base classes for class "WallConnectorSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tesla_wall_connector/sensor.py:214:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/tesla_wall_connector/sensor.py:213:7 - error: Base classes for class "WallConnectorSensorEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tesla_wall_connector/sensor.py:213:7 - error: Base classes for class "WallConnectorSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tesla_wall_connector/sensor.py:224:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "WallConnectorSensorDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/tesla_wall_connector/sensor.py:214:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/tesla_wall_connector/sensor.py:224:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "WallConnectorSensorDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/tesla_wall_connector/sensor.py:218:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/tesla_wall_connector/sensor.py:228:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/teslemetry/binary_sensor.py /homeassistant/components/teslemetry/binary_sensor.py:574:7 - error: Base classes for class "TeslemetryVehiclePollingBinarySensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -33152,11 +33674,12 @@   Variable is mutable so its type is invariant     Override type "ThermoProButtonEntityDescription" is not the same as base type "ButtonEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/thermopro/sensor.py - /homeassistant/components/thermopro/sensor.py:129:7 - error: Base classes for class "ThermoProBluetoothSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/thermopro/sensor.py:138:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/thermopro/sensor.py:131:7 - error: Base classes for class "ThermoProBluetoothSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/thermopro/sensor.py:140:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/thermoworks_smoke/sensor.py - /homeassistant/components/thermoworks_smoke/sensor.py:88:33 - error: "initialize_app" is not a known attribute of module "thermoworks_smoke" (reportAttributeAccessIssue) + /homeassistant/components/thermoworks_smoke/sensor.py:12:6 - error: Import "stringcase" could not be resolved (reportMissingImports) + /homeassistant/components/thermoworks_smoke/sensor.py:89:33 - error: "initialize_app" is not a known attribute of module "thermoworks_smoke" (reportAttributeAccessIssue) /homeassistant/components/thethingsnetwork/config_flow.py /homeassistant/components/thethingsnetwork/config_flow.py:7:38 - error: "TTNClient" is not exported from module "ttn_client"   Import from "ttn_client.client" instead (reportPrivateImportUsage) @@ -34169,22 +34692,22 @@ /homeassistant/components/trafikverket_weatherstation/sensor.py:252:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/transmission/__init__.py - /homeassistant/components/transmission/__init__.py:133:32 - error: "new" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/transmission/__init__.py:151:32 - error: "new" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/transmission/sensor.py - /homeassistant/components/transmission/sensor.py:141:7 - error: Base classes for class "TransmissionSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/transmission/sensor.py:144:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/transmission/sensor.py:143:7 - error: Base classes for class "TransmissionSensor" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/transmission/sensor.py:146:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "TransmissionSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/transmission/sensor.py:147:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/transmission/sensor.py:149:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/transmission/sensor.py:152:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/transmission/sensor.py:154:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/transmission/switch.py - /homeassistant/components/transmission/switch.py:56:7 - error: Base classes for class "TransmissionSwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/transmission/switch.py:59:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity" + /homeassistant/components/transmission/switch.py:58:7 - error: Base classes for class "TransmissionSwitch" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/transmission/switch.py:61:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity"   Variable is mutable so its type is invariant     Override type "TransmissionSwitchEntityDescription" is not the same as base type "SwitchEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/transmission/switch.py:62:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/transmission/switch.py:64:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/transport_nsw/sensor.py /homeassistant/components/transport_nsw/sensor.py:92:9 - error: "name" overrides symbol of same name in class "Entity" @@ -34264,82 +34787,80 @@ /homeassistant/components/tuya/camera.py:91:9 - error: "motion_detection_enabled" overrides symbol of same name in class "Camera"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/climate.py - /homeassistant/components/tuya/climate.py:108:25 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "__getitem__" + /homeassistant/components/tuya/climate.py:289:25 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "__getitem__"   "str" is not assignable to "DeviceCategory" (reportArgumentType) - /homeassistant/components/tuya/climate.py:127:7 - error: Base classes for class "TuyaClimateEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/climate.py:127:7 - error: Base classes for class "TuyaClimateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/climate.py:148:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/tuya/climate.py:322:7 - error: Base classes for class "TuyaClimateEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/climate.py:322:7 - error: Base classes for class "TuyaClimateEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/climate.py:347:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "TuyaClimateEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/climate.py:148:14 - error: "entity_description" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/tuya/climate.py:347:14 - error: "entity_description" overrides symbol of same name in class "ClimateEntity"   Variable is mutable so its type is invariant     Override type "TuyaClimateEntityDescription" is not the same as base type "ClimateEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/climate.py:365:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/tuya/climate.py:459:9 - error: "current_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/climate.py:384:9 - error: "current_humidity" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/tuya/climate.py:464:9 - error: "current_humidity" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/climate.py:389:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/tuya/climate.py:469:9 - error: "target_temperature" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/climate.py:401:9 - error: "target_humidity" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/tuya/climate.py:474:9 - error: "target_humidity" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/climate.py:406:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/tuya/climate.py:479:9 - error: "hvac_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[HVACMode | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/climate.py:430:9 - error: "preset_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/tuya/climate.py:498:9 - error: "preset_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/climate.py:442:9 - error: "fan_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/tuya/climate.py:510:9 - error: "fan_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/climate.py:451:9 - error: "swing_mode" overrides symbol of same name in class "ClimateEntity" + /homeassistant/components/tuya/climate.py:515:9 - error: "swing_mode" overrides symbol of same name in class "ClimateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/config_flow.py /homeassistant/components/tuya/config_flow.py:144:19 - error: Argument of type "Any | None" cannot be assigned to parameter "title" of type "str" in function "async_create_entry"   Type "Any | None" is not assignable to type "str"     "None" is not assignable to "str" (reportArgumentType) /homeassistant/components/tuya/cover.py - /homeassistant/components/tuya/cover.py:209:43 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get" + /homeassistant/components/tuya/cover.py:307:43 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get"   "str" is not assignable to "DeviceCategory" (reportArgumentType) - /homeassistant/components/tuya/cover.py:243:7 - error: Base classes for class "TuyaCoverEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/cover.py:243:7 - error: Base classes for class "TuyaCoverEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/cover.py:261:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/tuya/cover.py:347:7 - error: Base classes for class "TuyaCoverEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/cover.py:347:7 - error: Base classes for class "TuyaCoverEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/cover.py:366:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "TuyaCoverEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/cover.py:261:14 - error: "entity_description" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/tuya/cover.py:366:14 - error: "entity_description" overrides symbol of same name in class "CoverEntity"   Variable is mutable so its type is invariant     Override type "TuyaCoverEntityDescription" is not the same as base type "CoverEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/cover.py:293:9 - error: "current_cover_position" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/tuya/cover.py:390:9 - error: "current_cover_position" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/cover.py:298:9 - error: "current_cover_tilt_position" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/tuya/cover.py:395:9 - error: "current_cover_tilt_position" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/cover.py:306:9 - error: "is_closed" overrides symbol of same name in class "CoverEntity" + /homeassistant/components/tuya/cover.py:403:9 - error: "is_closed" overrides symbol of same name in class "CoverEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/diagnostics.py - /homeassistant/components/tuya/diagnostics.py:50:19 - error: "client" is not a known attribute of "None" (reportOptionalMemberAccess) - /homeassistant/components/tuya/diagnostics.py:51:37 - error: "client" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/tuya/diagnostics.py:51:19 - error: "client" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/tuya/diagnostics.py:52:37 - error: "client" is not a known attribute of "None" (reportOptionalMemberAccess) /homeassistant/components/tuya/entity.py /homeassistant/components/tuya/entity.py:32:9 - error: "device_info" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[DeviceInfo | None]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/entity.py:43:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/event.py - /homeassistant/components/tuya/event.py:98:43 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get" + /homeassistant/components/tuya/event.py:196:43 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get"   "str" is not assignable to "DeviceCategory" (reportArgumentType) - /homeassistant/components/tuya/event.py:120:7 - error: Base classes for class "TuyaEventEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/event.py:120:7 - error: Base classes for class "TuyaEventEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/event.py:134:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/tuya/event.py:218:7 - error: Base classes for class "TuyaEventEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/event.py:218:7 - error: Base classes for class "TuyaEventEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/event.py:232:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "EventEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/fan.py - /homeassistant/components/tuya/fan.py:87:7 - error: Base classes for class "TuyaFanEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/fan.py:87:7 - error: Base classes for class "TuyaFanEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/fan.py:237:9 - error: "current_direction" overrides symbol of same name in class "FanEntity" + /homeassistant/components/tuya/fan.py:168:7 - error: Base classes for class "TuyaFanEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/fan.py:168:7 - error: Base classes for class "TuyaFanEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/fan.py:259:9 - error: "current_direction" overrides symbol of same name in class "FanEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/fan.py:254:9 - error: "oscillating" overrides symbol of same name in class "FanEntity" + /homeassistant/components/tuya/fan.py:264:9 - error: "oscillating" overrides symbol of same name in class "FanEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/fan.py:261:9 - error: "preset_mode" overrides symbol of same name in class "FanEntity" + /homeassistant/components/tuya/fan.py:269:9 - error: "preset_mode" overrides symbol of same name in class "FanEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/fan.py:268:9 - error: "percentage" overrides symbol of same name in class "FanEntity" + /homeassistant/components/tuya/fan.py:274:9 - error: "percentage" overrides symbol of same name in class "FanEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/fan.py:285:9 - error: "speed_count" overrides symbol of same name in class "FanEntity" -   "property" is not assignable to "cached_property[int]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/humidifier.py /homeassistant/components/tuya/humidifier.py:95:48 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get"   "str" is not assignable to "DeviceCategory" (reportArgumentType) @@ -34360,39 +34881,35 @@ /homeassistant/components/tuya/humidifier.py:184:9 - error: "current_humidity" overrides symbol of same name in class "HumidifierEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/light.py - /homeassistant/components/tuya/light.py:522:43 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get" + /homeassistant/components/tuya/light.py:619:43 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get"   "str" is not assignable to "DeviceCategory" (reportArgumentType) - /homeassistant/components/tuya/light.py:551:7 - error: Base classes for class "TuyaLightEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/light.py:551:7 - error: Base classes for class "TuyaLightEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/light.py:576:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/tuya/light.py:658:7 - error: Base classes for class "TuyaLightEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/light.py:658:7 - error: Base classes for class "TuyaLightEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/light.py:682:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "TuyaLightEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/light.py:576:14 - error: "entity_description" overrides symbol of same name in class "LightEntity" + /homeassistant/components/tuya/light.py:682:14 - error: "entity_description" overrides symbol of same name in class "LightEntity"   Variable is mutable so its type is invariant     Override type "TuyaLightEntityDescription" is not the same as base type "LightEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/light.py:638:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/tuya/light.py:717:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/light.py:740:9 - error: "brightness" overrides symbol of same name in class "LightEntity" + /homeassistant/components/tuya/light.py:788:9 - error: "brightness" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/light.py:765:9 - error: "hs_color" overrides symbol of same name in class "LightEntity" + /homeassistant/components/tuya/light.py:802:9 - error: "hs_color" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[tuple[float, float] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/light.py:774:9 - error: "color_mode" overrides symbol of same name in class "LightEntity" + /homeassistant/components/tuya/light.py:809:9 - error: "color_mode" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[ColorMode | str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/models.py - /homeassistant/components/tuya/models.py:208:37 - error: Argument of type "DPType" cannot be assigned to parameter "dptype" of type "Literal[DPType.BOOLEAN, DPType.JSON, DPType.RAW]" in function "find_dpcode" -   Type "DPType" is not assignable to type "Literal[DPType.BOOLEAN, DPType.JSON, DPType.RAW]" -     "DPType" is not assignable to type "Literal[DPType.BOOLEAN]" + /homeassistant/components/tuya/models.py:106:37 - error: Argument of type "DPType" cannot be assigned to parameter "dptype" of type "Literal[DPType.JSON, DPType.RAW]" in function "find_dpcode" +   Type "DPType" is not assignable to type "Literal[DPType.JSON, DPType.RAW]"     "DPType" is not assignable to type "Literal[DPType.JSON]"     "DPType" is not assignable to type "Literal[DPType.RAW]" (reportArgumentType) - /homeassistant/components/tuya/models.py:431:33 - error: Argument of type "dict[str, Any] | str" cannot be assigned to parameter "data" of type "str" in function "from_json" -   Type "dict[str, Any] | str" is not assignable to type "str" -     "dict[str, Any]" is not assignable to "str" (reportArgumentType) /homeassistant/components/tuya/number.py /homeassistant/components/tuya/number.py:463:44 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get"   "str" is not assignable to "DeviceCategory" (reportArgumentType) /homeassistant/components/tuya/number.py:483:7 - error: Base classes for class "TuyaNumberEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/tuya/number.py:483:7 - error: Base classes for class "TuyaNumberEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/number.py:552:9 - error: "native_value" overrides symbol of same name in class "NumberEntity" + /homeassistant/components/tuya/number.py:550:9 - error: "native_value" overrides symbol of same name in class "NumberEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/scene.py /homeassistant/components/tuya/scene.py:44:9 - error: "device_info" overrides symbol of same name in class "Entity" @@ -34409,17 +34926,17 @@ /homeassistant/components/tuya/select.py:406:9 - error: "current_option" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/sensor.py - /homeassistant/components/tuya/sensor.py:1750:44 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get" + /homeassistant/components/tuya/sensor.py:1765:44 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get"   "str" is not assignable to "DeviceCategory" (reportArgumentType) - /homeassistant/components/tuya/sensor.py:1766:7 - error: Base classes for class "TuyaSensorEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/sensor.py:1766:7 - error: Base classes for class "TuyaSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/sensor.py:1781:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/tuya/sensor.py:1781:7 - error: Base classes for class "TuyaSensorEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/sensor.py:1781:7 - error: Base classes for class "TuyaSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/sensor.py:1796:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "TuyaSensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/sensor.py:1781:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/tuya/sensor.py:1796:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "TuyaSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/sensor.py:1837:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/tuya/sensor.py:1852:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/siren.py /homeassistant/components/tuya/siren.py:66:43 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get" @@ -34435,12 +34952,16 @@ /homeassistant/components/tuya/switch.py:1022:7 - error: Base classes for class "TuyaSwitchEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/tuya/switch.py:1039:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/tuya/type_information.py + /homeassistant/components/tuya/type_information.py:333:50 - error: Argument of type "dict[str, Any] | str" cannot be assigned to parameter "type_data" of type "str" in function "from_json" +   Type "dict[str, Any] | str" is not assignable to type "str" +     "dict[str, Any]" is not assignable to "str" (reportArgumentType) /homeassistant/components/tuya/vacuum.py - /homeassistant/components/tuya/vacuum.py:97:7 - error: Base classes for class "TuyaVacuumEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/vacuum.py:97:7 - error: Base classes for class "TuyaVacuumEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/vacuum.py:147:9 - error: "fan_speed" overrides symbol of same name in class "StateVacuumEntity" + /homeassistant/components/tuya/vacuum.py:102:7 - error: Base classes for class "TuyaVacuumEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/vacuum.py:102:7 - error: Base classes for class "TuyaVacuumEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/tuya/vacuum.py:156:9 - error: "fan_speed" overrides symbol of same name in class "StateVacuumEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/tuya/vacuum.py:152:9 - error: "activity" overrides symbol of same name in class "StateVacuumEntity" + /homeassistant/components/tuya/vacuum.py:161:9 - error: "activity" overrides symbol of same name in class "StateVacuumEntity"   "property" is not assignable to "cached_property[VacuumActivity | None]" (reportIncompatibleVariableOverride) /homeassistant/components/tuya/valve.py /homeassistant/components/tuya/valve.py:95:43 - error: Argument of type "str" cannot be assigned to parameter "key" of type "DeviceCategory" in function "get" @@ -34476,13 +34997,13 @@ /homeassistant/components/twinkly/select.py:42:9 - error: "current_option" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/twitch/sensor.py - /homeassistant/components/twitch/sensor.py:60:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/twitch/sensor.py:61:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/twitch/sensor.py:70:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/twitch/sensor.py:71:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/twitch/sensor.py:75:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/twitch/sensor.py:76:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/twitch/sensor.py:96:9 - error: "entity_picture" overrides symbol of same name in class "Entity" + /homeassistant/components/twitch/sensor.py:98:9 - error: "entity_picture" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/twitter/notify.py /homeassistant/components/twitter/notify.py:13:6 - error: Import "TwitterAPI" could not be resolved (reportMissingImports) @@ -34573,19 +35094,19 @@   Variable is mutable so its type is invariant     Override type "UnifiImageEntityDescription[HandlerT@UnifiImageEntity, ApiItemT@UnifiImageEntity]" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/unifi/light.py - /homeassistant/components/unifi/light.py:123:7 - error: Base classes for class "UnifiLightEntity" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifi/light.py:128:5 - error: "entity_description" overrides symbol of same name in class "UnifiEntity" + /homeassistant/components/unifi/light.py:148:7 - error: Base classes for class "UnifiLightEntity" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifi/light.py:153:5 - error: "entity_description" overrides symbol of same name in class "UnifiEntity"   Variable is mutable so its type is invariant     Override type "UnifiLightEntityDescription[HandlerT@UnifiLightEntity, ApiItemT@UnifiLightEntity]" is not the same as base type "UnifiEntityDescription[HandlerT@UnifiLightEntity, ApiItemT@UnifiLightEntity]" (reportIncompatibleVariableOverride) - /homeassistant/components/unifi/light.py:128:5 - error: "entity_description" overrides symbol of same name in class "LightEntity" + /homeassistant/components/unifi/light.py:153:5 - error: "entity_description" overrides symbol of same name in class "LightEntity"   Variable is mutable so its type is invariant     Override type "UnifiLightEntityDescription[HandlerT@UnifiLightEntity, ApiItemT@UnifiLightEntity]" is not the same as base type "LightEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/unifi/sensor.py - /homeassistant/components/unifi/sensor.py:654:7 - error: Base classes for class "UnifiSensorEntity" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifi/sensor.py:659:5 - error: "entity_description" overrides symbol of same name in class "UnifiEntity" + /homeassistant/components/unifi/sensor.py:680:7 - error: Base classes for class "UnifiSensorEntity" define variable "_attr_unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifi/sensor.py:685:5 - error: "entity_description" overrides symbol of same name in class "UnifiEntity"   Variable is mutable so its type is invariant     Override type "UnifiSensorEntityDescription[HandlerT@UnifiSensorEntity, ApiItemT@UnifiSensorEntity]" is not the same as base type "UnifiEntityDescription[HandlerT@UnifiSensorEntity, ApiItemT@UnifiSensorEntity]" (reportIncompatibleVariableOverride) - /homeassistant/components/unifi/sensor.py:659:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/unifi/sensor.py:685:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "UnifiSensorEntityDescription[HandlerT@UnifiSensorEntity, ApiItemT@UnifiSensorEntity]" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/unifi/switch.py @@ -34613,37 +35134,37 @@ /homeassistant/components/unifiled/light.py /homeassistant/components/unifiled/light.py:8:22 - error: "unifiled" is unknown import symbol (reportAttributeAccessIssue) /homeassistant/components/unifiprotect/binary_sensor.py - /homeassistant/components/unifiprotect/binary_sensor.py:620:7 - error: Base classes for class "ProtectDeviceBinarySensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/binary_sensor.py:620:7 - error: Base classes for class "ProtectDeviceBinarySensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/binary_sensor.py:620:7 - error: Base classes for class "ProtectDeviceBinarySensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/binary_sensor.py:625:5 - error: "entity_description" overrides symbol of same name in class "ProtectIsOnEntity" + /homeassistant/components/unifiprotect/binary_sensor.py:621:7 - error: Base classes for class "ProtectDeviceBinarySensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/binary_sensor.py:621:7 - error: Base classes for class "ProtectDeviceBinarySensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/binary_sensor.py:621:7 - error: Base classes for class "ProtectDeviceBinarySensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/binary_sensor.py:626:5 - error: "entity_description" overrides symbol of same name in class "ProtectIsOnEntity"   Variable is mutable so its type is invariant     Override type "ProtectBinaryEntityDescription" is not the same as base type "ProtectEntityDescription[Unknown]" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/binary_sensor.py:625:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/unifiprotect/binary_sensor.py:626:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "ProtectBinaryEntityDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/binary_sensor.py:631:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity" + /homeassistant/components/unifiprotect/binary_sensor.py:632:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity"   Variable is mutable so its type is invariant     Override type "Sensor" is not the same as base type "ProtectDeviceType" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/binary_sensor.py:647:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/unifiprotect/binary_sensor.py:648:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "ProtectBinaryEntityDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/binary_sensor.py:690:5 - error: "entity_description" overrides symbol of same name in class "EventEntityMixin" + /homeassistant/components/unifiprotect/binary_sensor.py:691:5 - error: "entity_description" overrides symbol of same name in class "EventEntityMixin"   Variable is mutable so its type is invariant     Override type "ProtectBinaryEventEntityDescription" is not the same as base type "ProtectEventMixin[Unknown]" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/binary_sensor.py:690:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/unifiprotect/binary_sensor.py:691:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "ProtectBinaryEventEntityDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/button.py - /homeassistant/components/unifiprotect/button.py:89:22 - error: Argument of type "Literal['unifiprotect__chime_button']" cannot be assigned to parameter "device_class" of type "ButtonDeviceClass | None" in function "__init__" + /homeassistant/components/unifiprotect/button.py:90:22 - error: Argument of type "Literal['unifiprotect__chime_button']" cannot be assigned to parameter "device_class" of type "ButtonDeviceClass | None" in function "__init__"   Type "Literal['unifiprotect__chime_button']" is not assignable to type "ButtonDeviceClass | None"     "Literal['unifiprotect__chime_button']" is not assignable to "ButtonDeviceClass"     "Literal['unifiprotect__chime_button']" is not assignable to "None" (reportArgumentType) - /homeassistant/components/unifiprotect/button.py:168:5 - error: "entity_description" overrides symbol of same name in class "ButtonEntity" + /homeassistant/components/unifiprotect/button.py:169:5 - error: "entity_description" overrides symbol of same name in class "ButtonEntity"   Variable is mutable so its type is invariant     Override type "ProtectButtonEntityDescription[Unknown]" is not the same as base type "ButtonEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/camera.py - /homeassistant/components/unifiprotect/camera.py:166:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity" + /homeassistant/components/unifiprotect/camera.py:171:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity"   Variable is mutable so its type is invariant     Override type "Camera" is not the same as base type "ProtectDeviceType" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/entity.py @@ -34651,49 +35172,60 @@   Variable is mutable so its type is invariant     Override type "NVR" is not the same as base type "ProtectDeviceType" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/event.py - /homeassistant/components/unifiprotect/event.py:59:7 - error: Base classes for class "ProtectDeviceRingEventEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:59:7 - error: Base classes for class "ProtectDeviceRingEventEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:59:7 - error: Base classes for class "ProtectDeviceRingEventEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:59:7 - error: Base classes for class "ProtectDeviceRingEventEntity" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:59:7 - error: Base classes for class "ProtectDeviceRingEventEntity" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:62:5 - error: "entity_description" overrides symbol of same name in class "EventEntityMixin" + /homeassistant/components/unifiprotect/event.py:78:7 - error: Base classes for class "ProtectDeviceRingEventEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:78:7 - error: Base classes for class "ProtectDeviceRingEventEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:78:7 - error: Base classes for class "ProtectDeviceRingEventEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:78:7 - error: Base classes for class "ProtectDeviceRingEventEntity" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:78:7 - error: Base classes for class "ProtectDeviceRingEventEntity" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:81:5 - error: "entity_description" overrides symbol of same name in class "EventEntityMixin"   Variable is mutable so its type is invariant     Override type "ProtectEventEntityDescription" is not the same as base type "ProtectEventMixin[Unknown]" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:62:5 - error: "entity_description" overrides symbol of same name in class "EventEntity" + /homeassistant/components/unifiprotect/event.py:81:5 - error: "entity_description" overrides symbol of same name in class "EventEntity"   Variable is mutable so its type is invariant     Override type "ProtectEventEntityDescription" is not the same as base type "EventEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:84:7 - error: Base classes for class "ProtectDeviceNFCEventEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:84:7 - error: Base classes for class "ProtectDeviceNFCEventEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:84:7 - error: Base classes for class "ProtectDeviceNFCEventEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:84:7 - error: Base classes for class "ProtectDeviceNFCEventEntity" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:84:7 - error: Base classes for class "ProtectDeviceNFCEventEntity" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:87:5 - error: "entity_description" overrides symbol of same name in class "EventEntityMixin" + /homeassistant/components/unifiprotect/event.py:103:7 - error: Base classes for class "ProtectDeviceNFCEventEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:103:7 - error: Base classes for class "ProtectDeviceNFCEventEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:103:7 - error: Base classes for class "ProtectDeviceNFCEventEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:103:7 - error: Base classes for class "ProtectDeviceNFCEventEntity" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:103:7 - error: Base classes for class "ProtectDeviceNFCEventEntity" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:106:5 - error: "entity_description" overrides symbol of same name in class "EventEntityMixin"   Variable is mutable so its type is invariant     Override type "ProtectEventEntityDescription" is not the same as base type "ProtectEventMixin[Unknown]" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:87:5 - error: "entity_description" overrides symbol of same name in class "EventEntity" + /homeassistant/components/unifiprotect/event.py:106:5 - error: "entity_description" overrides symbol of same name in class "EventEntity"   Variable is mutable so its type is invariant     Override type "ProtectEventEntityDescription" is not the same as base type "EventEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:126:7 - error: Base classes for class "ProtectDeviceFingerprintEventEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:126:7 - error: Base classes for class "ProtectDeviceFingerprintEventEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:126:7 - error: Base classes for class "ProtectDeviceFingerprintEventEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:126:7 - error: Base classes for class "ProtectDeviceFingerprintEventEntity" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:126:7 - error: Base classes for class "ProtectDeviceFingerprintEventEntity" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:131:5 - error: "entity_description" overrides symbol of same name in class "EventEntityMixin" + /homeassistant/components/unifiprotect/event.py:145:7 - error: Base classes for class "ProtectDeviceFingerprintEventEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:145:7 - error: Base classes for class "ProtectDeviceFingerprintEventEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:145:7 - error: Base classes for class "ProtectDeviceFingerprintEventEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:145:7 - error: Base classes for class "ProtectDeviceFingerprintEventEntity" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:145:7 - error: Base classes for class "ProtectDeviceFingerprintEventEntity" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:150:5 - error: "entity_description" overrides symbol of same name in class "EventEntityMixin"   Variable is mutable so its type is invariant     Override type "ProtectEventEntityDescription" is not the same as base type "ProtectEventMixin[Unknown]" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/event.py:131:5 - error: "entity_description" overrides symbol of same name in class "EventEntity" + /homeassistant/components/unifiprotect/event.py:150:5 - error: "entity_description" overrides symbol of same name in class "EventEntity" +   Variable is mutable so its type is invariant +     Override type "ProtectEventEntityDescription" is not the same as base type "EventEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:189:7 - error: Base classes for class "ProtectDeviceVehicleEventEntity" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:189:7 - error: Base classes for class "ProtectDeviceVehicleEventEntity" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:189:7 - error: Base classes for class "ProtectDeviceVehicleEventEntity" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:189:7 - error: Base classes for class "ProtectDeviceVehicleEventEntity" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:189:7 - error: Base classes for class "ProtectDeviceVehicleEventEntity" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:201:5 - error: "entity_description" overrides symbol of same name in class "EventEntityMixin" +   Variable is mutable so its type is invariant +     Override type "ProtectEventEntityDescription" is not the same as base type "ProtectEventMixin[Unknown]" (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/event.py:201:5 - error: "entity_description" overrides symbol of same name in class "EventEntity"   Variable is mutable so its type is invariant     Override type "ProtectEventEntityDescription" is not the same as base type "EventEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/light.py - /homeassistant/components/unifiprotect/light.py:56:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity" + /homeassistant/components/unifiprotect/light.py:58:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity"   Variable is mutable so its type is invariant     Override type "Light" is not the same as base type "ProtectDeviceType" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/lock.py - /homeassistant/components/unifiprotect/lock.py:51:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity" + /homeassistant/components/unifiprotect/lock.py:52:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity"   Variable is mutable so its type is invariant     Override type "Doorlock" is not the same as base type "ProtectDeviceType" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/media_player.py - /homeassistant/components/unifiprotect/media_player.py:64:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity" + /homeassistant/components/unifiprotect/media_player.py:66:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity"   Variable is mutable so its type is invariant     Override type "Camera" is not the same as base type "ProtectDeviceType" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/media_source.py @@ -34704,74 +35236,70 @@ /homeassistant/components/unifiprotect/media_source.py:593:21 - error: "recording_start" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/unifiprotect/media_source.py:771:43 - error: "format" is not a known attribute of "None" (reportOptionalMemberAccess) /homeassistant/components/unifiprotect/number.py - /homeassistant/components/unifiprotect/number.py:259:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity" + /homeassistant/components/unifiprotect/number.py:291:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity"   Variable is mutable so its type is invariant     Override type "Camera | Light" is not the same as base type "ProtectDeviceType" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/number.py:260:5 - error: "entity_description" overrides symbol of same name in class "NumberEntity" + /homeassistant/components/unifiprotect/number.py:292:5 - error: "entity_description" overrides symbol of same name in class "NumberEntity"   Variable is mutable so its type is invariant     Override type "ProtectNumberEntityDescription[Unknown]" is not the same as base type "NumberEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/select.py - /homeassistant/components/unifiprotect/select.py:366:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity" + /homeassistant/components/unifiprotect/select.py:367:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity"   Variable is mutable so its type is invariant     Override type "Camera | Light | Viewer" is not the same as base type "ProtectDeviceType" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/select.py:367:5 - error: "entity_description" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/unifiprotect/select.py:368:5 - error: "entity_description" overrides symbol of same name in class "SelectEntity"   Variable is mutable so its type is invariant     Override type "ProtectSelectEntityDescription[Unknown]" is not the same as base type "SelectEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/sensor.py - /homeassistant/components/unifiprotect/sensor.py:693:17 - error: "description" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/unifiprotect/sensor.py:716:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/unifiprotect/sensor.py:690:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "ProtectSensorEntityDescription[Unknown]" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:724:7 - error: Base classes for class "ProtectDeviceSensor" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:724:7 - error: Base classes for class "ProtectDeviceSensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:724:7 - error: Base classes for class "ProtectDeviceSensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:724:7 - error: Base classes for class "ProtectDeviceSensor" define variable "_attr_unit_of_measurement" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:724:7 - error: Base classes for class "ProtectDeviceSensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:724:7 - error: Base classes for class "ProtectDeviceSensor" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:724:7 - error: Base classes for class "ProtectDeviceSensor" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:724:7 - error: Base classes for class "ProtectDeviceSensor" define variable "unit_of_measurement" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:728:7 - error: Base classes for class "ProtectNVRSensor" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:728:7 - error: Base classes for class "ProtectNVRSensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:728:7 - error: Base classes for class "ProtectNVRSensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:728:7 - error: Base classes for class "ProtectNVRSensor" define variable "_attr_unit_of_measurement" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:728:7 - error: Base classes for class "ProtectNVRSensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:728:7 - error: Base classes for class "ProtectNVRSensor" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:728:7 - error: Base classes for class "ProtectNVRSensor" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:728:7 - error: Base classes for class "ProtectNVRSensor" define variable "unit_of_measurement" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:735:5 - error: "entity_description" overrides symbol of same name in class "EventEntityMixin" + /homeassistant/components/unifiprotect/sensor.py:698:7 - error: Base classes for class "ProtectDeviceSensor" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:698:7 - error: Base classes for class "ProtectDeviceSensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:698:7 - error: Base classes for class "ProtectDeviceSensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:698:7 - error: Base classes for class "ProtectDeviceSensor" define variable "_attr_unit_of_measurement" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:698:7 - error: Base classes for class "ProtectDeviceSensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:698:7 - error: Base classes for class "ProtectDeviceSensor" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:698:7 - error: Base classes for class "ProtectDeviceSensor" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:698:7 - error: Base classes for class "ProtectDeviceSensor" define variable "unit_of_measurement" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:702:7 - error: Base classes for class "ProtectNVRSensor" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:702:7 - error: Base classes for class "ProtectNVRSensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:702:7 - error: Base classes for class "ProtectNVRSensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:702:7 - error: Base classes for class "ProtectNVRSensor" define variable "_attr_unit_of_measurement" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:702:7 - error: Base classes for class "ProtectNVRSensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:702:7 - error: Base classes for class "ProtectNVRSensor" define variable "capability_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:702:7 - error: Base classes for class "ProtectNVRSensor" define variable "state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:702:7 - error: Base classes for class "ProtectNVRSensor" define variable "unit_of_measurement" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/sensor.py:709:5 - error: "entity_description" overrides symbol of same name in class "EventEntityMixin"   Variable is mutable so its type is invariant     Override type "ProtectSensorEventEntityDescription[Unknown]" is not the same as base type "ProtectEventMixin[Unknown]" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:735:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/unifiprotect/sensor.py:709:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "ProtectSensorEventEntityDescription[Unknown]" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/sensor.py:746:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity" -   Variable is mutable so its type is invariant -     Override type "Camera" is not the same as base type "ProtectDeviceType" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/switch.py - /homeassistant/components/unifiprotect/switch.py:476:5 - error: "entity_description" overrides symbol of same name in class "ProtectIsOnEntity" + /homeassistant/components/unifiprotect/switch.py:477:5 - error: "entity_description" overrides symbol of same name in class "ProtectIsOnEntity"   Variable is mutable so its type is invariant     Override type "ProtectSwitchEntityDescription[Unknown]" is not the same as base type "ProtectEntityDescription[Unknown]" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/switch.py:487:7 - error: Base classes for class "ProtectSwitch" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/switch.py:487:7 - error: Base classes for class "ProtectSwitch" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/switch.py:487:7 - error: Base classes for class "ProtectSwitch" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/switch.py:490:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity" + /homeassistant/components/unifiprotect/switch.py:488:7 - error: Base classes for class "ProtectSwitch" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/switch.py:488:7 - error: Base classes for class "ProtectSwitch" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/switch.py:488:7 - error: Base classes for class "ProtectSwitch" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/switch.py:491:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity"   Variable is mutable so its type is invariant     Override type "ProtectSwitchEntityDescription[Unknown]" is not the same as base type "SwitchEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/switch.py:493:7 - error: Base classes for class "ProtectNVRSwitch" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/switch.py:493:7 - error: Base classes for class "ProtectNVRSwitch" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/switch.py:493:7 - error: Base classes for class "ProtectNVRSwitch" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/switch.py:493:7 - error: Base classes for class "ProtectNVRSwitch" define variable "device" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/switch.py:496:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity" + /homeassistant/components/unifiprotect/switch.py:494:7 - error: Base classes for class "ProtectNVRSwitch" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/switch.py:494:7 - error: Base classes for class "ProtectNVRSwitch" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/switch.py:494:7 - error: Base classes for class "ProtectNVRSwitch" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/switch.py:494:7 - error: Base classes for class "ProtectNVRSwitch" define variable "device" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/unifiprotect/switch.py:497:5 - error: "entity_description" overrides symbol of same name in class "SwitchEntity"   Variable is mutable so its type is invariant     Override type "ProtectSwitchEntityDescription[Unknown]" is not the same as base type "SwitchEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/switch.py:502:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity" + /homeassistant/components/unifiprotect/switch.py:503:5 - error: "device" overrides symbol of same name in class "BaseProtectEntity"   Variable is mutable so its type is invariant     Override type "Camera" is not the same as base type "ProtectDeviceType" (reportIncompatibleVariableOverride) - /homeassistant/components/unifiprotect/switch.py:503:5 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/unifiprotect/switch.py:504:5 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "ProtectSwitchEntityDescription[Unknown]" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/unifiprotect/text.py - /homeassistant/components/unifiprotect/text.py:93:5 - error: "entity_description" overrides symbol of same name in class "TextEntity" + /homeassistant/components/unifiprotect/text.py:95:5 - error: "entity_description" overrides symbol of same name in class "TextEntity"   Variable is mutable so its type is invariant     Override type "ProtectTextEntityDescription[Unknown]" is not the same as base type "TextEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/universal/media_player.py @@ -35012,7 +35540,7 @@       Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "Task[EntityUsagePredictions] | EntityUsageDataCache"       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) /homeassistant/components/usb/__init__.py - /homeassistant/components/usb/__init__.py:536:1 - warning: Operation on "__all__" is not supported, so exported symbol list may be incorrect (reportUnsupportedDunderAll) + /homeassistant/components/usb/__init__.py:494:1 - warning: Operation on "__all__" is not supported, so exported symbol list may be incorrect (reportUnsupportedDunderAll) /homeassistant/components/usgs_earthquakes_feed/geo_location.py /homeassistant/components/usgs_earthquakes_feed/geo_location.py:185:16 - error: Type "FeedEntry | None" is not assignable to return type "UsgsEarthquakeHazardsProgramFeedEntry | None"   Type "FeedEntry | None" is not assignable to type "UsgsEarthquakeHazardsProgramFeedEntry | None" @@ -35624,22 +36152,18 @@ /homeassistant/components/version/sensor.py:51:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) /homeassistant/components/vesync/binary_sensor.py - /homeassistant/components/vesync/binary_sensor.py:93:7 - error: Base classes for class "VeSyncBinarySensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/vesync/binary_sensor.py:93:7 - error: Base classes for class "VeSyncBinarySensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/vesync/binary_sensor.py:93:7 - error: Base classes for class "VeSyncBinarySensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/vesync/binary_sensor.py:106:14 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/vesync/binary_sensor.py:97:7 - error: Base classes for class "VeSyncBinarySensor" define variable "_attr_device_class" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/vesync/binary_sensor.py:97:7 - error: Base classes for class "VeSyncBinarySensor" define variable "_attr_state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/vesync/binary_sensor.py:97:7 - error: Base classes for class "VeSyncBinarySensor" define variable "state" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/vesync/binary_sensor.py:110:14 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "VeSyncBinarySensorEntityDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/vesync/binary_sensor.py:106:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/vesync/binary_sensor.py:110:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "VeSyncBinarySensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/vesync/binary_sensor.py:110:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/vesync/binary_sensor.py:114:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) -/homeassistant/components/vesync/entity.py - /homeassistant/components/vesync/entity.py:41:9 - error: "device_info" overrides symbol of same name in class "Entity" -   "property" is not assignable to "cached_property[DeviceInfo | None]" (reportIncompatibleVariableOverride) /homeassistant/components/vesync/fan.py - /homeassistant/components/vesync/fan.py:81:7 - error: Base classes for class "VeSyncFanHA" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/fan.py:81:7 - error: Base classes for class "VeSyncFanHA" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/fan.py:109:9 - error: "oscillating" overrides symbol of same name in class "FanEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) @@ -35699,7 +36223,6 @@   Attribute "toggle_oscillation" is unknown (reportAttributeAccessIssue) /homeassistant/components/vesync/fan.py:288:64 - error: "message" is not a known attribute of "None" (reportOptionalMemberAccess) /homeassistant/components/vesync/humidifier.py - /homeassistant/components/vesync/humidifier.py:88:7 - error: Base classes for class "VeSyncHumidifierHA" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/humidifier.py:88:7 - error: Base classes for class "VeSyncHumidifierHA" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/humidifier.py:112:46 - error: Cannot access attribute "target_minmax" for class "VeSyncBaseDevice[Unknown]"   Attribute "target_minmax" is unknown (reportAttributeAccessIssue) @@ -35732,7 +36255,6 @@ /homeassistant/components/vesync/humidifier.py:192:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/vesync/light.py - /homeassistant/components/vesync/light.py:74:7 - error: Base classes for class "VeSyncBaseLightHA" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/light.py:74:7 - error: Base classes for class "VeSyncBaseLightHA" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/light.py:80:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) @@ -35746,11 +36268,9 @@   Attribute "turn_on" is unknown (reportAttributeAccessIssue) /homeassistant/components/vesync/light.py:151:27 - error: Cannot access attribute "turn_off" for class "VeSyncBaseDevice[Unknown]"   Attribute "turn_off" is unknown (reportAttributeAccessIssue) - /homeassistant/components/vesync/light.py:154:7 - error: Base classes for class "VeSyncDimmableLightHA" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/light.py:154:7 - error: Base classes for class "VeSyncDimmableLightHA" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/light.py:154:7 - error: Base classes for class "VeSyncDimmableLightHA" define variable "is_on" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/light.py:154:7 - error: Base classes for class "VeSyncDimmableLightHA" define variable "brightness" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/vesync/light.py:161:7 - error: Base classes for class "VeSyncTunableWhiteLightHA" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/light.py:161:7 - error: Base classes for class "VeSyncTunableWhiteLightHA" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/light.py:161:7 - error: Base classes for class "VeSyncTunableWhiteLightHA" define variable "is_on" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/light.py:161:7 - error: Base classes for class "VeSyncTunableWhiteLightHA" define variable "brightness" in incompatible way (reportIncompatibleVariableOverride) @@ -35761,7 +36281,6 @@   Attribute "mist_levels" is unknown (reportAttributeAccessIssue) /homeassistant/components/vesync/number.py:48:51 - error: Cannot access attribute "set_mist_level" for class "VeSyncBaseDevice[Unknown]"   Attribute "set_mist_level" is unknown (reportAttributeAccessIssue) - /homeassistant/components/vesync/number.py:93:7 - error: Base classes for class "VeSyncNumberEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/number.py:93:7 - error: Base classes for class "VeSyncNumberEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/number.py:106:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant @@ -35789,7 +36308,6 @@   Attribute "supports_nightlight" is unknown (reportAttributeAccessIssue) /homeassistant/components/vesync/select.py:102:55 - error: Cannot access attribute "set_nightlight_state" for class "VeSyncBaseDevice[Unknown]"   Attribute "set_nightlight_state" is unknown (reportAttributeAccessIssue) - /homeassistant/components/vesync/select.py:147:7 - error: Base classes for class "VeSyncSelectEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/select.py:147:7 - error: Base classes for class "VeSyncSelectEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/select.py:160:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant @@ -35801,7 +36319,6 @@   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/vesync/select.py:171:64 - error: "message" is not a known attribute of "None" (reportOptionalMemberAccess) /homeassistant/components/vesync/sensor.py - /homeassistant/components/vesync/sensor.py:197:7 - error: Base classes for class "VeSyncSensorEntity" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/sensor.py:197:7 - error: Base classes for class "VeSyncSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/sensor.py:210:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant @@ -35838,7 +36355,6 @@ /homeassistant/components/vesync/switch.py:136:64 - error: "message" is not a known attribute of "None" (reportOptionalMemberAccess) /homeassistant/components/vesync/switch.py:143:64 - error: "message" is not a known attribute of "None" (reportOptionalMemberAccess) /homeassistant/components/vesync/update.py - /homeassistant/components/vesync/update.py:55:7 - error: Base classes for class "VeSyncDeviceUpdate" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/update.py:55:7 - error: Base classes for class "VeSyncDeviceUpdate" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/vesync/update.py:61:9 - error: "installed_version" overrides symbol of same name in class "UpdateEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) @@ -35858,7 +36374,7 @@ /homeassistant/components/vicare/__init__.py /homeassistant/components/vicare/__init__.py:39:30 - error: Cannot assign to attribute "runtime_data" for class "ViCareConfigEntry"   "PyViCare" is not assignable to "ViCareData" (reportAttributeAccessIssue) - /homeassistant/components/vicare/__init__.py:80:12 - error: Type "ViCareData" is not assignable to return type "PyViCare" + /homeassistant/components/vicare/__init__.py:81:12 - error: Type "ViCareData" is not assignable to return type "PyViCare"   "ViCareData" is not assignable to "PyViCare" (reportReturnType) /homeassistant/components/vicare/binary_sensor.py /homeassistant/components/vicare/binary_sensor.py:58:38 - error: Cannot access attribute "getCirculationPumpActive" for class "Device" @@ -36681,6 +37197,13 @@   Attribute "setDomesticHotWaterTemperature" is unknown (reportAttributeAccessIssue) /homeassistant/components/vicare/water_heater.py:150:9 - error: "current_operation" overrides symbol of same name in class "WaterHeaterEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) +/homeassistant/components/victron_ble/sensor.py + /homeassistant/components/victron_ble/sensor.py:464:7 - error: Base classes for class "VictronBLESensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/victron_ble/sensor.py:467:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" +   Variable is mutable so its type is invariant +     Override type "VictronBLESensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) + /homeassistant/components/victron_ble/sensor.py:470:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" +   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/victron_remote_monitoring/coordinator.py /homeassistant/components/victron_remote_monitoring/coordinator.py:57:15 - error: Argument of type "Literal['solar_yield']" cannot be assigned to parameter "key" of type "Literal['records', 'totals']" in function "__getitem__"   Type "Literal['solar_yield']" is not assignable to type "Literal['records', 'totals']" @@ -36716,8 +37239,6 @@     Override type "VilfoSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/vilfo/sensor.py:84:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) -/homeassistant/components/vivotek/camera.py - /homeassistant/components/vivotek/camera.py:5:6 - error: Import "libpyvivotek" could not be resolved (reportMissingImports) /homeassistant/components/vizio/config_flow.py /homeassistant/components/vizio/config_flow.py:232:45 - error: Could not access item in TypedDict   "source" is not a required key in "ConfigFlowContext", so access may result in runtime exception (reportTypedDictNotRequiredAccess) @@ -36900,14 +37421,14 @@   Variable is mutable so its type is invariant     Override type "VolvoBinarySensorDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/volvo/button.py - /homeassistant/components/volvo/button.py:89:5 - error: "entity_description" overrides symbol of same name in class "VolvoBaseEntity" + /homeassistant/components/volvo/button.py:94:5 - error: "entity_description" overrides symbol of same name in class "VolvoBaseEntity"   Variable is mutable so its type is invariant     Override type "VolvoButtonDescription" is not the same as base type "VolvoEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/volvo/button.py:89:5 - error: "entity_description" overrides symbol of same name in class "ButtonEntity" + /homeassistant/components/volvo/button.py:94:5 - error: "entity_description" overrides symbol of same name in class "ButtonEntity"   Variable is mutable so its type is invariant     Override type "VolvoButtonDescription" is not the same as base type "ButtonEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/volvo/button.py:105:42 - error: "result" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/volvo/button.py:109:67 - error: "result" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/volvo/button.py:110:42 - error: "result" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/volvo/button.py:114:67 - error: "result" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/volvo/device_tracker.py /homeassistant/components/volvo/device_tracker.py:49:7 - error: Base classes for class "VolvoDeviceTracker" define variable "available" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/volvo/device_tracker.py:52:5 - error: "entity_description" overrides symbol of same name in class "VolvoBaseEntity" @@ -38012,11 +38533,11 @@     "None" is not assignable to "int" (reportArgumentType) /homeassistant/components/wiz/light.py:92:55 - error: "max" is not a known attribute of "None" (reportOptionalMemberAccess) /homeassistant/components/wiz/light.py:93:55 - error: "min" is not a known attribute of "None" (reportOptionalMemberAccess) - /homeassistant/components/wiz/light.py:104:33 - error: "get_brightness" is not a known attribute of "None" (reportOptionalMemberAccess) - /homeassistant/components/wiz/light.py:107:33 - error: "get_colortemp" is not a known attribute of "None" (reportOptionalMemberAccess) - /homeassistant/components/wiz/light.py:112:64 - error: "get_rgbww" is not a known attribute of "None" (reportOptionalMemberAccess) - /homeassistant/components/wiz/light.py:116:63 - error: "get_rgbw" is not a known attribute of "None" (reportOptionalMemberAccess) - /homeassistant/components/wiz/light.py:119:35 - error: "get_scene" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/wiz/light.py:103:33 - error: "get_brightness" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/wiz/light.py:110:33 - error: "get_colortemp" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/wiz/light.py:115:64 - error: "get_rgbww" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/wiz/light.py:119:63 - error: "get_rgbw" is not a known attribute of "None" (reportOptionalMemberAccess) + /homeassistant/components/wiz/light.py:123:44 - error: "get_scene" is not a known attribute of "None" (reportOptionalMemberAccess) /homeassistant/components/wiz/number.py /homeassistant/components/wiz/number.py:49:63 - error: "get_speed" is not a known attribute of "None" (reportOptionalMemberAccess) /homeassistant/components/wiz/number.py:60:63 - error: "get_ratio" is not a known attribute of "None" (reportOptionalMemberAccess) @@ -38065,22 +38586,22 @@ /homeassistant/components/wled/light.py:110:7 - error: Base classes for class "WLEDSegmentLight" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/wled/light.py:151:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/light.py:161:9 - error: "rgb_color" overrides symbol of same name in class "LightEntity" + /homeassistant/components/wled/light.py:158:9 - error: "rgb_color" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[tuple[int, int, int] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/light.py:168:9 - error: "rgbw_color" overrides symbol of same name in class "LightEntity" + /homeassistant/components/wled/light.py:165:9 - error: "rgbw_color" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[tuple[int, int, int, int] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/light.py:181:9 - error: "effect" overrides symbol of same name in class "LightEntity" + /homeassistant/components/wled/light.py:178:9 - error: "effect" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/light.py:188:9 - error: "brightness" overrides symbol of same name in class "LightEntity" + /homeassistant/components/wled/light.py:185:9 - error: "brightness" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/light.py:202:9 - error: "effect_list" overrides symbol of same name in class "LightEntity" + /homeassistant/components/wled/light.py:199:9 - error: "effect_list" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/light.py:207:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/wled/light.py:204:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/light.py:219:15 - error: Method "async_turn_off" overrides class "ToggleEntity" in an incompatible manner + /homeassistant/components/wled/light.py:216:15 - error: Method "async_turn_off" overrides class "ToggleEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/wled/light.py:236:15 - error: Method "async_turn_on" overrides class "ToggleEntity" in an incompatible manner + /homeassistant/components/wled/light.py:233:15 - error: Method "async_turn_on" overrides class "ToggleEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/wled/number.py @@ -38093,9 +38614,9 @@     Override type "WLEDNumberEntityDescription" is not the same as base type "NumberEntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/wled/number.py:98:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/number.py:108:9 - error: "native_value" overrides symbol of same name in class "NumberEntity" + /homeassistant/components/wled/number.py:105:9 - error: "native_value" overrides symbol of same name in class "NumberEntity"   "property" is not assignable to "cached_property[float | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/number.py:115:15 - error: Method "async_set_native_value" overrides class "NumberEntity" in an incompatible manner + /homeassistant/components/wled/number.py:112:15 - error: Method "async_set_native_value" overrides class "NumberEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/wled/select.py @@ -38129,11 +38650,11 @@ /homeassistant/components/wled/select.py:153:7 - error: Base classes for class "WLEDPaletteSelect" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/wled/select.py:174:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/select.py:184:9 - error: "current_option" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/wled/select.py:181:9 - error: "current_option" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/select.py:196:9 - error: "options" overrides symbol of same name in class "SelectEntity" + /homeassistant/components/wled/select.py:193:9 - error: "options" overrides symbol of same name in class "SelectEntity"   "property" is not assignable to "cached_property[list[str]]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/select.py:204:15 - error: Method "async_select_option" overrides class "SelectEntity" in an incompatible manner + /homeassistant/components/wled/select.py:201:15 - error: Method "async_select_option" overrides class "SelectEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/wled/sensor.py @@ -38187,12 +38708,12 @@ /homeassistant/components/wled/switch.py:147:7 - error: Base classes for class "WLEDReverseSwitch" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/wled/switch.py:168:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/switch.py:178:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/wled/switch.py:175:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/wled/switch.py:183:15 - error: Method "async_turn_off" overrides class "ToggleEntity" in an incompatible manner + /homeassistant/components/wled/switch.py:180:15 - error: Method "async_turn_off" overrides class "ToggleEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) - /homeassistant/components/wled/switch.py:188:15 - error: Method "async_turn_on" overrides class "ToggleEntity" in an incompatible manner + /homeassistant/components/wled/switch.py:185:15 - error: Method "async_turn_on" overrides class "ToggleEntity" in an incompatible manner   Return type mismatch: base method returns type "CoroutineType[Any, Any, None]", override returns type "Coroutine[Any, Any, None]"     "Coroutine[Any, Any, None]" is not assignable to "CoroutineType[Any, Any, None]" (reportIncompatibleMethodOverride) /homeassistant/components/wled/update.py @@ -38301,16 +38822,16 @@ /homeassistant/components/x10/light.py:95:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/xbox/binary_sensor.py - /homeassistant/components/xbox/binary_sensor.py:139:7 - error: Base classes for class "XboxBinarySensorEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/binary_sensor.py:139:7 - error: Base classes for class "XboxBinarySensorEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/binary_sensor.py:139:7 - error: Base classes for class "XboxBinarySensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/binary_sensor.py:142:5 - error: "entity_description" overrides symbol of same name in class "XboxBaseEntity" + /homeassistant/components/xbox/binary_sensor.py:141:7 - error: Base classes for class "XboxBinarySensorEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/xbox/binary_sensor.py:141:7 - error: Base classes for class "XboxBinarySensorEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/xbox/binary_sensor.py:141:7 - error: Base classes for class "XboxBinarySensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/xbox/binary_sensor.py:144:5 - error: "entity_description" overrides symbol of same name in class "XboxBaseEntity"   Variable is mutable so its type is invariant     Override type "XboxBinarySensorEntityDescription" is not the same as base type "XboxBaseEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/binary_sensor.py:142:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/xbox/binary_sensor.py:144:5 - error: "entity_description" overrides symbol of same name in class "BinarySensorEntity"   Variable is mutable so its type is invariant     Override type "XboxBinarySensorEntityDescription" is not the same as base type "BinarySensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/binary_sensor.py:145:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity" + /homeassistant/components/xbox/binary_sensor.py:147:9 - error: "is_on" overrides symbol of same name in class "BinarySensorEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/xbox/entity.py /homeassistant/components/xbox/entity.py:59:14 - error: "entity_description" overrides symbol of same name in class "Entity" @@ -38330,51 +38851,51 @@   Variable is mutable so its type is invariant     Override type "XboxImageEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) /homeassistant/components/xbox/media_player.py - /homeassistant/components/xbox/media_player.py:69:7 - error: Base classes for class "XboxMediaPlayer" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/media_player.py:76:9 - error: "state" overrides symbol of same name in class "Entity" + /homeassistant/components/xbox/media_player.py:71:7 - error: Base classes for class "XboxMediaPlayer" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/xbox/media_player.py:78:9 - error: "state" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[StateType]" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/media_player.py:76:9 - error: "state" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/xbox/media_player.py:78:9 - error: "state" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[MediaPlayerState | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/media_player.py:84:9 - error: "supported_features" overrides symbol of same name in class "Entity" + /homeassistant/components/xbox/media_player.py:86:9 - error: "supported_features" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/media_player.py:84:9 - error: "supported_features" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/xbox/media_player.py:86:9 - error: "supported_features" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[MediaPlayerEntityFeature]" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/media_player.py:95:9 - error: "media_content_type" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/xbox/media_player.py:97:9 - error: "media_content_type" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[MediaType | str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/media_player.py:103:9 - error: "media_content_id" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/xbox/media_player.py:105:9 - error: "media_content_id" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/media_player.py:108:9 - error: "media_title" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/xbox/media_player.py:110:9 - error: "media_title" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/media_player.py:118:9 - error: "media_image_url" overrides symbol of same name in class "MediaPlayerEntity" + /homeassistant/components/xbox/media_player.py:120:9 - error: "media_image_url" overrides symbol of same name in class "MediaPlayerEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) /homeassistant/components/xbox/media_source.py - /homeassistant/components/xbox/media_source.py:89:5 - error: "name" overrides symbol of same name in class "MediaSource" + /homeassistant/components/xbox/media_source.py:90:5 - error: "name" overrides symbol of same name in class "MediaSource"   Variable is mutable so its type is invariant     Override type "str" is not the same as base type "str | None" (reportIncompatibleVariableOverride) /homeassistant/components/xbox/remote.py - /homeassistant/components/xbox/remote.py:37:7 - error: Base classes for class "XboxRemote" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/remote.py:41:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/xbox/remote.py:56:7 - error: Base classes for class "XboxRemote" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/xbox/remote.py:60:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) /homeassistant/components/xbox/sensor.py - /homeassistant/components/xbox/sensor.py:291:7 - error: Base classes for class "XboxSensorEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/sensor.py:291:7 - error: Base classes for class "XboxSensorEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/sensor.py:291:7 - error: Base classes for class "XboxSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/sensor.py:294:5 - error: "entity_description" overrides symbol of same name in class "XboxBaseEntity" + /homeassistant/components/xbox/sensor.py:294:7 - error: Base classes for class "XboxSensorEntity" define variable "extra_state_attributes" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/xbox/sensor.py:294:7 - error: Base classes for class "XboxSensorEntity" define variable "entity_picture" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/xbox/sensor.py:294:7 - error: Base classes for class "XboxSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/xbox/sensor.py:297:5 - error: "entity_description" overrides symbol of same name in class "XboxBaseEntity"   Variable is mutable so its type is invariant     Override type "XboxSensorEntityDescription" is not the same as base type "XboxBaseEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/sensor.py:294:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/xbox/sensor.py:297:5 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "XboxSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/sensor.py:297:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/xbox/sensor.py:300:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/sensor.py:302:7 - error: Base classes for class "XboxStorageDeviceSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/sensor.py:319:14 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/components/xbox/sensor.py:305:7 - error: Base classes for class "XboxStorageDeviceSensorEntity" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/xbox/sensor.py:322:14 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "XboxStorageDeviceSensorEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/sensor.py:319:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/xbox/sensor.py:322:14 - error: "entity_description" overrides symbol of same name in class "SensorEntity"   Variable is mutable so its type is invariant     Override type "XboxStorageDeviceSensorEntityDescription" is not the same as base type "SensorEntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/components/xbox/sensor.py:355:9 - error: "native_value" overrides symbol of same name in class "SensorEntity" + /homeassistant/components/xbox/sensor.py:358:9 - error: "native_value" overrides symbol of same name in class "SensorEntity"   "property" is not assignable to "cached_property[StateType | date | datetime | Decimal]" (reportIncompatibleVariableOverride) /homeassistant/components/xeoma/camera.py /homeassistant/components/xeoma/camera.py:7:6 - error: Import "pyxeoma.xeoma" could not be resolved (reportMissingImports) @@ -39292,23 +39813,23 @@ /homeassistant/components/yeelight/entity.py:37:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/components/yeelight/light.py - /homeassistant/components/yeelight/light.py:411:7 - error: Base classes for class "YeelightBaseLight" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:411:7 - error: Base classes for class "YeelightBaseLight" define variable "available" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:469:9 - error: "effect_list" overrides symbol of same name in class "LightEntity" + /homeassistant/components/yeelight/light.py:419:7 - error: Base classes for class "YeelightBaseLight" define variable "unique_id" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/yeelight/light.py:419:7 - error: Base classes for class "YeelightBaseLight" define variable "available" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/yeelight/light.py:477:9 - error: "effect_list" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[list[str] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:481:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity" + /homeassistant/components/yeelight/light.py:489:9 - error: "is_on" overrides symbol of same name in class "ToggleEntity"   "property" is not assignable to "cached_property[bool | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:486:9 - error: "brightness" overrides symbol of same name in class "LightEntity" + /homeassistant/components/yeelight/light.py:494:9 - error: "brightness" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[int | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:513:9 - error: "hs_color" overrides symbol of same name in class "LightEntity" + /homeassistant/components/yeelight/light.py:521:9 - error: "hs_color" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[tuple[float, float] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:523:9 - error: "rgb_color" overrides symbol of same name in class "LightEntity" + /homeassistant/components/yeelight/light.py:531:9 - error: "rgb_color" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[tuple[int, int, int] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:536:9 - error: "effect" overrides symbol of same name in class "LightEntity" + /homeassistant/components/yeelight/light.py:544:9 - error: "effect" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:568:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity" + /homeassistant/components/yeelight/light.py:576:9 - error: "extra_state_attributes" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[Mapping[str, Any] | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:710:16 - error: Argument of type "Unknown | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__" + /homeassistant/components/yeelight/light.py:718:16 - error: Argument of type "Unknown | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__"   Type "Unknown | None" is not assignable to type "ConvertibleToInt"     Type "None" is not assignable to type "ConvertibleToInt"       "None" is not assignable to "str" @@ -39318,7 +39839,7 @@         "__int__" is not present       "None" is incompatible with protocol "SupportsIndex" ... (reportArgumentType) - /homeassistant/components/yeelight/light.py:710:16 - error: Argument of type "Unknown | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__" + /homeassistant/components/yeelight/light.py:718:16 - error: Argument of type "Unknown | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__"   Type "Unknown | None" is not assignable to type "ConvertibleToInt"     Type "None" is not assignable to type "ConvertibleToInt"       "None" is not assignable to "str" @@ -39327,12 +39848,12 @@       "None" is incompatible with protocol "SupportsInt"         "__int__" is not present       "None" is incompatible with protocol "SupportsIndex" (reportArgumentType) - /homeassistant/components/yeelight/light.py:725:77 - error: "duration" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/yeelight/light.py:729:72 - error: "duration" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/yeelight/light.py:733:27 - error: "count" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/yeelight/light.py:880:9 - error: "color_mode" overrides symbol of same name in class "LightEntity" + /homeassistant/components/yeelight/light.py:733:77 - error: "duration" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/yeelight/light.py:737:72 - error: "duration" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/yeelight/light.py:741:27 - error: "count" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/yeelight/light.py:888:9 - error: "color_mode" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[ColorMode | str | None]" (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:882:26 - error: Argument of type "Unknown | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__" + /homeassistant/components/yeelight/light.py:890:26 - error: Argument of type "Unknown | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__"   Type "Unknown | None" is not assignable to type "ConvertibleToInt"     Type "None" is not assignable to type "ConvertibleToInt"       "None" is not assignable to "str" @@ -39342,7 +39863,7 @@         "__int__" is not present       "None" is incompatible with protocol "SupportsIndex" ... (reportArgumentType) - /homeassistant/components/yeelight/light.py:882:26 - error: Argument of type "Unknown | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__" + /homeassistant/components/yeelight/light.py:890:26 - error: Argument of type "Unknown | None" cannot be assigned to parameter "x" of type "ConvertibleToInt" in function "__new__"   Type "Unknown | None" is not assignable to type "ConvertibleToInt"     Type "None" is not assignable to type "ConvertibleToInt"       "None" is not assignable to "str" @@ -39351,9 +39872,9 @@       "None" is incompatible with protocol "SupportsInt"         "__int__" is not present       "None" is incompatible with protocol "SupportsIndex" (reportArgumentType) - /homeassistant/components/yeelight/light.py:938:7 - error: Base classes for class "YeelightColorLightWithoutNightlightSwitch" define variable "color_mode" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:952:7 - error: Base classes for class "YeelightColorLightWithNightlightSwitch" define variable "color_mode" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/yeelight/light.py:1019:9 - error: "supported_features" overrides symbol of same name in class "LightEntity" + /homeassistant/components/yeelight/light.py:946:7 - error: Base classes for class "YeelightColorLightWithoutNightlightSwitch" define variable "color_mode" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/yeelight/light.py:960:7 - error: Base classes for class "YeelightColorLightWithNightlightSwitch" define variable "color_mode" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/yeelight/light.py:1027:9 - error: "supported_features" overrides symbol of same name in class "LightEntity"   "property" is not assignable to "cached_property[LightEntityFeature]" (reportIncompatibleVariableOverride) /homeassistant/components/yeelightsunflower/light.py /homeassistant/components/yeelightsunflower/light.py:38:29 - error: "Hub" is not a known attribute of module "yeelightsunflower" (reportAttributeAccessIssue) @@ -39769,20 +40290,20 @@ /homeassistant/components/zha/climate.py:229:39 - error: Cannot access attribute "async_set_temperature" for class "GroupEntity"   Attribute "async_set_temperature" is unknown (reportAttributeAccessIssue) /homeassistant/components/zha/config_flow.py - /homeassistant/components/zha/config_flow.py:211:9 - error: "hass" overrides symbol of same name in class "FlowHandler" + /homeassistant/components/zha/config_flow.py:210:9 - error: "hass" overrides symbol of same name in class "FlowHandler"   "property" is not assignable to "HomeAssistant" (reportIncompatibleVariableOverride) - /homeassistant/components/zha/config_flow.py:363:17 - error: Argument of type "Unknown | dict[str, Any] | None" cannot be assigned to parameter "device_config" of type "dict[str, Any]" in function "probe" + /homeassistant/components/zha/config_flow.py:362:17 - error: Argument of type "Unknown | dict[str, Any] | None" cannot be assigned to parameter "device_config" of type "dict[str, Any]" in function "probe"   Type "Unknown | dict[str, Any] | None" is not assignable to type "dict[str, Any]"     "None" is not assignable to "dict[str, Any]" (reportArgumentType) - /homeassistant/components/zha/config_flow.py:841:7 - error: Base classes for class "ZhaConfigFlowHandler" define variable "hass" in incompatible way (reportIncompatibleVariableOverride) - /homeassistant/components/zha/config_flow.py:897:46 - error: Argument of type "dict[str, str | None]" cannot be assigned to parameter "description_placeholders" of type "Mapping[str, str] | None" in function "__init__" + /homeassistant/components/zha/config_flow.py:847:7 - error: Base classes for class "ZhaConfigFlowHandler" define variable "hass" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/zha/config_flow.py:903:46 - error: Argument of type "dict[str, str | None]" cannot be assigned to parameter "description_placeholders" of type "Mapping[str, str] | None" in function "__init__"   Type "dict[str, str | None]" is not assignable to type "Mapping[str, str] | None"     "dict[str, str | None]" is not assignable to "Mapping[str, str]"       Type parameter "_VT_co@Mapping" is covariant, but "str | None" is not a subtype of "str"         Type "str | None" is not assignable to type "str"           "None" is not assignable to "str"     "dict[str, str | None]" is not assignable to "None" (reportArgumentType) - /homeassistant/components/zha/config_flow.py:1123:7 - error: Base classes for class "ZhaOptionsFlowHandler" define variable "hass" in incompatible way (reportIncompatibleVariableOverride) + /homeassistant/components/zha/config_flow.py:1126:7 - error: Base classes for class "ZhaOptionsFlowHandler" define variable "hass" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/zha/cover.py /homeassistant/components/zha/cover.py:58:7 - error: Base classes for class "ZhaCover" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/zha/cover.py:58:7 - error: Base classes for class "ZhaCover" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -39915,9 +40436,9 @@   Type "str | None" is not assignable to type "str"     "None" is not assignable to "str" (reportReturnType) /homeassistant/components/zha/entity.py - /homeassistant/components/zha/entity.py:86:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/components/zha/entity.py:103:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) - /homeassistant/components/zha/entity.py:91:9 - error: "device_info" overrides symbol of same name in class "Entity" + /homeassistant/components/zha/entity.py:108:9 - error: "device_info" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[DeviceInfo | None]" (reportIncompatibleVariableOverride) /homeassistant/components/zha/fan.py /homeassistant/components/zha/fan.py:46:7 - error: Base classes for class "ZhaFan" define variable "entity_description" in incompatible way (reportIncompatibleVariableOverride) @@ -40168,7 +40689,8 @@   Attribute "restore_external_state_attributes" is unknown (reportAttributeAccessIssue) /homeassistant/components/zha/logbook.py /homeassistant/components/zha/logbook.py:80:26 - error: "message" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/components/zha/logbook.py:84:36 - error: "message" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/zha/logbook.py:83:26 - error: "message" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/components/zha/logbook.py:87:36 - error: "message" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/components/zha/number.py /homeassistant/components/zha/number.py:45:7 - error: Base classes for class "ZhaNumber" define variable "device_info" in incompatible way (reportIncompatibleVariableOverride) /homeassistant/components/zha/number.py:45:7 - error: Base classes for class "ZhaNumber" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -40570,9 +41092,9 @@ /homeassistant/components/zwave_js/config_flow.py /homeassistant/components/zwave_js/config_flow.py:19:37 - error: "VersionInfo" is not exported from module "zwave_js_server.version"   Import from "zwave_js_server.model.version" instead (reportPrivateImportUsage) - /homeassistant/components/zwave_js/config_flow.py:496:16 - error: Could not access item in TypedDict + /homeassistant/components/zwave_js/config_flow.py:497:16 - error: Could not access item in TypedDict   "context" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/components/zwave_js/config_flow.py:582:30 - error: Could not access item in TypedDict + /homeassistant/components/zwave_js/config_flow.py:583:30 - error: Could not access item in TypedDict   "title_placeholders" is not a required key in "ConfigFlowContext", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/components/zwave_js/cover.py /homeassistant/components/zwave_js/cover.py:82:7 - error: Base classes for class "CoverPositionMixin" define variable "available" in incompatible way (reportIncompatibleVariableOverride) @@ -40864,59 +41386,59 @@ /homeassistant/config.py:1015:69 - error: Argument of type "Hashable" cannot be assigned to parameter "element" of type "str" in function "add"   "Hashable" is not assignable to "str" (reportArgumentType) /homeassistant/config_entries.py - /homeassistant/config_entries.py:1091:54 - error: Cannot access attribute "VERSION" for class "FunctionType" + /homeassistant/config_entries.py:1113:54 - error: Cannot access attribute "VERSION" for class "FunctionType"   Attribute "VERSION" is unknown (reportFunctionMemberAccess) - /homeassistant/config_entries.py:1092:65 - error: Cannot access attribute "MINOR_VERSION" for class "FunctionType" + /homeassistant/config_entries.py:1114:65 - error: Cannot access attribute "MINOR_VERSION" for class "FunctionType"   Attribute "MINOR_VERSION" is unknown (reportFunctionMemberAccess) - /homeassistant/config_entries.py:1260:12 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1282:12 - error: Could not access item in TypedDict   "type" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1289:16 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1311:16 - error: Could not access item in TypedDict   "context" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1476:26 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1498:26 - error: Could not access item in TypedDict   "type" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1541:12 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1563:12 - error: Could not access item in TypedDict   "source" is not a required key in "ConfigFlowContext", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1559:12 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1581:12 - error: Could not access item in TypedDict   "type" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1608:17 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1630:17 - error: Could not access item in TypedDict   "source" is not a required key in "ConfigFlowContext", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1624:34 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1646:34 - error: Could not access item in TypedDict   "context" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1685:18 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1707:18 - error: Could not access item in TypedDict   "data" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1688:27 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1710:27 - error: Could not access item in TypedDict   "minor_version" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1689:21 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1711:21 - error: Could not access item in TypedDict   "options" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1690:20 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1712:20 - error: Could not access item in TypedDict   "source" is not a required key in "ConfigFlowContext", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1691:29 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1713:29 - error: Could not access item in TypedDict   "subentries" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1692:19 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1714:19 - error: Could not access item in TypedDict   "title" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:1694:21 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:1716:21 - error: Could not access item in TypedDict   "version" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:2987:17 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:3009:17 - error: Could not access item in TypedDict   "context" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:2987:17 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:3009:17 - error: Could not access item in TypedDict   "source" is not a required key in "ConfigFlowContext", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:3395:16 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:3414:16 - error: Could not access item in TypedDict   "entry_id" is not a required key in "ConfigFlowContext", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:3407:16 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:3426:16 - error: Could not access item in TypedDict   "entry_id" is not a required key in "ConfigFlowContext", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:3476:12 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:3495:12 - error: Could not access item in TypedDict   "type" is not a required key in "SubentryFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:3491:39 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:3510:39 - error: Could not access item in TypedDict   "data" is not a required key in "SubentryFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:3493:23 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:3512:23 - error: Could not access item in TypedDict   "title" is not a required key in "SubentryFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:3649:16 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:3668:16 - error: Could not access item in TypedDict   "subentry_id" is not a required key in "SubentryFlowContext", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:3698:12 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:3717:12 - error: Could not access item in TypedDict   "type" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:3703:12 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:3722:12 - error: Could not access item in TypedDict   "data" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/config_entries.py:3715:36 - error: Could not access item in TypedDict + /homeassistant/config_entries.py:3734:36 - error: Could not access item in TypedDict   "data" is not a required key in "ConfigFlowResult", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/core.py /homeassistant/core.py:665:9 - error: Overloaded implementation is not consistent with signature of overload 1 @@ -40963,7 +41485,7 @@     "EventType[EventStateReportedData]" is not assignable to "EventType[EventStateReportedData | dict[str, str | datetime | State | None]]"       Type parameter "_DataT@EventType" is invariant, but "EventStateReportedData" is not the same as "EventStateReportedData | dict[str, str | datetime | State | None]"     "EventType[EventStateReportedData]" is not assignable to "str" (reportArgumentType) - /homeassistant/core.py:2874:1 - warning: Operation on "__all__" is not supported, so exported symbol list may be incorrect (reportUnsupportedDunderAll) + /homeassistant/core.py:2893:1 - warning: Operation on "__all__" is not supported, so exported symbol list may be incorrect (reportUnsupportedDunderAll) /homeassistant/data_entry_flow.py /homeassistant/data_entry_flow.py:339:48 - error: Could not access item in TypedDict   "type" is not a required key in "FlowResult[Any, Any]*", so access may result in runtime exception (reportTypedDictNotRequiredAccess) @@ -41021,26 +41543,32 @@ /homeassistant/helpers/collection.py /homeassistant/helpers/collection.py:651:32 - error: "data" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/helpers/condition.py - /homeassistant/helpers/condition.py:150:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) - /homeassistant/helpers/condition.py:150:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__" + /homeassistant/helpers/condition.py:159:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) + /homeassistant/helpers/condition.py:159:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__"   Type "dict[str, _S@__setitem__]" is not assignable to type "dict[str, dict[str, Any] | None]"     "dict[str, _S@__setitem__]" is not assignable to "dict[str, dict[str, Any] | None]"       Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "dict[str, Any] | None"       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) - /homeassistant/helpers/condition.py:152:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) - /homeassistant/helpers/condition.py:152:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__" + /homeassistant/helpers/condition.py:162:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) + /homeassistant/helpers/condition.py:162:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__"   Type "dict[str, _S@__setitem__]" is not assignable to type "dict[str, str]"     "dict[str, _S@__setitem__]" is not assignable to "dict[str, str]"       Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "str"       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) - /homeassistant/helpers/condition.py:263:10 - error: Function with declared return type "dict[str, type[Condition]]" must return value on all code paths + /homeassistant/helpers/condition.py:168:9 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) + /homeassistant/helpers/condition.py:168:9 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__" +   Type "dict[str, _S@__setitem__]" is not assignable to type "dict[str, dict[str, Any] | None]" +     "dict[str, _S@__setitem__]" is not assignable to "dict[str, dict[str, Any] | None]" +       Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "dict[str, Any] | None" +       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) + /homeassistant/helpers/condition.py:307:10 - error: Function with declared return type "dict[str, type[Condition]]" must return value on all code paths   "None" is not assignable to "dict[str, type[Condition]]" (reportReturnType) - /homeassistant/helpers/condition.py:359:26 - error: Type "tuple[str, ModuleType]" is not assignable to return type "tuple[str, ConditionProtocol | None]" + /homeassistant/helpers/condition.py:413:26 - error: Type "tuple[str, ModuleType]" is not assignable to return type "tuple[str, ConditionProtocol | None]"   Type "ModuleType" is not assignable to type "ConditionProtocol | None"     "ModuleType" is incompatible with protocol "ConditionProtocol"       "async_get_conditions" is not present     "ModuleType" is not assignable to "None" (reportReturnType) - /homeassistant/helpers/condition.py:770:72 - error: "state_value" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/helpers/condition.py:824:72 - error: "state_value" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/helpers/config_validation.py /homeassistant/helpers/config_validation.py:21:5 - error: "_GLOBAL_DEFAULT_TIMEOUT" is unknown import symbol (reportAttributeAccessIssue) /homeassistant/helpers/config_validation.py:873:37 - error: Argument missing for parameter "v" (reportCallIssue) @@ -41080,16 +41608,16 @@ /homeassistant/helpers/entity.py:1314:56 - error: Cannot access attribute "update" for class "Entity*"   Attribute "update" is unknown (reportAttributeAccessIssue) /homeassistant/helpers/entity.py:1320:17 - error: "update_warn" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/helpers/entity.py:1649:5 - error: "entity_description" overrides symbol of same name in class "Entity" + /homeassistant/helpers/entity.py:1651:5 - error: "entity_description" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "ToggleEntityDescription" is not the same as base type "EntityDescription" (reportIncompatibleVariableOverride) - /homeassistant/helpers/entity.py:1651:5 - error: "_attr_state" overrides symbol of same name in class "Entity" + /homeassistant/helpers/entity.py:1653:5 - error: "_attr_state" overrides symbol of same name in class "Entity"   Variable is mutable so its type is invariant     Override type "None" is not the same as base type "StateType" (reportIncompatibleVariableOverride) - /homeassistant/helpers/entity.py:1655:9 - error: "state" overrides symbol of same name in class "Entity" + /homeassistant/helpers/entity.py:1657:9 - error: "state" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[StateType]" (reportIncompatibleVariableOverride) /homeassistant/helpers/entity_component.py - /homeassistant/helpers/entity_component.py:375:22 - error: Argument of type "ModuleType | None" cannot be assigned to parameter "platform" of type "EntityPlatformModule | None" in function "__init__" + /homeassistant/helpers/entity_component.py:378:22 - error: Argument of type "ModuleType | None" cannot be assigned to parameter "platform" of type "EntityPlatformModule | None" in function "__init__"   Type "ModuleType | None" is not assignable to type "EntityPlatformModule | None"     Type "ModuleType" is not assignable to type "EntityPlatformModule | None"       "ModuleType" is incompatible with protocol "EntityPlatformModule" @@ -41098,7 +41626,7 @@         "async_setup_entry" is not present       "ModuleType" is not assignable to "None" (reportArgumentType) /homeassistant/helpers/entity_platform.py - /homeassistant/helpers/entity_platform.py:974:17 - error: "entry" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/helpers/entity_platform.py:982:17 - error: "entry" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/helpers/entity_registry.py /homeassistant/helpers/entity_registry.py:218:13 - error: Cannot access attribute "default" for class "str"   Attribute "default" is unknown (reportAttributeAccessIssue) @@ -41106,7 +41634,7 @@ /homeassistant/helpers/entity_registry.py:339:52 - error: "dict_repr" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/helpers/entity_registry.py:443:13 - error: Cannot access attribute "default" for class "str"   Attribute "default" is unknown (reportAttributeAccessIssue) - /homeassistant/helpers/entity_registry.py:1912:29 - error: Could not access item in TypedDict + /homeassistant/helpers/entity_registry.py:1917:29 - error: Could not access item in TypedDict   "old_entity_id" is not a required key in "_EventEntityRegistryUpdatedData_Update", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/helpers/event.py /homeassistant/helpers/event.py:256:20 - error: "match_from_state" is possibly unbound (reportPossiblyUnboundVariable) @@ -41140,12 +41668,12 @@   "HassJob[(*Any), Coroutine[Any, Any, None] | None]" is not assignable to "HassJob[(HomeAssistant, str, Any), Awaitable[None] | None]"     Type parameter "_R_co@HassJob" is invariant, but "Coroutine[Any, Any, None] | None" is not the same as "Awaitable[None] | None" (reportArgumentType) /homeassistant/helpers/intent.py - /homeassistant/helpers/intent.py:951:9 - error: "slot_schema" incorrectly overrides property of same name in class "IntentHandler" (reportIncompatibleMethodOverride) - /homeassistant/helpers/intent.py:1161:35 - error: "service" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/helpers/intent.py:952:9 - error: "slot_schema" incorrectly overrides property of same name in class "IntentHandler" (reportIncompatibleMethodOverride) + /homeassistant/helpers/intent.py:1162:35 - error: "service" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/helpers/json.py /homeassistant/helpers/json.py:60:33 - error: Function with declared return type "bytes" must return value on all code paths   "None" is not assignable to "bytes" (reportReturnType) - /homeassistant/helpers/json.py:189:55 - error: "dump" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/helpers/json.py:194:55 - error: "dump" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/helpers/llm.py /homeassistant/helpers/llm.py:519:79 - error: "extra" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/helpers/llm.py:521:58 - error: "extra" is possibly unbound (reportPossiblyUnboundVariable) @@ -41196,42 +41724,42 @@       Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "dict[str, set[str]]"       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) /homeassistant/helpers/selector.py - /homeassistant/helpers/selector.py:306:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:310:16 - error: Could not access item in TypedDict   "multiple" is not a required key in "AreaSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:571:20 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:580:20 - error: Could not access item in TypedDict   "value" is not a required key in "ConstantSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:572:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:581:16 - error: Could not access item in TypedDict   "value" is not a required key in "ConstantSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:716:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:725:16 - error: Could not access item in TypedDict   "multiple" is not a required key in "DeviceSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:820:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:829:16 - error: Could not access item in TypedDict   "multiple" is not a required key in "EntitySelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:894:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:903:16 - error: Could not access item in TypedDict   "multiple" is not a required key in "FloorSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:953:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:962:16 - error: Could not access item in TypedDict   "multiple" is not a required key in "LabelSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:1078:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:1092:16 - error: Could not access item in TypedDict   "multiple" is not a required key in "MediaSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:1230:43 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:1244:43 - error: Could not access item in TypedDict   "multiple" is not a required key in "ObjectSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:1236:38 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:1250:38 - error: Could not access item in TypedDict   "fields" is not a required key in "ObjectSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:1289:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:1303:16 - error: Could not access item in TypedDict   "data" is not a required key in "QrCodeSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:1364:12 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:1378:12 - error: Could not access item in TypedDict   "custom_value" is not a required key in "SelectSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:1367:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:1381:16 - error: Could not access item in TypedDict   "multiple" is not a required key in "SelectSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:1407:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:1430:16 - error: Could not access item in TypedDict   "multiple" is not a required key in "StateSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:1440:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:1463:16 - error: Could not access item in TypedDict   "multiple" is not a required key in "StatisticSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/helpers/selector.py:1568:16 - error: Could not access item in TypedDict + /homeassistant/helpers/selector.py:1591:16 - error: Could not access item in TypedDict   "multiple" is not a required key in "TextSelectorConfig", so access may result in runtime exception (reportTypedDictNotRequiredAccess) /homeassistant/helpers/service.py /homeassistant/helpers/service.py:455:6 - error: Expected class but received "(referenced: set[str] = set, indirectly_referenced: set[str] = set, missing_devices: set[str] = set, missing_areas: set[str] = set, missing_floors: set[str] = set, missing_labels: set[str] = set, referenced_devices: set[str] = set, referenced_areas: set[str] = set) -> SelectedEntities" (reportGeneralTypeIssues) - /homeassistant/helpers/service.py:894:16 - error: No overloads for "async_run_hass_job" match the provided arguments (reportCallIssue) - /homeassistant/helpers/service.py:894:40 - error: Argument of type "HassJob[..., _T@partial]" cannot be assigned to parameter "hassjob" of type "HassJob[..., Coroutine[Any, Any, _R@async_run_hass_job] | _R@async_run_hass_job]" in function "async_run_hass_job" + /homeassistant/helpers/service.py:896:16 - error: No overloads for "async_run_hass_job" match the provided arguments (reportCallIssue) + /homeassistant/helpers/service.py:896:40 - error: Argument of type "HassJob[..., _T@partial]" cannot be assigned to parameter "hassjob" of type "HassJob[..., Coroutine[Any, Any, _R@async_run_hass_job] | _R@async_run_hass_job]" in function "async_run_hass_job"   "HassJob[..., _T@partial]" is not assignable to "HassJob[..., Coroutine[Any, Any, _R@async_run_hass_job] | _R@async_run_hass_job]"     Type parameter "_R_co@HassJob" is invariant, but "_T@partial" is not the same as "Coroutine[Any, Any, _R@async_run_hass_job] | _R@async_run_hass_job" (reportArgumentType) /homeassistant/helpers/significant_change.py @@ -41253,50 +41781,56 @@         Type parameter "_KT@dict" is invariant, but "str" is not the same as "tuple[str, str, str, float, float]"         Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "Location" (reportArgumentType) /homeassistant/helpers/template/__init__.py - /homeassistant/helpers/template/__init__.py:899:9 - error: "entity_id" overrides symbol of same name in class "State" + /homeassistant/helpers/template/__init__.py:893:9 - error: "entity_id" overrides symbol of same name in class "State"   "under_cached_property[str]" is not assignable to "str" (reportIncompatibleVariableOverride) - /homeassistant/helpers/template/__init__.py:955:9 - error: "name" overrides symbol of same name in class "State" + /homeassistant/helpers/template/__init__.py:949:9 - error: "name" overrides symbol of same name in class "State"   "property" is not assignable to "under_cached_property[str]" (reportIncompatibleVariableOverride) - /homeassistant/helpers/template/__init__.py:2181:26 - error: "nodes" is not a known attribute of module "jinja2" (reportAttributeAccessIssue) - /homeassistant/helpers/template/__init__.py:2426:9 - error: Overload 1 for "compile" overlaps overload 2 and returns an incompatible type (reportOverlappingOverload) - /homeassistant/helpers/template/__init__.py:2428:30 - error: "nodes" is not a known attribute of module "jinja2" (reportAttributeAccessIssue) - /homeassistant/helpers/template/__init__.py:2438:30 - error: "nodes" is not a known attribute of module "jinja2" (reportAttributeAccessIssue) - /homeassistant/helpers/template/__init__.py:2447:30 - error: "nodes" is not a known attribute of module "jinja2" (reportAttributeAccessIssue) + /homeassistant/helpers/template/__init__.py:1861:26 - error: "nodes" is not a known attribute of module "jinja2" (reportAttributeAccessIssue) + /homeassistant/helpers/template/__init__.py:2059:9 - error: Overload 1 for "compile" overlaps overload 2 and returns an incompatible type (reportOverlappingOverload) + /homeassistant/helpers/template/__init__.py:2061:30 - error: "nodes" is not a known attribute of module "jinja2" (reportAttributeAccessIssue) + /homeassistant/helpers/template/__init__.py:2071:30 - error: "nodes" is not a known attribute of module "jinja2" (reportAttributeAccessIssue) + /homeassistant/helpers/template/__init__.py:2080:30 - error: "nodes" is not a known attribute of module "jinja2" (reportAttributeAccessIssue) /homeassistant/helpers/template/extensions/base.py /homeassistant/helpers/template/extensions/base.py:54:22 - error: Expected 1 positional argument (reportCallIssue) /homeassistant/helpers/trigger.py - /homeassistant/helpers/trigger.py:114:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) - /homeassistant/helpers/trigger.py:114:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__" + /homeassistant/helpers/trigger.py:130:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) + /homeassistant/helpers/trigger.py:130:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__"   Type "dict[str, _S@__setitem__]" is not assignable to type "dict[str, dict[str, Any] | None]"     "dict[str, _S@__setitem__]" is not assignable to "dict[str, dict[str, Any] | None]"       Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "dict[str, Any] | None"       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) - /homeassistant/helpers/trigger.py:116:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) - /homeassistant/helpers/trigger.py:116:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__" + /homeassistant/helpers/trigger.py:133:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) + /homeassistant/helpers/trigger.py:133:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__"   Type "dict[str, _S@__setitem__]" is not assignable to type "dict[str, str]"     "dict[str, _S@__setitem__]" is not assignable to "dict[str, str]"       Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "str"       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) - /homeassistant/helpers/trigger.py:254:64 - error: Function with declared return type "dict[str, type[Trigger]]" must return value on all code paths + /homeassistant/helpers/trigger.py:139:9 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) + /homeassistant/helpers/trigger.py:139:9 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__" +   Type "dict[str, _S@__setitem__]" is not assignable to type "dict[str, dict[str, Any] | None]" +     "dict[str, _S@__setitem__]" is not assignable to "dict[str, dict[str, Any] | None]" +       Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "dict[str, Any] | None" +       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) + /homeassistant/helpers/trigger.py:517:64 - error: Function with declared return type "dict[str, type[Trigger]]" must return value on all code paths   "None" is not assignable to "dict[str, type[Trigger]]" (reportReturnType) - /homeassistant/helpers/trigger.py:261:10 - error: Function with declared return type "ConfigType" must return value on all code paths + /homeassistant/helpers/trigger.py:524:10 - error: Function with declared return type "ConfigType" must return value on all code paths   "None" is not assignable to "dict[str, Any]" (reportReturnType) - /homeassistant/helpers/trigger.py:270:10 - error: Function with declared return type "CALLBACK_TYPE" must return value on all code paths + /homeassistant/helpers/trigger.py:533:10 - error: Function with declared return type "CALLBACK_TYPE" must return value on all code paths   Type "None" is not assignable to type "CALLBACK_TYPE" (reportReturnType) - /homeassistant/helpers/trigger.py:292:10 - error: Function with declared return type "Task[Any]" must return value on all code paths + /homeassistant/helpers/trigger.py:555:10 - error: Function with declared return type "Task[Any]" must return value on all code paths   "None" is not assignable to "Task[Any]" (reportReturnType) - /homeassistant/helpers/trigger.py:305:10 - error: Function with declared return type "dict[str, Any]" must return value on all code paths + /homeassistant/helpers/trigger.py:568:10 - error: Function with declared return type "dict[str, Any]" must return value on all code paths   "None" is not assignable to "dict[str, Any]" (reportReturnType) - /homeassistant/helpers/trigger.py:392:16 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) - /homeassistant/helpers/trigger.py:392:16 - error: Argument of type "defaultdict[str, PluggableActionsEntry]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__" + /homeassistant/helpers/trigger.py:655:16 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) + /homeassistant/helpers/trigger.py:655:16 - error: Argument of type "defaultdict[str, PluggableActionsEntry]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__"   Type "defaultdict[tuple[Unknown, ...], PluggableActionsEntry] | defaultdict[str, PluggableActionsEntry]" is not assignable to type "defaultdict[tuple[Unknown, ...], PluggableActionsEntry]"     Type "defaultdict[tuple[Unknown, ...], PluggableActionsEntry] | defaultdict[str, PluggableActionsEntry]" is not assignable to type "defaultdict[tuple[Unknown, ...], PluggableActionsEntry]"       "defaultdict[str, PluggableActionsEntry]" is not assignable to "defaultdict[tuple[Unknown, ...], PluggableActionsEntry]"         Type parameter "_KT@defaultdict" is invariant, but "str" is not the same as "tuple[Unknown, ...]" (reportArgumentType) - /homeassistant/helpers/trigger.py:393:16 - error: Type "defaultdict[str, PluggableActionsEntry]" is not assignable to return type "dict[tuple[Unknown, ...], PluggableActionsEntry]" + /homeassistant/helpers/trigger.py:656:16 - error: Type "defaultdict[str, PluggableActionsEntry]" is not assignable to return type "dict[tuple[Unknown, ...], PluggableActionsEntry]"   "defaultdict[str, PluggableActionsEntry]" is not assignable to "dict[tuple[Unknown, ...], PluggableActionsEntry]"     Type parameter "_KT@dict" is invariant, but "str" is not the same as "tuple[Unknown, ...]" (reportReturnType) - /homeassistant/helpers/trigger.py:476:26 - error: Type "tuple[str, ModuleType]" is not assignable to return type "tuple[str, TriggerProtocol]" + /homeassistant/helpers/trigger.py:749:26 - error: Type "tuple[str, ModuleType]" is not assignable to return type "tuple[str, TriggerProtocol]"   "ModuleType" is incompatible with protocol "TriggerProtocol"     "async_get_triggers" is not present     "TRIGGER_SCHEMA" is not present @@ -41326,46 +41860,46 @@ /homeassistant/helpers/update_coordinator.py /homeassistant/helpers/update_coordinator.py:62:10 - error: Function with declared return type "() -> None" must return value on all code paths   Type "None" is not assignable to type "() -> None" (reportReturnType) - /homeassistant/helpers/update_coordinator.py:512:35 - error: "start" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/helpers/update_coordinator.py:637:9 - error: "available" overrides symbol of same name in class "Entity" + /homeassistant/helpers/update_coordinator.py:520:35 - error: "start" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/helpers/update_coordinator.py:645:9 - error: "available" overrides symbol of same name in class "Entity"   "property" is not assignable to "cached_property[bool]" (reportIncompatibleVariableOverride) /homeassistant/loader.py - /homeassistant/loader.py:274:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) - /homeassistant/loader.py:274:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__" + /homeassistant/loader.py:275:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) + /homeassistant/loader.py:275:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__"   Type "dict[str, _S@__setitem__]" is not assignable to type "dict[str, ModuleType | ComponentProtocol]"     "dict[str, _S@__setitem__]" is not assignable to "dict[str, ModuleType | ComponentProtocol]"       Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "ModuleType | ComponentProtocol"       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) - /homeassistant/loader.py:275:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) - /homeassistant/loader.py:275:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__" + /homeassistant/loader.py:276:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) + /homeassistant/loader.py:276:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__"   Type "dict[str, _S@__setitem__]" is not assignable to type "dict[str, Integration | Future[Integration | IntegrationNotFound]]"     "dict[str, _S@__setitem__]" is not assignable to "dict[str, Integration | Future[Integration | IntegrationNotFound]]"       Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "Integration | Future[Integration | IntegrationNotFound]"       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) - /homeassistant/loader.py:276:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) - /homeassistant/loader.py:276:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__" + /homeassistant/loader.py:277:5 - error: No overloads for "__setitem__" match the provided arguments (reportCallIssue) + /homeassistant/loader.py:277:5 - error: Argument of type "dict[str, _S@__setitem__]" cannot be assigned to parameter "value" of type "_S@__setitem__" in function "__setitem__"   Type "dict[str, _S@__setitem__]" is not assignable to type "dict[str, bool]"     "dict[str, _S@__setitem__]" is not assignable to "dict[str, bool]"       Type parameter "_VT@dict" is invariant, but "_S@__setitem__" is not the same as "bool"       Consider switching from "dict" to "Mapping" which is covariant in the value type (reportArgumentType) - /homeassistant/loader.py:297:16 - error: Import "custom_components" could not be resolved (reportMissingImports) - /homeassistant/loader.py:373:10 - error: Function with declared return type "bool" must return value on all code paths + /homeassistant/loader.py:298:16 - error: Import "custom_components" could not be resolved (reportMissingImports) + /homeassistant/loader.py:374:10 - error: Function with declared return type "bool" must return value on all code paths   "None" is not assignable to "bool" (reportReturnType) - /homeassistant/loader.py:378:10 - error: Function with declared return type "bool" must return value on all code paths + /homeassistant/loader.py:379:10 - error: Function with declared return type "bool" must return value on all code paths   "None" is not assignable to "bool" (reportReturnType) - /homeassistant/loader.py:383:10 - error: Function with declared return type "bool" must return value on all code paths + /homeassistant/loader.py:384:10 - error: Function with declared return type "bool" must return value on all code paths   "None" is not assignable to "bool" (reportReturnType) - /homeassistant/loader.py:396:10 - error: Function with declared return type "bool" must return value on all code paths + /homeassistant/loader.py:397:10 - error: Function with declared return type "bool" must return value on all code paths   "None" is not assignable to "bool" (reportReturnType) - /homeassistant/loader.py:404:77 - error: Function with declared return type "bool" must return value on all code paths + /homeassistant/loader.py:405:77 - error: Function with declared return type "bool" must return value on all code paths   "None" is not assignable to "bool" (reportReturnType) - /homeassistant/loader.py:407:65 - error: Function with declared return type "bool" must return value on all code paths + /homeassistant/loader.py:408:65 - error: Function with declared return type "bool" must return value on all code paths   "None" is not assignable to "bool" (reportReturnType) - /homeassistant/loader.py:787:16 - error: Could not access item in TypedDict + /homeassistant/loader.py:788:16 - error: Could not access item in TypedDict   "name" is not a required key in "Manifest", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/loader.py:797:16 - error: Could not access item in TypedDict + /homeassistant/loader.py:798:16 - error: Could not access item in TypedDict   "domain" is not a required key in "Manifest", so access may result in runtime exception (reportTypedDictNotRequiredAccess) - /homeassistant/loader.py:979:20 - error: Type "ModuleType | ComponentProtocol" is not assignable to return type "ComponentProtocol" + /homeassistant/loader.py:985:20 - error: Type "ModuleType | ComponentProtocol" is not assignable to return type "ComponentProtocol"   Type "ModuleType | ComponentProtocol" is not assignable to type "ComponentProtocol"     "ModuleType" is incompatible with protocol "ComponentProtocol"       "CONFIG_SCHEMA" is not present @@ -41375,9 +41909,9 @@       "async_migrate_entry" is not present       "async_remove_entry" is not present ... (reportReturnType) - /homeassistant/loader.py:999:43 - error: "start" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/loader.py:1035:39 - error: "start" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/loader.py:1057:20 - error: Type "ModuleType | ComponentProtocol" is not assignable to return type "ComponentProtocol" + /homeassistant/loader.py:1005:43 - error: "start" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/loader.py:1041:39 - error: "start" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/loader.py:1063:20 - error: Type "ModuleType | ComponentProtocol" is not assignable to return type "ComponentProtocol"   Type "ModuleType | ComponentProtocol" is not assignable to type "ComponentProtocol"     "ModuleType" is incompatible with protocol "ComponentProtocol"       "CONFIG_SCHEMA" is not present @@ -41387,7 +41921,7 @@       "async_migrate_entry" is not present       "async_remove_entry" is not present ... (reportReturnType) - /homeassistant/loader.py:1084:16 - error: Type "ModuleType | ComponentProtocol" is not assignable to return type "ComponentProtocol" + /homeassistant/loader.py:1090:16 - error: Type "ModuleType | ComponentProtocol" is not assignable to return type "ComponentProtocol"   Type "ModuleType | ComponentProtocol" is not assignable to type "ComponentProtocol"     "ModuleType" is incompatible with protocol "ComponentProtocol"       "CONFIG_SCHEMA" is not present @@ -41397,9 +41931,11 @@       "async_migrate_entry" is not present       "async_remove_entry" is not present ... (reportReturnType) - /homeassistant/loader.py:1189:47 - error: "start" is possibly unbound (reportPossiblyUnboundVariable) - /homeassistant/loader.py:1487:15 - error: Argument of type "dict[Any, Any]" cannot be assigned to parameter "cache" of type "_ResolveDependenciesCacheProtocol" in function "_resolve_integrations_dependencies" (reportArgumentType) - /homeassistant/loader.py:1673:16 - error: Import "custom_components" could not be resolved (reportMissingImports) + /homeassistant/loader.py:1195:47 - error: "start" is possibly unbound (reportPossiblyUnboundVariable) + /homeassistant/loader.py:1493:15 - error: Argument of type "dict[Any, Any]" cannot be assigned to parameter "cache" of type "_ResolveDependenciesCacheProtocol" in function "_resolve_integrations_dependencies" (reportArgumentType) + /homeassistant/loader.py:1679:16 - error: Import "custom_components" could not be resolved (reportMissingImports) +/homeassistant/runner.py + /homeassistant/runner.py:176:35 - error: "DefaultEventLoopPolicy" is not a known attribute of module "asyncio" (reportAttributeAccessIssue) /homeassistant/scripts/auth.py /homeassistant/scripts/auth.py:76:25 - error: Cannot access attribute "data" for class "AuthProvider"   Attribute "data" is unknown (reportAttributeAccessIssue) @@ -41436,22 +41972,22 @@ /homeassistant/setup.py:560:21 - error: "component" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/setup.py:560:52 - error: "component" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/util/__init__.py - /homeassistant/util/__init__.py:130:23 - error: Function declaration "throttled_value" is obscured by a declaration of the same name (reportRedeclaration) - /homeassistant/util/__init__.py:163:31 - error: Cannot access attribute "__self__" for class "FunctionType" + /homeassistant/util/__init__.py:144:23 - error: Function declaration "throttled_value" is obscured by a declaration of the same name (reportRedeclaration) + /homeassistant/util/__init__.py:177:31 - error: Cannot access attribute "__self__" for class "FunctionType"   Attribute "__self__" is unknown (reportFunctionMemberAccess) - /homeassistant/util/__init__.py:170:22 - error: Cannot assign to attribute "_throttle" for class "_Wrapped[..., Unknown, ..., ((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]]" + /homeassistant/util/__init__.py:184:22 - error: Cannot assign to attribute "_throttle" for class "_Wrapped[..., Unknown, ..., ((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]]"   Attribute "_throttle" is unknown (reportAttributeAccessIssue) - /homeassistant/util/__init__.py:172:37 - error: Cannot access attribute "_throttle" for class "_Wrapped[..., Unknown, ..., ((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]]" + /homeassistant/util/__init__.py:186:37 - error: Cannot access attribute "_throttle" for class "_Wrapped[..., Unknown, ..., ((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]]"   Attribute "_throttle" is unknown (reportAttributeAccessIssue) - /homeassistant/util/__init__.py:173:22 - error: Cannot access attribute "_throttle" for class "_Wrapped[..., Unknown, ..., ((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]]" + /homeassistant/util/__init__.py:187:22 - error: Cannot access attribute "_throttle" for class "_Wrapped[..., Unknown, ..., ((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]]"   Attribute "_throttle" is unknown (reportAttributeAccessIssue) - /homeassistant/util/__init__.py:174:29 - error: Cannot access attribute "_throttle" for class "_Wrapped[..., Unknown, ..., ((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]]" + /homeassistant/util/__init__.py:188:29 - error: Cannot access attribute "_throttle" for class "_Wrapped[..., Unknown, ..., ((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]]"   Attribute "_throttle" is unknown (reportAttributeAccessIssue) - /homeassistant/util/__init__.py:177:24 - error: Type "None" is not assignable to return type "((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]" + /homeassistant/util/__init__.py:191:24 - error: Type "None" is not assignable to return type "((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]"   Type "None" is not assignable to type "((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]"     Type "None" is not assignable to type "(...) -> Unknown"     "None" is not assignable to "Coroutine[Unknown, Unknown, Unknown]" (reportReturnType) - /homeassistant/util/__init__.py:188:24 - error: Type "None" is not assignable to return type "((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]" + /homeassistant/util/__init__.py:202:24 - error: Type "None" is not assignable to return type "((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]"   Type "None" is not assignable to type "((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]"     Type "None" is not assignable to type "(...) -> Unknown"     "None" is not assignable to "Coroutine[Unknown, Unknown, Unknown]" (reportReturnType) @@ -41499,4 +42035,4 @@ /homeassistant/util/loop.py:164:16 - error: "integration_frame" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/util/loop.py:164:60 - error: "integration_frame" is possibly unbound (reportPossiblyUnboundVariable) /homeassistant/util/loop.py:165:17 - error: "integration_frame" is possibly unbound (reportPossiblyUnboundVariable) -19186 errors, 18 warnings, 0 informations +19459 errors, 18 warnings, 0 informations diff --git a/scripts/ty_benchmark/snapshots/homeassistant_mypy.txt b/scripts/ty_benchmark/snapshots/homeassistant_mypy.txt index d3da3ded65..ff6383dc51 100644 --- a/scripts/ty_benchmark/snapshots/homeassistant_mypy.txt +++ b/scripts/ty_benchmark/snapshots/homeassistant_mypy.txt @@ -1,4 +1,24 @@ -homeassistant/components/vivotek/camera.py:101: error: Returning Any from function declared to return "bytes | None" [no-any-return] +homeassistant/scripts/benchmark/__init__.py:39: error: function asyncio.events.get_event_loop_policy is deprecated: Deprecated since Python 3.14; will be removed in Python 3.16. [deprecated] +homeassistant/components/ssdp/common.py:18: error: Item "IPv4Address" of "IPv4Address | IPv6Address" has no attribute "scope_id" [union-attr] +homeassistant/components/apple_tv/config_flow.py:144: error: Returning Any from function declared to return "str | None" [no-any-return] +homeassistant/components/apple_tv/__init__.py:102: error: Statement is unreachable [unreachable] +homeassistant/components/apple_tv/__init__.py:151: error: Name "AppleTVInterface" is not defined [name-defined] +homeassistant/components/apple_tv/__init__.py:245: error: Name "exceptions" is not defined [name-defined] +homeassistant/components/apple_tv/__init__.py:284: error: Name "AppleTV" is not defined [name-defined] +homeassistant/components/apple_tv/__init__.py:295: error: Name "Protocol" is not defined [name-defined] +homeassistant/components/apple_tv/__init__.py:300: error: Name "scan" is not defined [name-defined] +homeassistant/components/apple_tv/__init__.py:308: error: Name "AppleTV" is not defined [name-defined] +homeassistant/components/apple_tv/__init__.py:319: error: Name "AppleTV" is not defined [name-defined] +homeassistant/components/apple_tv/__init__.py:326: error: Name "Protocol" is not defined [name-defined] +homeassistant/components/apple_tv/__init__.py:328: error: Unused "type: ignore" comment [unused-ignore] +homeassistant/components/apple_tv/__init__.py:348: error: Name "connect" is not defined [name-defined] +homeassistant/components/apple_tv/__init__.py:382: error: Name "DeviceModel" is not defined [name-defined] +homeassistant/components/apple_tv/__init__.py:383: error: Name "model_str" is not defined [name-defined] +homeassistant/components/ssdp/server.py:174: error: Item "IPv4Address" of "IPv4Address | IPv6Address" has no attribute "scope_id" [union-attr] +homeassistant/components/ssdp/server.py:179: error: Item "IPv4Address" of "IPv4Address | IPv6Address" has no attribute "scope_id" [union-attr] +homeassistant/components/ssdp/scanner.py:263: error: Item "IPv4Address" of "IPv4Address | IPv6Address" has no attribute "scope_id" [union-attr] +homeassistant/components/ssdp/scanner.py:268: error: Item "IPv4Address" of "IPv4Address | IPv6Address" has no attribute "scope_id" [union-attr] +homeassistant/components/shelly/utils.py:256: error: Generator has incompatible item type "IPv4Address | IPv6Address"; expected "IPv4Address" [misc] homeassistant/components/amcrest/camera.py:194: error: Returning Any from function declared to return "bytes | None" [no-any-return] homeassistant/components/amcrest/camera.py:480: error: Unused "type: ignore" comment [unused-ignore] homeassistant/components/amcrest/camera.py:482: error: Unused "type: ignore" comment [unused-ignore] @@ -10,5 +30,29 @@ homeassistant/components/amcrest/camera.py:607: error: Returning Any from functi homeassistant/components/amcrest/camera.py:628: error: Returning Any from function declared to return "str" [no-any-return] homeassistant/components/amcrest/__init__.py:125: error: Class cannot subclass "ApiWrapper" (has type "Any") [misc] homeassistant/components/amcrest/__init__.py:200: error: Returning Any from function declared to return "Response" [no-any-return] -Found 12 errors in 3 files (checked 8525 source files) +homeassistant/components/apple_tv/media_player.py:113: error: Class cannot subclass "PowerListener" (has type "Any") [misc] +homeassistant/components/apple_tv/media_player.py:113: error: Class cannot subclass "AudioListener" (has type "Any") [misc] +homeassistant/components/apple_tv/media_player.py:113: error: Class cannot subclass "PushListener" (has type "Any") [misc] +homeassistant/components/apple_tv/media_player.py:259: error: Returning Any from function declared to return "str | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:270: error: Returning Any from function declared to return "str | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:293: error: Returning Any from function declared to return "str | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:300: error: Returning Any from function declared to return "float | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:307: error: Returning Any from function declared to return "int | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:314: error: Returning Any from function declared to return "int | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:364: error: Returning Any from function declared to return "str | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:385: error: Returning Any from function declared to return "str | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:392: error: Returning Any from function declared to return "str | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:399: error: Returning Any from function declared to return "str | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:406: error: Returning Any from function declared to return "str | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:441: error: Returning Any from function declared to return "bool | None" [no-any-return] +homeassistant/components/apple_tv/media_player.py:447: error: Returning Any from function declared to return "bool" [no-any-return] +homeassistant/runner.py:176: error: Name "asyncio.DefaultEventLoopPolicy" is not defined [name-defined] +homeassistant/runner.py:176: error: Class cannot subclass "DefaultEventLoopPolicy" (has type "Any") [misc] +homeassistant/runner.py:187: error: Unused "type: ignore[attr-defined]" comment [unused-ignore] +homeassistant/runner.py:284: error: function asyncio.events.set_event_loop_policy is deprecated: Deprecated since Python 3.14; will be removed in Python 3.16. [deprecated] +homeassistant/scripts/auth.py:51: error: function asyncio.events.set_event_loop_policy is deprecated: Deprecated since Python 3.14; will be removed in Python 3.16. [deprecated] +homeassistant/scripts/__init__.py:64: error: function asyncio.events.set_event_loop_policy is deprecated: Deprecated since Python 3.14; will be removed in Python 3.16. [deprecated] +Found 54 errors in 13 files (checked 8626 source files) +/Users/micha/.local/share/uv/python/cpython-3.14.0-macos-aarch64-none/lib/python3.14/importlib/__init__.py:88: UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater. + return _bootstrap._gcd_import(name[level:], package, level) Warning: unused section(s) in mypy.ini: [mypy-tests.*] diff --git a/scripts/ty_benchmark/snapshots/homeassistant_ty.txt b/scripts/ty_benchmark/snapshots/homeassistant_ty.txt index f6f7f863f6..e6e771f7e5 100644 --- a/scripts/ty_benchmark/snapshots/homeassistant_ty.txt +++ b/scripts/ty_benchmark/snapshots/homeassistant_ty.txt @@ -1,10 +1,11 @@ homeassistant/auth/__init__.py:411:19: error[call-non-callable] Object of type `object` is not callable homeassistant/auth/mfa_modules/notify.py:179:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` homeassistant/auth/mfa_modules/notify.py:192:12: warning[possibly-missing-attribute] Attribute `pop` may be missing on object of type `dict[str, NotifySetting] | None` -homeassistant/auth/mfa_modules/notify.py:201:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `str` with `dict[str, NotifySetting] | None` +homeassistant/auth/mfa_modules/notify.py:201:16: error[unsupported-operator] Operator `in` is not supported between objects of type `str` and `dict[str, NotifySetting] | None` homeassistant/auth/mfa_modules/notify.py:209:31: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[str, NotifySetting] | None` homeassistant/auth/mfa_modules/notify.py:226:31: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[str, NotifySetting] | None` homeassistant/auth/mfa_modules/notify.py:249:31: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[str, NotifySetting] | None` +homeassistant/auth/models.py:114:23: error[no-matching-overload] No overload of function `attrib` matches arguments homeassistant/auth/permissions/merge.py:63:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `Mapping[str, SubCategoryType]` homeassistant/auth/providers/__init__.py:268:23: error[call-non-callable] Object of type `object` is not callable homeassistant/auth/providers/homeassistant.py:325:13: warning[possibly-missing-attribute] Attribute `validate_login` may be missing on object of type `Data | None` @@ -28,31 +29,31 @@ homeassistant/components/acmeda/config_flow.py:74:40: error[invalid-argument-typ homeassistant/components/acmeda/cover.py:60:24: error[unsupported-operator] Operator `-` is unsupported between objects of type `Literal[100]` and `Unknown | None` homeassistant/components/acmeda/cover.py:71:24: error[unsupported-operator] Operator `-` is unsupported between objects of type `Literal[100]` and `Unknown | None` homeassistant/components/acmeda/hub.py:64:9: error[invalid-assignment] Object of type `None` is not assignable to attribute `api` of type `Hub` -homeassistant/components/actron_air/__init__.py:30:19: error[invalid-assignment] Object of type `list[dict[str, Any]]` is not assignable to `list[ActronAirNeoACSystem]` -homeassistant/components/actron_air/__init__.py:42:64: error[non-subscriptable] Cannot subscript object of type `ActronAirNeoACSystem` with no `__getitem__` method -homeassistant/components/actron_air/__init__.py:44:29: error[non-subscriptable] Cannot subscript object of type `ActronAirNeoACSystem` with no `__getitem__` method -homeassistant/components/actron_air/climate.py:59:16: error[unresolved-attribute] Object of type `ActronAirNeoACSystem` has no attribute `ac_system` -homeassistant/components/actron_air/climate.py:64:25: error[unresolved-attribute] Object of type `ActronAirNeoACSystem` has no attribute `remote_zone_info` -homeassistant/components/actron_air/climate.py:117:18: warning[possibly-missing-attribute] Attribute `system_name` may be missing on object of type `ActronAirNeoACSystem | None` -homeassistant/components/actron_air/climate.py:119:22: warning[possibly-missing-attribute] Attribute `master_wc_model` may be missing on object of type `ActronAirNeoACSystem | None` -homeassistant/components/actron_air/climate.py:120:24: warning[possibly-missing-attribute] Attribute `master_wc_firmware_version` may be missing on object of type `ActronAirNeoACSystem | None` -homeassistant/components/actron_air/climate.py:137:16: error[invalid-return-type] Return type does not match returned value: expected `ActronAirNeoStatus`, found `Unknown | ActronAirNeoACSystem` -homeassistant/components/actron_air/climate.py:142:16: warning[possibly-missing-attribute] Attribute `is_on` may be missing on object of type `ActronAirNeoUserAirconSettings | None` -homeassistant/components/actron_air/climate.py:145:16: warning[possibly-missing-attribute] Attribute `mode` may be missing on object of type `ActronAirNeoUserAirconSettings | None` -homeassistant/components/actron_air/climate.py:151:20: warning[possibly-missing-attribute] Attribute `fan_mode` may be missing on object of type `ActronAirNeoUserAirconSettings | None` -homeassistant/components/actron_air/climate.py:157:16: warning[possibly-missing-attribute] Attribute `live_humidity_pc` may be missing on object of type `ActronAirNeoMasterInfo | None` -homeassistant/components/actron_air/climate.py:162:16: warning[possibly-missing-attribute] Attribute `live_temp_c` may be missing on object of type `ActronAirNeoMasterInfo | None` -homeassistant/components/actron_air/climate.py:167:16: warning[possibly-missing-attribute] Attribute `temperature_setpoint_cool_c` may be missing on object of type `ActronAirNeoUserAirconSettings | None` -homeassistant/components/actron_air/climate.py:172:15: warning[possibly-missing-attribute] Attribute `set_fan_mode` may be missing on object of type `ActronAirNeoUserAirconSettings | None` +homeassistant/components/actron_air/__init__.py:30:19: error[invalid-assignment] Object of type `list[dict[str, Any]]` is not assignable to `list[ActronAirACSystem]` +homeassistant/components/actron_air/__init__.py:42:64: error[non-subscriptable] Cannot subscript object of type `ActronAirACSystem` with no `__getitem__` method +homeassistant/components/actron_air/__init__.py:44:29: error[non-subscriptable] Cannot subscript object of type `ActronAirACSystem` with no `__getitem__` method +homeassistant/components/actron_air/climate.py:59:16: error[unresolved-attribute] Object of type `ActronAirACSystem` has no attribute `ac_system` +homeassistant/components/actron_air/climate.py:64:25: error[unresolved-attribute] Object of type `ActronAirACSystem` has no attribute `remote_zone_info` +homeassistant/components/actron_air/climate.py:117:18: warning[possibly-missing-attribute] Attribute `system_name` may be missing on object of type `ActronAirACSystem | None` +homeassistant/components/actron_air/climate.py:119:22: warning[possibly-missing-attribute] Attribute `master_wc_model` may be missing on object of type `ActronAirACSystem | None` +homeassistant/components/actron_air/climate.py:120:24: warning[possibly-missing-attribute] Attribute `master_wc_firmware_version` may be missing on object of type `ActronAirACSystem | None` +homeassistant/components/actron_air/climate.py:137:16: error[invalid-return-type] Return type does not match returned value: expected `ActronAirStatus`, found `Unknown | ActronAirACSystem` +homeassistant/components/actron_air/climate.py:142:16: warning[possibly-missing-attribute] Attribute `is_on` may be missing on object of type `ActronAirUserAirconSettings | None` +homeassistant/components/actron_air/climate.py:145:16: warning[possibly-missing-attribute] Attribute `mode` may be missing on object of type `ActronAirUserAirconSettings | None` +homeassistant/components/actron_air/climate.py:151:20: warning[possibly-missing-attribute] Attribute `fan_mode` may be missing on object of type `ActronAirUserAirconSettings | None` +homeassistant/components/actron_air/climate.py:157:16: warning[possibly-missing-attribute] Attribute `live_humidity_pc` may be missing on object of type `ActronAirMasterInfo | None` +homeassistant/components/actron_air/climate.py:162:16: warning[possibly-missing-attribute] Attribute `live_temp_c` may be missing on object of type `ActronAirMasterInfo | None` +homeassistant/components/actron_air/climate.py:167:16: warning[possibly-missing-attribute] Attribute `temperature_setpoint_cool_c` may be missing on object of type `ActronAirUserAirconSettings | None` +homeassistant/components/actron_air/climate.py:172:15: warning[possibly-missing-attribute] Attribute `set_fan_mode` may be missing on object of type `ActronAirUserAirconSettings | None` homeassistant/components/actron_air/climate.py:172:62: error[invalid-argument-type] Argument to bound method `set_fan_mode` is incorrect: Expected `str`, found `Unknown | str | None` -homeassistant/components/actron_air/climate.py:177:15: warning[possibly-missing-attribute] Attribute `set_system_mode` may be missing on object of type `ActronAirNeoACSystem | None` +homeassistant/components/actron_air/climate.py:177:15: warning[possibly-missing-attribute] Attribute `set_system_mode` may be missing on object of type `ActronAirACSystem | None` homeassistant/components/actron_air/climate.py:177:54: error[invalid-argument-type] Argument to bound method `set_system_mode` is incorrect: Expected `str`, found `Unknown | str | None` -homeassistant/components/actron_air/climate.py:182:15: warning[possibly-missing-attribute] Attribute `set_temperature` may be missing on object of type `ActronAirNeoUserAirconSettings | None` +homeassistant/components/actron_air/climate.py:182:15: warning[possibly-missing-attribute] Attribute `set_temperature` may be missing on object of type `ActronAirUserAirconSettings | None` homeassistant/components/actron_air/climate.py:182:65: error[invalid-argument-type] Argument to bound method `set_temperature` is incorrect: Expected `int | float`, found `Any | None` -homeassistant/components/actron_air/climate.py:227:16: warning[possibly-missing-attribute] Attribute `zones` may be missing on object of type `Unknown | ActronAirNeoACSystem` -homeassistant/components/actron_air/coordinator.py:55:30: error[non-subscriptable] Cannot subscript object of type `ActronAirNeoACSystem` with no `__getitem__` method +homeassistant/components/actron_air/climate.py:227:16: warning[possibly-missing-attribute] Attribute `zones` may be missing on object of type `Unknown | ActronAirACSystem` +homeassistant/components/actron_air/coordinator.py:55:30: error[non-subscriptable] Cannot subscript object of type `ActronAirACSystem` with no `__getitem__` method homeassistant/components/actron_air/coordinator.py:60:15: error[invalid-method-override] Invalid override of method `_async_update_data`: Definition is incompatible with `DataUpdateCoordinator._async_update_data` -homeassistant/components/actron_air/coordinator.py:65:16: error[invalid-return-type] Return type does not match returned value: expected `ActronAirNeoStatus`, found `Unknown | ActronAirNeoStatus | None` +homeassistant/components/actron_air/coordinator.py:65:16: error[invalid-return-type] Return type does not match returned value: expected `ActronAirStatus`, found `Unknown | ActronAirStatus | None` homeassistant/components/adguard/entity.py:63:25: error[invalid-argument-type] Invalid argument to key "identifiers" with declared type `set[tuple[str, str]]` on TypedDict `DeviceInfo`: value of type `set[Unknown | tuple[str, Unknown | str, Unknown | int, Unknown | str]]` homeassistant/components/ads/__init__.py:5:8: error[unresolved-import] Cannot resolve imported module `pyads` homeassistant/components/ads/binary_sensor.py:5:8: error[unresolved-import] Cannot resolve imported module `pyads` @@ -109,28 +110,29 @@ homeassistant/components/amcrest/camera.py:259:49: error[invalid-argument-type] homeassistant/components/amcrest/camera.py:266:17: error[invalid-argument-type] Argument to function `async_aiohttp_proxy_stream` is incorrect: Expected `StreamReader`, found `StreamReader` homeassistant/components/amcrest/sensor.py:9:6: error[unresolved-import] Cannot resolve imported module `amcrest` homeassistant/components/ampio/air_quality.py:8:6: error[unresolved-import] Cannot resolve imported module `asmog` -homeassistant/components/analytics/analytics.py:167:16: error[invalid-return-type] Return type does not match returned value: expected `AnalyticsPlatformProtocol | None`, found `ModuleType` +homeassistant/components/analytics/analytics.py:182:16: error[invalid-return-type] Return type does not match returned value: expected `AnalyticsPlatformProtocol | None`, found `ModuleType` homeassistant/components/androidtv/entity.py:46:43: error[invalid-type-arguments] Too many type arguments: expected 2, got 3 homeassistant/components/androidtv/entity.py:46:82: error[invalid-type-arguments] Too many type arguments: expected 2, got 3 homeassistant/components/androidtv/entity.py:54:42: error[invalid-type-arguments] Too many type arguments: expected 2, got 3 homeassistant/components/androidtv/entity.py:55:43: error[invalid-type-arguments] Too many type arguments: expected 2, got 3 homeassistant/components/androidtv/entity.py:75:21: error[unresolved-attribute] Object of type `(...) -> Awaitable[Unknown]` has no attribute `__name__` homeassistant/components/anel_pwrctrl/switch.py:9:6: error[unresolved-import] Cannot resolve imported module `anel_pwrctrl` +homeassistant/components/anglian_water/config_flow.py:82:44: warning[possibly-missing-attribute] Attribute `refresh_token` may be missing on object of type `(str & BaseAuth) | MSOB2CAuth` homeassistant/components/anthemav/config_flow.py:74:47: error[unresolved-attribute] Object of type `Protocol` has no attribute `macaddress` homeassistant/components/anthemav/config_flow.py:75:38: error[unresolved-attribute] Object of type `Protocol` has no attribute `model` homeassistant/components/anthemav/media_player.py:44:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `AVR`, found `Protocol` homeassistant/components/anthemav/media_player.py:46:28: error[unresolved-attribute] Object of type `Protocol` has no attribute `zones` homeassistant/components/anthropic/ai_task.py:60:16: warning[possibly-missing-attribute] Attribute `content` may be missing on object of type `SystemContent | UserContent | AssistantContent | ToolResultContent` -homeassistant/components/anthropic/config_flow.py:125:46: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `Never`, found `Literal["error"]` -homeassistant/components/anthropic/config_flow.py:136:21: error[invalid-argument-type] Argument to bound method `async_create_entry` is incorrect: Expected `Iterable[ConfigSubentryData] | None`, found `list[Unknown | dict[Unknown | str, Unknown | str | dict[Unknown | str, Unknown | bool | list[Unknown | str] | str] | None] | dict[Unknown | str, Unknown | str | dict[Unknown | str, Unknown | bool] | None]]` -homeassistant/components/anthropic/entity.py:187:29: error[invalid-argument-type] Invalid argument to key "content" with declared type `Iterable[WebSearchResultBlockParam] | WebSearchToolRequestErrorParam` on TypedDict `WebSearchToolResultBlockParam`: value of type `dict[str, Any] | list[Any] | str | ... omitted 4 union elements` -homeassistant/components/anthropic/entity.py:261:58: error[invalid-argument-type] Invalid argument to key "text" with declared type `str` on TypedDict `TextBlockParam`: value of type `str | Iterable[TextBlockParam | ImageBlockParam | DocumentBlockParam | ... omitted 13 union elements]` -homeassistant/components/anthropic/entity.py:399:24: error[unresolved-reference] Name `first_block` used when not defined -homeassistant/components/anthropic/entity.py:410:21: error[unresolved-reference] Name `first_block` used when not defined -homeassistant/components/anthropic/entity.py:431:20: error[unresolved-reference] Name `first_block` used when not defined -homeassistant/components/anthropic/entity.py:507:21: error[unresolved-reference] Name `current_tool_args` used when not defined -homeassistant/components/anthropic/entity.py:656:44: warning[possibly-missing-attribute] Attribute `attachments` may be missing on object of type `SystemContent | UserContent | AssistantContent | ToolResultContent` -homeassistant/components/anthropic/entity.py:668:64: warning[possibly-missing-attribute] Attribute `attachments` may be missing on object of type `SystemContent | UserContent | AssistantContent | ToolResultContent` +homeassistant/components/anthropic/config_flow.py:119:46: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `Never`, found `Literal["error"]` +homeassistant/components/anthropic/config_flow.py:130:21: error[invalid-argument-type] Argument to bound method `async_create_entry` is incorrect: Expected `Iterable[ConfigSubentryData] | None`, found `list[Unknown | dict[Unknown | str, Unknown | str | dict[Unknown | str, Unknown | bool | list[Unknown | str] | str] | None] | dict[Unknown | str, Unknown | str | dict[Unknown | str, Unknown | bool] | None]]` +homeassistant/components/anthropic/entity.py:184:29: error[invalid-argument-type] Invalid argument to key "content" with declared type `Iterable[WebSearchResultBlockParam] | WebSearchToolRequestErrorParam` on TypedDict `WebSearchToolResultBlockParam`: value of type `dict[str, Any] | list[Any] | str | ... omitted 4 union elements` +homeassistant/components/anthropic/entity.py:258:58: error[invalid-argument-type] Invalid argument to key "text" with declared type `str` on TypedDict `TextBlockParam`: value of type `str | Iterable[TextBlockParam | ImageBlockParam | DocumentBlockParam | ... omitted 13 union elements]` +homeassistant/components/anthropic/entity.py:396:24: error[unresolved-reference] Name `first_block` used when not defined +homeassistant/components/anthropic/entity.py:407:21: error[unresolved-reference] Name `first_block` used when not defined +homeassistant/components/anthropic/entity.py:428:20: error[unresolved-reference] Name `first_block` used when not defined +homeassistant/components/anthropic/entity.py:504:21: error[unresolved-reference] Name `current_tool_args` used when not defined +homeassistant/components/anthropic/entity.py:655:44: warning[possibly-missing-attribute] Attribute `attachments` may be missing on object of type `SystemContent | UserContent | AssistantContent | ToolResultContent` +homeassistant/components/anthropic/entity.py:667:64: warning[possibly-missing-attribute] Attribute `attachments` may be missing on object of type `SystemContent | UserContent | AssistantContent | ToolResultContent` homeassistant/components/apache_kafka/__init__.py:133:37: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventStateChangedData]` homeassistant/components/apache_kafka/__init__.py:133:58: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `bound method Self@start.write(event: Event[EventStateChangedData]) -> CoroutineType[Any, Any, None]` homeassistant/components/api/__init__.py:286:28: error[invalid-argument-type] Argument to bound method `async_set` is incorrect: Expected `str`, found `dict[str, dict[str, Any] | list[Any] | str | ... omitted 3 union elements] | list[dict[str, Any] | list[Any] | str | ... omitted 3 union elements] | str | int | float` @@ -138,6 +140,10 @@ homeassistant/components/api/__init__.py:286:39: error[invalid-argument-type] Ar homeassistant/components/api/__init__.py:286:51: error[invalid-argument-type] Argument to bound method `async_set` is incorrect: Expected `bool`, found `dict[str, Any] | list[Any] | str | ... omitted 3 union elements` homeassistant/components/api/__init__.py:431:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventStateChangedData]` homeassistant/components/api/__init__.py:432:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _async_save_changed_entities(event: Event[EventStateChangedData]) -> None` +homeassistant/components/apple_tv/__init__.py:151:10: error[invalid-type-form] Variable of type `Never` is not allowed in a type expression +homeassistant/components/apple_tv/__init__.py:284:30: error[invalid-type-form] Variable of type `Never` is not allowed in a type expression +homeassistant/components/apple_tv/__init__.py:308:25: error[invalid-type-form] Variable of type `Never` is not allowed in a type expression +homeassistant/components/apple_tv/__init__.py:319:36: error[invalid-type-form] Variable of type `Never` is not allowed in a type expression homeassistant/components/apple_tv/__init__.py:372:13: warning[possibly-missing-attribute] Attribute `removesuffix` may be missing on object of type `Unknown | set[Unknown | tuple[str, Unknown | str | None]] | str` homeassistant/components/apple_tv/__init__.py:392:57: error[invalid-argument-type] Argument to bound method `async_get_or_create` is incorrect: Expected `str | None | UndefinedType`, found `Unknown | set[Unknown | tuple[str, Unknown | str | None]] | str` homeassistant/components/apple_tv/__init__.py:392:57: error[invalid-argument-type] Argument to bound method `async_get_or_create` is incorrect: Expected `str | URL | None | UndefinedType`, found `Unknown | set[Unknown | tuple[str, Unknown | str | None]] | str` @@ -161,8 +167,19 @@ homeassistant/components/apple_tv/__init__.py:392:57: error[invalid-argument-typ homeassistant/components/apple_tv/__init__.py:392:57: error[invalid-argument-type] Argument to bound method `async_get_or_create` is incorrect: Expected `str | None`, found `Unknown | set[Unknown | tuple[str, Unknown | str | None]] | str` homeassistant/components/apple_tv/__init__.py:392:57: error[invalid-argument-type] Argument to bound method `async_get_or_create` is incorrect: Expected `Mapping[str, str] | None`, found `Unknown | set[Unknown | tuple[str, Unknown | str | None]] | str` homeassistant/components/apple_tv/__init__.py:392:57: error[invalid-argument-type] Argument to bound method `async_get_or_create` is incorrect: Expected `tuple[str, str] | None | UndefinedType`, found `Unknown | set[Unknown | tuple[str, Unknown | str | None]] | str` +homeassistant/components/apple_tv/config_flow.py:13:6: error[unresolved-import] Cannot resolve imported module `pyatv` +homeassistant/components/apple_tv/config_flow.py:14:6: error[unresolved-import] Cannot resolve imported module `pyatv.const` +homeassistant/components/apple_tv/config_flow.py:15:6: error[unresolved-import] Cannot resolve imported module `pyatv.convert` +homeassistant/components/apple_tv/config_flow.py:16:6: error[unresolved-import] Cannot resolve imported module `pyatv.helpers` +homeassistant/components/apple_tv/config_flow.py:17:6: error[unresolved-import] Cannot resolve imported module `pyatv.interface` homeassistant/components/apple_tv/config_flow.py:292:9: error[invalid-method-override] Invalid override of method `is_matching`: Definition is incompatible with `ConfigFlow.is_matching` +homeassistant/components/apple_tv/entity.py:5:6: error[unresolved-import] Cannot resolve imported module `pyatv.interface` +homeassistant/components/apple_tv/media_player.py:9:6: error[unresolved-import] Cannot resolve imported module `pyatv` +homeassistant/components/apple_tv/media_player.py:10:6: error[unresolved-import] Cannot resolve imported module `pyatv.const` +homeassistant/components/apple_tv/media_player.py:19:6: error[unresolved-import] Cannot resolve imported module `pyatv.helpers` +homeassistant/components/apple_tv/media_player.py:20:6: error[unresolved-import] Cannot resolve imported module `pyatv.interface` homeassistant/components/apple_tv/media_player.py:484:41: error[invalid-argument-type] Argument to bound method `insert` is incorrect: Expected `Never`, found `BrowseMedia` +homeassistant/components/apple_tv/remote.py:8:6: error[unresolved-import] Cannot resolve imported module `pyatv.const` homeassistant/components/application_credentials/__init__.py:309:12: error[invalid-return-type] Return type does not match returned value: expected `ApplicationCredentialsProtocol | None`, found `ModuleType` homeassistant/components/aprilaire/coordinator.py:57:13: error[invalid-assignment] Object of type `~AlwaysFalsy` is not assignable to attribute `data` of type `dict[str, Any]` homeassistant/components/aprilaire/entity.py:37:27: error[invalid-assignment] Object of type `Unknown | None` is not assignable to `bool` @@ -180,7 +197,7 @@ homeassistant/components/aquostv/media_player.py:9:8: error[unresolved-import] C homeassistant/components/arest/sensor.py:172:39: error[call-non-callable] Object of type `None` is not callable homeassistant/components/arris_tg2492lg/device_tracker.py:6:6: error[unresolved-import] Cannot resolve imported module `arris_tg2492lg` homeassistant/components/arve/coordinator.py:49:15: error[invalid-method-override] Invalid override of method `_async_update_data`: Definition is incompatible with `DataUpdateCoordinator._async_update_data` -homeassistant/components/arve/entity.py:47:13: error[unsupported-operator] Operator `in` is not supported for types `Unknown` and `ArveSensProData`, in comparing `Unknown | str` with `Unknown | ArveSensProData` +homeassistant/components/arve/entity.py:47:13: error[unsupported-operator] Operator `in` is not supported between objects of type `Unknown | str` and `Unknown | ArveSensProData` homeassistant/components/arve/entity.py:53:16: error[non-subscriptable] Cannot subscript object of type `ArveSensProData` with no `__getitem__` method homeassistant/components/assist_pipeline/select.py:90:13: error[invalid-argument-type] Argument to function `replace` is incorrect: Argument type `Unknown | SelectEntityDescription` does not satisfy upper bound `DataclassInstance` of type variable `_DataclassT` homeassistant/components/assist_pipeline/vad.py:52:28: error[invalid-type-form] Variable of type `def bytes(self) -> Unknown` is not allowed in a type expression @@ -301,7 +318,7 @@ homeassistant/components/backup/util.py:186:20: warning[possibly-missing-attribu homeassistant/components/backup/util.py:289:35: warning[possibly-missing-attribute] Attribute `plaintext_size` may be missing on object of type `Unknown | SecureTarHeader | None` homeassistant/components/baf/entity.py:24:25: error[invalid-argument-type] Invalid argument to key "connections" with declared type `set[tuple[str, str]]` on TypedDict `DeviceInfo`: value of type `set[Unknown | tuple[str, Unknown | str | None]]` homeassistant/components/baidu/tts.py:5:6: error[unresolved-import] Cannot resolve imported module `aip` -homeassistant/components/bang_olufsen/media_player.py:932:53: error[invalid-argument-type] Argument to function `loads` is incorrect: Expected `str | bytes | bytearray`, found `Unknown | None` +homeassistant/components/bang_olufsen/media_player.py:952:53: error[invalid-argument-type] Argument to function `loads` is incorrect: Expected `str | bytes | bytearray`, found `Unknown | None` homeassistant/components/bbox/device_tracker.py:9:8: error[unresolved-import] Cannot resolve imported module `pybbox` homeassistant/components/bbox/sensor.py:8:8: error[unresolved-import] Cannot resolve imported module `pybbox` homeassistant/components/beewi_smartclim/sensor.py:5:6: error[unresolved-import] Cannot resolve imported module `beewi_smartclim` @@ -324,8 +341,6 @@ homeassistant/components/bluetooth/diagnostics.py:8:32: warning[possibly-missing homeassistant/components/bluetooth/passive_update_coordinator.py:78:20: error[not-iterable] Object of type `GeneratorType[~None, None, None]` is not iterable homeassistant/components/bluetooth/passive_update_processor.py:99:30: error[invalid-assignment] Object of type `object` is not assignable to `type[EntityDescription]` homeassistant/components/bluetooth/passive_update_processor.py:667:36: error[invalid-assignment] Cannot assign value of type `str` to key of type `Never` on TypedDict `DeviceInfo` -homeassistant/components/bluetooth_tracker/device_tracker.py:10:8: error[unresolved-import] Cannot resolve imported module `bluetooth` -homeassistant/components/bluetooth_tracker/device_tracker.py:11:6: error[unresolved-import] Cannot resolve imported module `bt_proximity` homeassistant/components/bond/button.py:49:9: error[invalid-argument-type] Argument is incorrect: Expected `Action | None`, found `Unknown | Literal["TurnOn"]` homeassistant/components/bond/button.py:56:9: error[invalid-argument-type] Argument is incorrect: Expected `Action | None`, found `Unknown | Literal["TurnLightOn"]` homeassistant/components/bond/button.py:63:9: error[invalid-argument-type] Argument is incorrect: Expected `Action | None`, found `Unknown | Literal["SetBrightness"]` @@ -403,15 +418,15 @@ homeassistant/components/buienradar/util.py:209:26: error[invalid-argument-type] homeassistant/components/buienradar/util.py:209:26: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[str, Any] | None` homeassistant/components/buienradar/util.py:217:26: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsFloat | SupportsIndex`, found `Any | None` homeassistant/components/buienradar/util.py:217:26: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[str, Any] | None` -homeassistant/components/buienradar/util.py:225:24: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc`, found `Any | None` +homeassistant/components/buienradar/util.py:225:24: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex`, found `Any | None` homeassistant/components/buienradar/util.py:225:24: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[str, Any] | None` -homeassistant/components/buienradar/util.py:233:24: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc`, found `Any | None` +homeassistant/components/buienradar/util.py:233:24: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex`, found `Any | None` homeassistant/components/buienradar/util.py:233:24: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[str, Any] | None` homeassistant/components/buienradar/util.py:241:26: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsFloat | SupportsIndex`, found `Any | None` homeassistant/components/buienradar/util.py:241:26: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[str, Any] | None` homeassistant/components/buienradar/util.py:249:26: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsFloat | SupportsIndex`, found `Any | None` homeassistant/components/buienradar/util.py:249:26: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[str, Any] | None` -homeassistant/components/buienradar/util.py:257:24: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc`, found `Any | None` +homeassistant/components/buienradar/util.py:257:24: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex`, found `Any | None` homeassistant/components/buienradar/util.py:257:24: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[str, Any] | None` homeassistant/components/buienradar/util.py:264:16: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[str, Any] | None` homeassistant/components/caldav/todo.py:70:35: error[invalid-argument-type] Argument to function `get_attr_value` is incorrect: Expected `CalendarObjectResource`, found `~AlwaysFalsy` @@ -451,19 +466,28 @@ homeassistant/components/cisco_webex_teams/notify.py:8:6: error[unresolved-impor homeassistant/components/citybikes/sensor.py:11:6: error[unresolved-import] Cannot resolve imported module `citybikes` homeassistant/components/citybikes/sensor.py:12:6: error[unresolved-import] Cannot resolve imported module `citybikes.asyncio` homeassistant/components/clementine/media_player.py:8:6: error[unresolved-import] Cannot resolve imported module `clementineremote` -homeassistant/components/cloud/__init__.py:85:43: error[invalid-type-arguments] Too many type arguments to class `SignalType`: expected 0, got 1 -homeassistant/components/cloud/__init__.py:281:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[str, Any]`, found `Unknown | (str & ~AlwaysFalsy)` -homeassistant/components/cloud/__init__.py:281:63: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[str, Any]`, found `Unknown | (str & ~AlwaysFalsy)` -homeassistant/components/cloud/__init__.py:282:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Literal["development", "production"]`, found `Unknown | str` -homeassistant/components/cloud/__init__.py:282:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[Literal["remote_access_resolve_dns_cname", "subscription_info", "subscription_migrate_paypal", "voice_connection_details"], str] | None`, found `Unknown | str` -homeassistant/components/cloud/__init__.py:282:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Literal["development", "production"]`, found `Unknown | str` -homeassistant/components/cloud/__init__.py:282:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[Literal["remote_access_resolve_dns_cname", "subscription_info", "subscription_migrate_paypal", "voice_connection_details"], str] | None`, found `Unknown | str` +homeassistant/components/cloud/__init__.py:95:43: error[invalid-type-arguments] Too many type arguments to class `SignalType`: expected 0, got 1 +homeassistant/components/cloud/__init__.py:99:40: error[invalid-type-arguments] Too many type arguments to class `SignalType`: expected 0, got 1 +homeassistant/components/cloud/__init__.py:313:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[str, Any]`, found `Unknown | (str & ~AlwaysFalsy)` +homeassistant/components/cloud/__init__.py:313:63: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[str, Any]`, found `Unknown | (str & ~AlwaysFalsy)` +homeassistant/components/cloud/__init__.py:314:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Literal["development", "production"]`, found `Unknown | str` +homeassistant/components/cloud/__init__.py:314:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[Literal["acme_directory", "llm_connection_details", "relayer_connect", "remote_access_resolve_dns_cname", "subscription_info", "subscription_migrate_paypal", "voice_connection_details"], str] | None`, found `Unknown | str` +homeassistant/components/cloud/__init__.py:314:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Literal["development", "production"]`, found `Unknown | str` +homeassistant/components/cloud/__init__.py:314:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[Literal["acme_directory", "llm_connection_details", "relayer_connect", "remote_access_resolve_dns_cname", "subscription_info", "subscription_migrate_paypal", "voice_connection_details"], str] | None`, found `Unknown | str` +homeassistant/components/cloud/ai_task.py:132:16: warning[possibly-missing-attribute] Attribute `content` may be missing on object of type `SystemContent | UserContent | AssistantContent | ToolResultContent` homeassistant/components/cloud/alexa_config.py:272:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` homeassistant/components/cloud/alexa_config.py:273:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `bound method Self@async_initialize._handle_entity_registry_updated(event: Event[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]) -> CoroutineType[Any, Any, None]` homeassistant/components/cloud/alexa_config.py:543:28: error[invalid-key] Unknown key "changes" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "changes" homeassistant/components/cloud/alexa_config.py:547:45: error[invalid-key] Unknown key "old_entity_id" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "old_entity_id" -homeassistant/components/cloud/client.py:96:33: error[unresolved-attribute] Object of type `object` has no attribute `AppRunner` +homeassistant/components/cloud/client.py:97:33: error[unresolved-attribute] Object of type `object` has no attribute `AppRunner` homeassistant/components/cloud/const.py:90:38: error[invalid-type-arguments] Too many type arguments to class `SignalType`: expected 0, got 1 +homeassistant/components/cloud/entity.py:82:21: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `EasyInputMessageParam | Message | ResponseOutputMessageParam | ... omitted 22 union elements`, found `dict[Unknown | str, Unknown | str]` +homeassistant/components/cloud/entity.py:95:17: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `EasyInputMessageParam | Message | ResponseOutputMessageParam | ... omitted 22 union elements`, found `dict[Unknown | str, Unknown | str]` +homeassistant/components/cloud/entity.py:114:29: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `EasyInputMessageParam | Message | ResponseOutputMessageParam | ... omitted 22 union elements`, found `dict[Unknown | str, Unknown | str]` +homeassistant/components/cloud/entity.py:127:21: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `EasyInputMessageParam | Message | ResponseOutputMessageParam | ... omitted 22 union elements`, found `dict[Unknown | str, Unknown | str | list[dict[Unknown | str, Unknown | str] | Unknown] | list[Unknown]]` +homeassistant/components/cloud/entity.py:461:44: warning[possibly-missing-attribute] Attribute `attachments` may be missing on object of type `SystemContent | UserContent | AssistantContent | ToolResultContent` +homeassistant/components/cloud/entity.py:462:64: warning[possibly-missing-attribute] Attribute `attachments` may be missing on object of type `SystemContent | UserContent | AssistantContent | ToolResultContent` +homeassistant/components/cloud/entity.py:463:31: warning[possibly-missing-attribute] Attribute `content` may be missing on object of type `SystemContent | UserContent | AssistantContent | ToolResultContent` homeassistant/components/cloud/google_config.py:269:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` homeassistant/components/cloud/google_config.py:270:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `bound method Self@async_initialize._handle_entity_registry_updated(event: Event[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]) -> None` homeassistant/components/cloud/google_config.py:275:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventDeviceRegistryUpdatedData_Create | _EventDeviceRegistryUpdatedData_Remove | _EventDeviceRegistryUpdatedData_Update]` @@ -473,24 +497,27 @@ homeassistant/components/cloud/google_config.py:495:76: error[invalid-key] Unkno homeassistant/components/cloud/google_config.py:495:76: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Remove`: Unknown key "changes" homeassistant/components/cmus/media_player.py:8:6: error[unresolved-import] Cannot resolve imported module `pycmus` homeassistant/components/comfoconnect/__init__.py:104:26: warning[possibly-missing-attribute] Attribute `hex` may be missing on object of type `Unknown | str` -homeassistant/components/concord232/alarm_control_panel.py:8:6: error[unresolved-import] Cannot resolve imported module `concord232` -homeassistant/components/concord232/binary_sensor.py:8:6: error[unresolved-import] Cannot resolve imported module `concord232` +homeassistant/components/concord232/alarm_control_panel.py:84:9: error[unresolved-attribute] Unresolved attribute `partitions` on type `Client`. +homeassistant/components/concord232/binary_sensor.py:68:9: error[unresolved-attribute] Unresolved attribute `zones` on type `Client`. +homeassistant/components/concord232/binary_sensor.py:69:9: error[unresolved-attribute] Unresolved attribute `last_zone_update` on type `Client`. +homeassistant/components/concord232/binary_sensor.py:80:5: error[unresolved-attribute] Object of type `Client` has no attribute `zones` +homeassistant/components/concord232/binary_sensor.py:82:17: error[unresolved-attribute] Object of type `Client` has no attribute `zones` homeassistant/components/concord232/binary_sensor.py:129:16: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/concord232/binary_sensor.py:135:21: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/concord232/binary_sensor.py:144:52: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/control4/config_flow.py:133:24: warning[possibly-missing-attribute] Attribute `split` may be missing on object of type `Unknown | None` homeassistant/components/control4/config_flow.py:138:21: error[invalid-argument-type] Argument to bound method `async_create_entry` is incorrect: Expected `str`, found `Unknown | None` -homeassistant/components/conversation/chat_log.py:54:16: warning[possibly-missing-attribute] Attribute `content` may be missing on object of type `SystemContent | UserContent | AssistantContent | ToolResultContent` -homeassistant/components/conversation/chat_log.py:424:40: error[invalid-key] Unknown key "tool_call_id" for TypedDict `AssistantContentDeltaDict` - did you mean "tool_calls"? -homeassistant/components/conversation/chat_log.py:425:37: error[invalid-key] Unknown key "tool_name" for TypedDict `AssistantContentDeltaDict`: Unknown key "tool_name" -homeassistant/components/conversation/chat_log.py:426:39: error[invalid-key] Unknown key "tool_result" for TypedDict `AssistantContentDeltaDict`: Unknown key "tool_result" -homeassistant/components/conversation/default_agent.py:274:33: error[invalid-key] Unknown key "changes" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "changes" -homeassistant/components/conversation/default_agent.py:289:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventAreaRegistryUpdatedData]` -homeassistant/components/conversation/default_agent.py:293:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventFloorRegistryUpdatedData]` -homeassistant/components/conversation/default_agent.py:297:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` -homeassistant/components/conversation/default_agent.py:299:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `bound method Self@_listen_clear_slot_list._filter_entity_registry_changes(event_data: _EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update) -> bool` -homeassistant/components/conversation/default_agent.py:302:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventStateChangedData]` -homeassistant/components/conversation/default_agent.py:304:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `bound method Self@_listen_clear_slot_list._filter_state_changes(event_data: EventStateChangedData) -> bool` +homeassistant/components/conversation/chat_log.py:93:16: warning[possibly-missing-attribute] Attribute `content` may be missing on object of type `SystemContent | UserContent | AssistantContent | ToolResultContent` +homeassistant/components/conversation/chat_log.py:587:40: error[invalid-key] Unknown key "tool_call_id" for TypedDict `AssistantContentDeltaDict` - did you mean "tool_calls"? +homeassistant/components/conversation/chat_log.py:588:37: error[invalid-key] Unknown key "tool_name" for TypedDict `AssistantContentDeltaDict`: Unknown key "tool_name" +homeassistant/components/conversation/chat_log.py:589:39: error[invalid-key] Unknown key "tool_result" for TypedDict `AssistantContentDeltaDict`: Unknown key "tool_result" +homeassistant/components/conversation/default_agent.py:275:33: error[invalid-key] Unknown key "changes" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "changes" +homeassistant/components/conversation/default_agent.py:290:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventAreaRegistryUpdatedData]` +homeassistant/components/conversation/default_agent.py:294:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventFloorRegistryUpdatedData_Create_Remove_Update | _EventFloorRegistryUpdatedData_Reorder]` +homeassistant/components/conversation/default_agent.py:298:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` +homeassistant/components/conversation/default_agent.py:300:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `bound method Self@_listen_clear_slot_list._filter_entity_registry_changes(event_data: _EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update) -> bool` +homeassistant/components/conversation/default_agent.py:303:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventStateChangedData]` +homeassistant/components/conversation/default_agent.py:305:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `bound method Self@_listen_clear_slot_list._filter_state_changes(event_data: EventStateChangedData) -> bool` homeassistant/components/counter/__init__.py:219:53: error[invalid-argument-type] Argument to function `max` is incorrect: Argument type `int | None` does not satisfy upper bound `SupportsDunderLT[Any] | SupportsDunderGT[Any]` of type variable `SupportsRichComparisonT` homeassistant/components/counter/__init__.py:221:53: error[invalid-argument-type] Argument to function `min` is incorrect: Argument type `int | None | Unknown` does not satisfy upper bound `SupportsDunderLT[Any] | SupportsDunderGT[Any]` of type variable `SupportsRichComparisonT` homeassistant/components/cppm_tracker/device_tracker.py:8:6: error[unresolved-import] Cannot resolve imported module `clearpasspy` @@ -522,12 +549,12 @@ homeassistant/components/danfoss_air/sensor.py:7:6: error[unresolved-import] Can homeassistant/components/danfoss_air/switch.py:8:6: error[unresolved-import] Cannot resolve imported module `pydanfossair.commands` homeassistant/components/datadog/__init__.py:124:31: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventStateChangedData]` homeassistant/components/deconz/button.py:104:13: error[unresolved-attribute] Object of type `ButtonEntityDescription` has no attribute `button_fn` -homeassistant/components/deconz/light.py:255:12: error[unsupported-operator] Operator `not in` is not supported for types `Unknown` and `None`, in comparing `Unknown | ColorMode` with `set[ColorMode] | set[str] | None` -homeassistant/components/deconz/light.py:303:16: error[unsupported-operator] Operator `in` is not supported for types `Literal[ColorMode.XY]` and `None`, in comparing `Literal[ColorMode.XY]` with `set[ColorMode] | set[str] | None` -homeassistant/components/decora_wifi/light.py:8:6: error[unresolved-import] Cannot resolve imported module `decora_wifi` -homeassistant/components/decora_wifi/light.py:9:6: error[unresolved-import] Cannot resolve imported module `decora_wifi.models.person` -homeassistant/components/decora_wifi/light.py:10:6: error[unresolved-import] Cannot resolve imported module `decora_wifi.models.residence` -homeassistant/components/decora_wifi/light.py:11:6: error[unresolved-import] Cannot resolve imported module `decora_wifi.models.residential_account` +homeassistant/components/deconz/light.py:255:12: error[unsupported-operator] Operator `not in` is not supported between objects of type `Unknown | ColorMode` and `set[ColorMode] | set[str] | None` +homeassistant/components/deconz/light.py:303:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal[ColorMode.XY]` and `set[ColorMode] | set[str] | None` +homeassistant/components/decora_wifi/light.py:9:6: error[unresolved-import] Cannot resolve imported module `decora_wifi` +homeassistant/components/decora_wifi/light.py:10:6: error[unresolved-import] Cannot resolve imported module `decora_wifi.models.person` +homeassistant/components/decora_wifi/light.py:11:6: error[unresolved-import] Cannot resolve imported module `decora_wifi.models.residence` +homeassistant/components/decora_wifi/light.py:12:6: error[unresolved-import] Cannot resolve imported module `decora_wifi.models.residential_account` homeassistant/components/delijn/sensor.py:8:6: error[unresolved-import] Cannot resolve imported module `pydelijn.api` homeassistant/components/delijn/sensor.py:9:6: error[unresolved-import] Cannot resolve imported module `pydelijn.common` homeassistant/components/deluge/entity.py:29:24: error[invalid-argument-type] Invalid argument to key "sw_version" with declared type `str | None` on TypedDict `DeviceInfo`: value of type `Unknown | None | Literal[2, 1]` @@ -599,7 +626,6 @@ homeassistant/components/dlink/data.py:44:16: warning[possibly-missing-attribute homeassistant/components/dlna_dmr/media_player.py:79:70: error[unresolved-attribute] Object of type `(...) -> Awaitable[_R@catch_request_errors]` has no attribute `__name__` homeassistant/components/dlna_dmr/media_player.py:86:55: error[unresolved-attribute] Object of type `(...) -> Awaitable[_R@catch_request_errors]` has no attribute `__name__` homeassistant/components/dlna_dms/dms.py:137:73: error[unresolved-attribute] Object of type `(_DlnaDmsDeviceMethod@catch_request_errors, str, /) -> Coroutine[Any, Any, _R@catch_request_errors]` has no attribute `__name__` -homeassistant/components/dominos/__init__.py:6:6: error[unresolved-import] Cannot resolve imported module `pizzapi` homeassistant/components/doods/image_processing.py:12:6: error[unresolved-import] Cannot resolve imported module `pydoods` homeassistant/components/doods/image_processing.py:246:23: error[invalid-argument-type] Argument to function `draw_box` is incorrect: Expected `tuple[int | float, int | float, int | float, int | float]`, found `Unknown | list[Unknown | int] | list[Unknown]` homeassistant/components/dovado/__init__.py:47:9: error[unresolved-reference] Name `dovado` used when not defined @@ -684,7 +710,7 @@ homeassistant/components/ecobee/switch.py:133:36: error[invalid-argument-type] A homeassistant/components/ecobee/weather.py:48:28: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `Unknown | None` homeassistant/components/ecobee/weather.py:51:44: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["name"]` on object of type `str` homeassistant/components/ecobee/weather.py:78:24: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/components/ecobee/weather.py:170:12: error[unsupported-operator] Operator `not in` is not supported for types `str` and `None`, in comparing `Literal["forecasts"]` with `Unknown | None` +homeassistant/components/ecobee/weather.py:170:12: error[unsupported-operator] Operator `not in` is not supported between objects of type `Literal["forecasts"]` and `Unknown | None` homeassistant/components/ecobee/weather.py:176:42: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/econet/climate.py:68:30: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Thermostat`, found `Equipment` homeassistant/components/econet/sensor.py:125:16: warning[possibly-missing-attribute] Attribute `energy_type` may be missing on object of type `Unknown | Equipment` @@ -707,7 +733,7 @@ homeassistant/components/egardia/__init__.py:5:6: error[unresolved-import] Canno homeassistant/components/egardia/alarm_control_panel.py:104:44: warning[possibly-missing-attribute] Attribute `items` may be missing on object of type `Unknown | None` homeassistant/components/ekeybionyx/config_flow.py:110:47: error[invalid-assignment] Object of type `list[dict[Unknown | str, Unknown | str] | Unknown]` is not assignable to `list[SelectOptionDict]` homeassistant/components/eliqonline/sensor.py:8:8: error[unresolved-import] Cannot resolve imported module `eliqonline` -homeassistant/components/elkm1/config_flow.py:202:9: error[invalid-method-override] Invalid override of method `is_matching`: Definition is incompatible with `ConfigFlow.is_matching` +homeassistant/components/elkm1/config_flow.py:203:9: error[invalid-method-override] Invalid override of method `is_matching`: Definition is incompatible with `ConfigFlow.is_matching` homeassistant/components/elmax/__init__.py:50:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `SSLContext`, found `None | SSLContext` homeassistant/components/elmax/config_flow.py:167:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `SSLContext`, found `None | Unknown` homeassistant/components/elmax/config_flow.py:330:30: error[invalid-argument-type] Argument to function `_store_panel_by_name` is incorrect: Expected `str`, found `str | None` @@ -726,20 +752,23 @@ homeassistant/components/emulated_roku/binding.py:135:13: error[invalid-argument homeassistant/components/emulated_roku/binding.py:136:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `int`, found `Unknown | int | None` homeassistant/components/emulated_roku/binding.py:137:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `bool`, found `Unknown | bool | None` homeassistant/components/energenie_power_sockets/__init__.py:21:44: error[invalid-assignment] Object of type `Device | None` is not assignable to `PowerStripUSB | None` -homeassistant/components/energy/data.py:367:29: error[invalid-assignment] Invalid assignment to key "energy_sources" with declared type `list[SourceType]` on TypedDict `EnergyPreferences`: value of type `list[SourceType] | list[DeviceConsumption]` -homeassistant/components/energy/data.py:367:29: error[invalid-assignment] Invalid assignment to key "device_consumption" with declared type `list[DeviceConsumption]` on TypedDict `EnergyPreferences`: value of type `list[SourceType] | list[DeviceConsumption]` -homeassistant/components/energy/validate.py:174:36: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` -homeassistant/components/energy/validate.py:234:36: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` -homeassistant/components/energy/validate.py:305:36: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` -homeassistant/components/energy/validate.py:338:36: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` -homeassistant/components/energy/validate.py:392:47: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` -homeassistant/components/energy/validate.py:521:47: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` -homeassistant/components/energy/validate.py:581:47: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` -homeassistant/components/energy/validate.py:641:47: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` -homeassistant/components/energy/validate.py:749:17: warning[possibly-missing-attribute] Submodule `statistics` may not be available as an attribute on module `homeassistant.components.recorder` -homeassistant/components/energy/websocket_api.py:276:9: warning[possibly-missing-attribute] Submodule `statistics` may not be available as an attribute on module `homeassistant.components.recorder` -homeassistant/components/energy/websocket_api.py:361:43: warning[possibly-missing-attribute] Submodule `statistics` may not be available as an attribute on module `homeassistant.components.recorder` -homeassistant/components/energy/websocket_api.py:372:13: warning[possibly-missing-attribute] Submodule `statistics` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/data.py:388:29: error[invalid-assignment] Invalid assignment to key "energy_sources" with declared type `list[SourceType]` on TypedDict `EnergyPreferences`: value of type `list[SourceType] | list[DeviceConsumption]` +homeassistant/components/energy/data.py:388:29: error[invalid-assignment] Invalid assignment to key "device_consumption" with declared type `list[DeviceConsumption]` on TypedDict `EnergyPreferences`: value of type `list[SourceType] | list[DeviceConsumption]` +homeassistant/components/energy/data.py:388:29: error[invalid-assignment] Invalid assignment to key "device_consumption_water" with declared type `list[DeviceConsumption]` on TypedDict `EnergyPreferences`: value of type `list[SourceType] | list[DeviceConsumption]` +homeassistant/components/energy/validate.py:181:36: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/validate.py:241:36: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/validate.py:312:36: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/validate.py:345:36: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/validate.py:399:47: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/validate.py:528:47: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/validate.py:588:47: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/validate.py:648:47: warning[possibly-missing-attribute] Submodule `models` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/validate.py:773:17: warning[possibly-missing-attribute] Submodule `statistics` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/websocket_api.py:277:9: warning[possibly-missing-attribute] Submodule `statistics` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/websocket_api.py:362:43: warning[possibly-missing-attribute] Submodule `statistics` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energy/websocket_api.py:373:13: warning[possibly-missing-attribute] Submodule `statistics` may not be available as an attribute on module `homeassistant.components.recorder` +homeassistant/components/energyid/__init__.py:252:46: error[invalid-key] Unknown key "changes" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "changes" +homeassistant/components/energyid/__init__.py:253:48: error[invalid-key] Unknown key "changes" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "changes" homeassistant/components/enphase_envoy/entity.py:65:31: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, Any]` has no attribute `__name__` homeassistant/components/entur_public_transport/sensor.py:8:6: error[unresolved-import] Cannot resolve imported module `enturclient` homeassistant/components/entur_public_transport/sensor.py:87:16: error[invalid-return-type] Return type does not match returned value: expected `int`, found `None` @@ -755,9 +784,9 @@ homeassistant/components/ephember/climate.py:196:16: error[no-matching-overload] homeassistant/components/esphome/encryption_key_storage.py:49:13: error[invalid-assignment] Object of type `(Unknown & ~AlwaysFalsy) | (EncryptionKeyData & ~AlwaysFalsy) | dict[Unknown | str, Unknown | dict[Unknown, Unknown]]` is not assignable to attribute `_data` of type `EncryptionKeyData | None` homeassistant/components/esphome/entry_data.py:195:16: error[invalid-return-type] Return type does not match returned value: expected `str`, found `(DeviceInfo & ~AlwaysTruthy & ~AlwaysFalsy) | str` homeassistant/components/esphome/entry_data.py:201:16: error[invalid-return-type] Return type does not match returned value: expected `str`, found `(DeviceInfo & ~AlwaysTruthy & ~AlwaysFalsy) | str` -homeassistant/components/esphome/light.py:337:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int]`, found `tuple[@Todo, Unknown]` -homeassistant/components/esphome/light.py:358:20: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int, int]`, found `tuple[@Todo, Unknown, Unknown]` -homeassistant/components/esphome/light.py:363:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int, int]`, found `tuple[@Todo, Unknown, Unknown]` +homeassistant/components/esphome/light.py:337:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int]`, found `tuple[@Todo(StarredExpression), Unknown]` +homeassistant/components/esphome/light.py:358:20: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int, int]`, found `tuple[@Todo(StarredExpression), Unknown, Unknown]` +homeassistant/components/esphome/light.py:363:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int, int]`, found `tuple[@Todo(StarredExpression), Unknown, Unknown]` homeassistant/components/esphome/select.py:135:13: error[invalid-argument-type] Argument to function `replace` is incorrect: Argument type `Unknown | SelectEntityDescription` does not satisfy upper bound `DataclassInstance` of type variable `_DataclassT` homeassistant/components/etherscan/sensor.py:7:6: error[unresolved-import] Cannot resolve imported module `pyetherscan` homeassistant/components/eufy/__init__.py:3:8: error[unresolved-import] Cannot resolve imported module `lakeside` @@ -796,11 +825,11 @@ homeassistant/components/fibaro/entity.py:30:32: error[unresolved-attribute] Obj homeassistant/components/fibaro/entity.py:97:48: error[invalid-argument-type] Argument to bound method `execute_action` is incorrect: Expected `list[Any] | None`, found `tuple[Any, ...]` homeassistant/components/fibaro/event.py:53:30: error[unresolved-attribute] Object of type `DeviceModel` has no attribute `friendly_name` homeassistant/components/fibaro/event.py:56:35: error[unresolved-attribute] Object of type `DeviceModel` has no attribute `unique_id_str` -homeassistant/components/fibaro/light.py:72:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["RGB"]` with `str | None` -homeassistant/components/fibaro/light.py:73:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["rgb"]` with `str | None` -homeassistant/components/fibaro/light.py:74:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["color"]` with `str | None` -homeassistant/components/fibaro/light.py:81:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["RGBW"]` with `str | None` -homeassistant/components/fibaro/light.py:82:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["rgbw"]` with `str | None` +homeassistant/components/fibaro/light.py:72:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["RGB"]` and `str | None` +homeassistant/components/fibaro/light.py:73:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["rgb"]` and `str | None` +homeassistant/components/fibaro/light.py:74:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["color"]` and `str | None` +homeassistant/components/fibaro/light.py:81:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["RGBW"]` and `str | None` +homeassistant/components/fibaro/light.py:82:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["rgbw"]` and `str | None` homeassistant/components/fibaro/sensor.py:111:52: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `str`, found `str | None` homeassistant/components/fibaro/sensor.py:157:57: error[no-matching-overload] No overload of bound method `get` matches arguments homeassistant/components/fibaro/sensor.py:183:30: error[unresolved-attribute] Object of type `DeviceModel` has no attribute `friendly_name` @@ -818,7 +847,7 @@ homeassistant/components/fixer/sensor.py:10:6: error[unresolved-import] Cannot r homeassistant/components/fleetgo/device_tracker.py:8:6: error[unresolved-import] Cannot resolve imported module `ritassist` homeassistant/components/flo/__init__.py:31:23: warning[possibly-missing-attribute] Attribute `get_info` may be missing on object of type `User | None` homeassistant/components/flux/switch.py:261:13: error[call-non-callable] Object of type `None` is not callable -homeassistant/components/flux/switch.py:286:25: error[unsupported-operator] Operator `<` is not supported for types `datetime` and `None`, in comparing `datetime` with `datetime | None` +homeassistant/components/flux/switch.py:286:25: error[unsupported-operator] Operator `<` is not supported between objects of type `datetime` and `datetime | None` homeassistant/components/flux/switch.py:290:30: warning[possibly-missing-attribute] Attribute `timestamp` may be missing on object of type `datetime | None` homeassistant/components/flux/switch.py:303:64: warning[possibly-missing-attribute] Attribute `day` may be missing on object of type `datetime | None` homeassistant/components/flux/switch.py:305:35: error[unsupported-operator] Operator `-` is unsupported between objects of type `datetime | None` and `timedelta` @@ -828,10 +857,10 @@ homeassistant/components/flux/switch.py:322:58: error[invalid-argument-type] Arg homeassistant/components/flux/switch.py:322:58: error[invalid-argument-type] Argument to function `color_RGB_to_xy_brightness` is incorrect: Expected `int`, found `int | float` homeassistant/components/flux/switch.py:322:58: error[invalid-argument-type] Argument to function `color_RGB_to_xy_brightness` is incorrect: Expected `int`, found `int | float` homeassistant/components/flux_led/config_flow.py:179:9: error[invalid-method-override] Invalid override of method `is_matching`: Definition is incompatible with `ConfigFlow.is_matching` -homeassistant/components/flux_led/util.py:98:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int]`, found `tuple[@Todo, int]` -homeassistant/components/flux_led/util.py:99:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int]`, found `tuple[@Todo, int]` -homeassistant/components/flux_led/util.py:114:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int, int]`, found `tuple[@Todo, int, int]` -homeassistant/components/flux_led/util.py:115:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int, int]`, found `tuple[@Todo, int, int]` +homeassistant/components/flux_led/util.py:98:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int]`, found `tuple[@Todo(StarredExpression), int]` +homeassistant/components/flux_led/util.py:99:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int]`, found `tuple[@Todo(StarredExpression), int]` +homeassistant/components/flux_led/util.py:114:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int, int]`, found `tuple[@Todo(StarredExpression), int, int]` +homeassistant/components/flux_led/util.py:115:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int, int]`, found `tuple[@Todo(StarredExpression), int, int]` homeassistant/components/foobot/sensor.py:120:9: error[unresolved-attribute] Object of type `object` has no attribute `ClientConnectorError` homeassistant/components/foobot/sensor.py:177:13: error[unresolved-attribute] Object of type `object` has no attribute `ClientConnectorError` homeassistant/components/forked_daapd/media_player.py:182:37: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method @@ -868,7 +897,7 @@ homeassistant/components/forked_daapd/media_player.py:699:20: error[invalid-argu homeassistant/components/forked_daapd/media_player.py:699:34: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> Unknown, (s: slice[Any, Any, Any], /) -> list[Unknown]]` cannot be called with key of type `Literal["item_id"]` on object of type `list[Unknown]` homeassistant/components/forked_daapd/media_player.py:728:31: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> Unknown, (s: slice[Any, Any, Any], /) -> list[Unknown]]` cannot be called with key of type `Literal["item_progress_ms"]` on object of type `list[Unknown]` homeassistant/components/forked_daapd/media_player.py:729:38: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> Unknown, (s: slice[Any, Any, Any], /) -> list[Unknown]]` cannot be called with key of type `Literal["count"]` on object of type `list[Unknown]` -homeassistant/components/forked_daapd/media_player.py:729:38: error[unsupported-operator] Operator `>` is not supported for types `str` and `int`, in comparing `Unknown | str | int | list[Unknown]` with `Literal[0]` +homeassistant/components/forked_daapd/media_player.py:729:38: error[unsupported-operator] Operator `>` is not supported between objects of type `Unknown | str | int | list[Unknown]` and `Literal[0]` homeassistant/components/forked_daapd/media_player.py:734:34: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> Unknown, (s: slice[Any, Any, Any], /) -> list[Unknown]]` cannot be called with key of type `Literal["item_id"]` on object of type `list[Unknown]` homeassistant/components/forked_daapd/media_player.py:747:13: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> Unknown, (s: slice[Any, Any, Any], /) -> list[Unknown]]` cannot be called with key of type `Literal["items"]` on object of type `list[Unknown]` homeassistant/components/forked_daapd/media_player.py:747:13: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["length_ms"]` on object of type `str` @@ -916,27 +945,29 @@ homeassistant/components/geofency/device_tracker.py:98:9: error[call-non-callabl homeassistant/components/geonetnz_quakes/__init__.py:139:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `datetime`, found `timedelta` homeassistant/components/geonetnz_quakes/geo_location.py:146:31: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/geonetnz_quakes/geo_location.py:147:32: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/components/github/__init__.py:26:9: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[GitHubClientKwarg, Any]`, found `Literal["HomeAssistant/2025.12.0.dev0 aiohttp/3.13.2 Python/3.13"]` +homeassistant/components/github/__init__.py:26:9: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[GitHubClientKwarg, Any]`, found `Literal["HomeAssistant/2026.1.0.dev0 aiohttp/3.13.2 Python/3.14"]` homeassistant/components/github/config_flow.py:41:46: error[invalid-argument-type] Argument to bound method `starred` is incorrect: Expected `dict[GitHubRequestKwarg, Any]`, found `dict[str, Any]` homeassistant/components/github/config_flow.py:46:25: error[invalid-argument-type] Argument to bound method `starred` is incorrect: Expected `dict[GitHubRequestKwarg, Any]`, found `dict[str, Any]` homeassistant/components/github/config_flow.py:49:25: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `SupportsIndex`, found `int | None` homeassistant/components/github/config_flow.py:49:52: error[unsupported-operator] Operator `+` is unsupported between objects of type `int | None` and `Literal[1]` homeassistant/components/github/config_flow.py:54:17: warning[possibly-missing-attribute] Attribute `extend` may be missing on object of type `list[GitHubRepositoryModel] | None` +homeassistant/components/github/config_flow.py:54:38: error[invalid-argument-type] Argument to bound method `extend` is incorrect: Expected `Iterable[GitHubRepositoryModel]`, found `list[GitHubRepositoryModel] | None` homeassistant/components/github/config_flow.py:56:29: error[invalid-argument-type] Argument to bound method `update` is incorrect: Expected `Iterable[Unknown]`, found `list[GitHubRepositoryModel] | None` homeassistant/components/github/config_flow.py:59:44: error[invalid-argument-type] Argument to bound method `repos` is incorrect: Expected `dict[GitHubRequestKwarg, Any]`, found `dict[str, Any]` homeassistant/components/github/config_flow.py:64:25: error[invalid-argument-type] Argument to bound method `repos` is incorrect: Expected `dict[GitHubRequestKwarg, Any]`, found `dict[str, Any]` homeassistant/components/github/config_flow.py:67:25: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `SupportsIndex`, found `int | None` homeassistant/components/github/config_flow.py:67:52: error[unsupported-operator] Operator `+` is unsupported between objects of type `int | None` and `Literal[1]` homeassistant/components/github/config_flow.py:72:17: warning[possibly-missing-attribute] Attribute `extend` may be missing on object of type `list[GitHubRepositoryModel] | None` +homeassistant/components/github/config_flow.py:72:38: error[invalid-argument-type] Argument to bound method `extend` is incorrect: Expected `Iterable[GitHubRepositoryModel]`, found `list[GitHubRepositoryModel] | None` homeassistant/components/github/config_flow.py:74:29: error[invalid-argument-type] Argument to bound method `update` is incorrect: Expected `Iterable[Unknown]`, found `list[GitHubRepositoryModel] | None` homeassistant/components/github/config_flow.py:132:17: error[invalid-argument-type] Argument to bound method `activation` is incorrect: Expected `str`, found `str | None` -homeassistant/components/github/config_flow.py:140:17: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[GitHubClientKwarg, Any]`, found `Literal["HomeAssistant/2025.12.0.dev0 aiohttp/3.13.2 Python/3.13"]` +homeassistant/components/github/config_flow.py:140:17: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[GitHubClientKwarg, Any]`, found `Literal["HomeAssistant/2026.1.0.dev0 aiohttp/3.13.2 Python/3.14"]` homeassistant/components/github/config_flow.py:165:13: error[invalid-argument-type] Argument to bound method `async_show_progress` is incorrect: Expected `Mapping[str, str] | None`, found `dict[Unknown | str, Unknown | str | None]` homeassistant/components/github/config_flow.py:183:62: error[invalid-argument-type] Argument to function `get_repositories` is incorrect: Expected `str`, found `str | None` homeassistant/components/github/coordinator.py:132:15: error[invalid-method-override] Invalid override of method `_async_update_data`: Definition is incompatible with `DataUpdateCoordinator._async_update_data` homeassistant/components/github/coordinator.py:149:16: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/github/coordinator.py:166:13: error[invalid-argument-type] Argument to bound method `subscribe` is incorrect: Expected `(() -> Awaitable[None]) | None`, found `def _handle_error(error: GitHubException) -> CoroutineType[Any, Any, None]` -homeassistant/components/github/diagnostics.py:28:9: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[GitHubClientKwarg, Any]`, found `Literal["HomeAssistant/2025.12.0.dev0 aiohttp/3.13.2 Python/3.13"]` +homeassistant/components/github/diagnostics.py:28:9: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[GitHubClientKwarg, Any]`, found `Literal["HomeAssistant/2026.1.0.dev0 aiohttp/3.13.2 Python/3.14"]` homeassistant/components/github/diagnostics.py:36:30: warning[possibly-missing-attribute] Attribute `as_dict` may be missing on object of type `GitHubRateLimitModel | None` homeassistant/components/gitlab_ci/sensor.py:8:6: error[unresolved-import] Cannot resolve imported module `gitlab` homeassistant/components/gitter/sensor.py:7:6: error[unresolved-import] Cannot resolve imported module `gitterpy.client` @@ -953,6 +984,7 @@ homeassistant/components/google/coordinator.py:140:13: error[unknown-argument] A homeassistant/components/google/coordinator.py:141:13: error[unknown-argument] Argument `start_time` does not match any known parameter homeassistant/components/google/coordinator.py:157:19: error[missing-argument] No argument provided for required parameter `calendarId` homeassistant/components/google/coordinator.py:157:37: error[unknown-argument] Argument `calendar_id` does not match any known parameter +homeassistant/components/google_air_quality/config_flow.py:134:21: error[invalid-argument-type] Argument to bound method `async_create_entry` is incorrect: Expected `Iterable[ConfigSubentryData] | None`, found `list[Unknown | dict[Unknown | str, Unknown | str | None]]` homeassistant/components/google_assistant/helpers.py:536:33: warning[possibly-missing-attribute] Attribute `entity_id` may be missing on object of type `Unknown | State | None` homeassistant/components/google_assistant/helpers.py:536:57: warning[possibly-missing-attribute] Attribute `name` may be missing on object of type `Unknown | State | None` homeassistant/components/google_assistant/helpers.py:561:17: warning[possibly-missing-attribute] Attribute `domain` may be missing on object of type `Unknown | State | None` @@ -1014,7 +1046,7 @@ homeassistant/components/google_mail/sensor.py:44:33: warning[possibly-missing-a homeassistant/components/google_mail/services.py:88:13: error[unresolved-attribute] Object of type `Resource` has no attribute `users` homeassistant/components/google_maps/device_tracker.py:8:6: error[unresolved-import] Cannot resolve imported module `locationsharinglib` homeassistant/components/google_maps/device_tracker.py:9:6: error[unresolved-import] Cannot resolve imported module `locationsharinglib.locationsharinglibexceptions` -homeassistant/components/google_maps/device_tracker.py:115:16: error[unsupported-operator] Operator `<` is not supported for types `datetime` and `str`, in comparing `datetime` with `str | datetime` +homeassistant/components/google_maps/device_tracker.py:115:16: error[unsupported-operator] Operator `<` is not supported between objects of type `datetime` and `str | datetime` homeassistant/components/google_maps/device_tracker.py:130:13: error[invalid-assignment] Invalid subscript assignment with key of type `str` and value of type `datetime` on object of type `dict[str, str]` homeassistant/components/google_pubsub/__init__.py:77:21: error[invalid-argument-type] Argument to bound method `listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventStateChangedData]` homeassistant/components/google_pubsub/__init__.py:77:42: error[invalid-argument-type] Argument to bound method `listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def send_to_pubsub(event: Event[EventStateChangedData]) -> Unknown` @@ -1030,7 +1062,7 @@ homeassistant/components/google_tasks/api.py:156:67: warning[possibly-missing-at homeassistant/components/google_weather/config_flow.py:134:21: error[invalid-argument-type] Argument to bound method `async_create_entry` is incorrect: Expected `Iterable[ConfigSubentryData] | None`, found `list[Unknown | dict[Unknown | str, Unknown | str | None]]` homeassistant/components/google_weather/weather.py:248:16: error[invalid-return-type] Return type does not match returned value: expected `list[Forecast] | None`, found `list[dict[Unknown | str, Unknown | str | None | int | float] | Unknown]` homeassistant/components/google_weather/weather.py:290:16: error[invalid-return-type] Return type does not match returned value: expected `list[Forecast] | None`, found `list[dict[Unknown | str, Unknown | str | None | int | float] | Unknown]` -homeassistant/components/google_wifi/sensor.py:199:20: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `str` with `Unknown | None` +homeassistant/components/google_wifi/sensor.py:199:20: error[unsupported-operator] Operator `in` is not supported between objects of type `str` and `Unknown | None` homeassistant/components/google_wifi/sensor.py:200:36: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/google_wifi/sensor.py:217:59: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/govee_ble/sensor.py:137:16: error[invalid-return-type] Return type does not match returned value: expected `bool`, found `bool | (ModelInfo & ~AlwaysTruthy & ~AlwaysFalsy)` @@ -1108,8 +1140,8 @@ homeassistant/components/hive/light.py:83:58: error[invalid-argument-type] Argum homeassistant/components/hlk_sw16/config_flow.py:56:17: warning[possibly-missing-attribute] Attribute `set_exception` may be missing on object of type `Unknown | None` homeassistant/components/home_connect/switch.py:286:17: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `dict[str, str] | None`, found `dict[str, str | UndefinedType] & dict[Unknown | str, Unknown | str | UndefinedType]` homeassistant/components/homeassistant_alerts/__init__.py:103:55: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _component_loaded(_: Event[EventComponentLoaded]) -> None` -homeassistant/components/homeassistant_hardware/firmware_config_flow.py:271:41: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `str`, found `str | None` -homeassistant/components/homeassistant_hardware/firmware_config_flow.py:273:16: error[unsupported-operator] Operator `>=` is not supported for types `Version` and `Version`, in comparing `Version` with `Version | None` +homeassistant/components/homeassistant_hardware/firmware_config_flow.py:282:45: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `str`, found `str | None` +homeassistant/components/homeassistant_hardware/firmware_config_flow.py:284:20: error[unsupported-operator] Operator `>=` is not supported between objects of type `Version` and `Version | None` homeassistant/components/homeassistant_hardware/helpers.py:184:35: error[call-non-callable] Object of type `object` is not callable homeassistant/components/homekit/__init__.py:913:56: error[invalid-argument-type] Argument to function `accessory_friendly_name` is incorrect: Expected `Accessory`, found `Accessory | None` homeassistant/components/homekit/__init__.py:915:13: warning[possibly-missing-attribute] Attribute `xhm_uri` may be missing on object of type `Accessory | None` @@ -1289,55 +1321,56 @@ homeassistant/components/homematicip_cloud/__init__.py:99:15: error[unresolved-a homeassistant/components/homematicip_cloud/__init__.py:99:29: error[unresolved-attribute] Object of type `AsyncHome` has no attribute `label` homeassistant/components/homematicip_cloud/__init__.py:99:72: error[unresolved-attribute] Object of type `AsyncHome` has no attribute `label` homeassistant/components/homematicip_cloud/__init__.py:103:9: error[invalid-argument-type] Argument to bound method `async_get_or_create` is incorrect: Expected `set[tuple[str, str]] | None | UndefinedType`, found `set[tuple[str, str] | tuple[str, Unknown | None]]` -homeassistant/components/homematicip_cloud/__init__.py:128:8: error[unsupported-operator] Operator `<` is not supported for types `None` and `str`, in comparing `Unknown | None` with `Literal["2.2.12"]` +homeassistant/components/homematicip_cloud/__init__.py:128:8: error[unsupported-operator] Operator `<` is not supported between objects of type `Unknown | None` and `Literal["2.2.12"]` homeassistant/components/homematicip_cloud/alarm_control_panel.py:58:24: error[invalid-argument-type] Invalid argument to key "via_device" with declared type `tuple[str, str]` on TypedDict `DeviceInfo`: value of type `tuple[Literal["homematicip_cloud"], Unknown | None]` homeassistant/components/homematicip_cloud/alarm_control_panel.py:80:16: error[invalid-return-type] Return type does not match returned value: expected `SecurityAndAlarmHome`, found `FunctionalHome | None` homeassistant/components/homematicip_cloud/alarm_control_panel.py:118:12: error[unresolved-attribute] Object of type `AsyncHome` has no attribute `name` homeassistant/components/homematicip_cloud/alarm_control_panel.py:119:23: error[unresolved-attribute] Object of type `AsyncHome` has no attribute `name` homeassistant/components/homematicip_cloud/alarm_control_panel.py:125:16: error[invalid-return-type] Return type does not match returned value: expected `bool`, found `Unknown | None` -homeassistant/components/homematicip_cloud/binary_sensor.py:156:28: error[unresolved-attribute] Object of type `AsyncHome` has no attribute `name` -homeassistant/components/homematicip_cloud/binary_sensor.py:156:52: error[unresolved-attribute] Object of type `AsyncHome` has no attribute `name` -homeassistant/components/homematicip_cloud/binary_sensor.py:163:25: error[invalid-argument-type] Invalid argument to key "identifiers" with declared type `set[tuple[str, str]]` on TypedDict `DeviceInfo`: value of type `set[Unknown | tuple[str, Unknown | None]]` -homeassistant/components/homematicip_cloud/binary_sensor.py:181:16: error[invalid-return-type] Return type does not match returned value: expected `bool`, found `Unknown | None` +homeassistant/components/homematicip_cloud/binary_sensor.py:160:28: error[unresolved-attribute] Object of type `AsyncHome` has no attribute `name` +homeassistant/components/homematicip_cloud/binary_sensor.py:160:52: error[unresolved-attribute] Object of type `AsyncHome` has no attribute `name` +homeassistant/components/homematicip_cloud/binary_sensor.py:167:25: error[invalid-argument-type] Invalid argument to key "identifiers" with declared type `set[tuple[str, str]]` on TypedDict `DeviceInfo`: value of type `set[Unknown | tuple[str, Unknown | None]]` +homeassistant/components/homematicip_cloud/binary_sensor.py:185:16: error[invalid-return-type] Return type does not match returned value: expected `bool`, found `Unknown | None` +homeassistant/components/homematicip_cloud/binary_sensor.py:249:12: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `windowState` +homeassistant/components/homematicip_cloud/binary_sensor.py:251:16: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `windowState` homeassistant/components/homematicip_cloud/climate.py:85:9: error[unresolved-attribute] Unresolved attribute `modelType` on type `HeatingGroup`. homeassistant/components/homematicip_cloud/climate.py:259:16: error[invalid-return-type] Return type does not match returned value: expected `IndoorClimateHome`, found `FunctionalHome | None` homeassistant/components/homematicip_cloud/climate.py:281:20: error[invalid-return-type] Return type does not match returned value: expected `str`, found `(Unknown & ~Literal[""]) | None` homeassistant/components/homematicip_cloud/climate.py:296:16: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[str, int].__getitem__(key: str, /) -> int` cannot be called with key of type `Unknown | None` on object of type `dict[str, int]` -homeassistant/components/homematicip_cloud/cover.py:286:16: warning[possibly-missing-attribute] Attribute `doorState` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/cover.py:290:15: warning[possibly-missing-attribute] Attribute `async_send_door_command` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/cover.py:294:15: warning[possibly-missing-attribute] Attribute `async_send_door_command` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/cover.py:298:15: warning[possibly-missing-attribute] Attribute `async_send_door_command` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/entity.py:205:21: error[unresolved-attribute] Object of type `AsyncHome` has no attribute `name` -homeassistant/components/homematicip_cloud/entity.py:206:23: error[unresolved-attribute] Object of type `AsyncHome` has no attribute `name` -homeassistant/components/homematicip_cloud/entity.py:265:16: error[invalid-return-type] Return type does not match returned value: expected `FunctionalChannel`, found `None` +homeassistant/components/homematicip_cloud/cover.py:287:16: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `doorState` +homeassistant/components/homematicip_cloud/cover.py:292:15: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `async_send_door_command` +homeassistant/components/homematicip_cloud/cover.py:297:15: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `async_send_door_command` +homeassistant/components/homematicip_cloud/cover.py:302:15: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `async_send_door_command` homeassistant/components/homematicip_cloud/hap.py:35:15: warning[possibly-missing-attribute] Submodule `util` may not be available as an attribute on module `homeassistant` homeassistant/components/homematicip_cloud/hap.py:39:9: error[invalid-argument-type] Argument to bound method `build_context_async` is incorrect: Expected `str`, found `str | None` homeassistant/components/homematicip_cloud/hap.py:291:9: error[unresolved-attribute] Unresolved attribute `name` on type `AsyncHome`. homeassistant/components/homematicip_cloud/hap.py:293:9: error[unresolved-attribute] Unresolved attribute `label` on type `AsyncHome`. homeassistant/components/homematicip_cloud/hap.py:294:9: error[unresolved-attribute] Unresolved attribute `modelType` on type `AsyncHome`. homeassistant/components/homematicip_cloud/helpers.py:49:49: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, Any]` has no attribute `__name__` -homeassistant/components/homematicip_cloud/light.py:137:16: warning[possibly-missing-attribute] Attribute `on` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/light.py:142:20: warning[possibly-missing-attribute] Attribute `dimLevel` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/light.py:148:13: warning[possibly-missing-attribute] Attribute `hue` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/light.py:149:16: warning[possibly-missing-attribute] Attribute `saturationLevel` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/light.py:153:13: warning[possibly-missing-attribute] Attribute `hue` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/light.py:154:13: warning[possibly-missing-attribute] Attribute `saturationLevel` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/light.py:166:19: warning[possibly-missing-attribute] Attribute `hue` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/light.py:167:26: warning[possibly-missing-attribute] Attribute `saturationLevel` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/light.py:171:25: warning[possibly-missing-attribute] Attribute `dimLevel` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/light.py:173:15: warning[possibly-missing-attribute] Attribute `set_hue_saturation_dim_level_async` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/light.py:179:15: warning[possibly-missing-attribute] Attribute `set_switch_state_async` may be missing on object of type `Unknown | FunctionalChannel` +homeassistant/components/homematicip_cloud/light.py:138:16: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `on` +homeassistant/components/homematicip_cloud/light.py:144:20: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `dimLevel` +homeassistant/components/homematicip_cloud/light.py:150:12: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `hue` +homeassistant/components/homematicip_cloud/light.py:150:35: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `saturationLevel` +homeassistant/components/homematicip_cloud/light.py:153:13: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `hue` +homeassistant/components/homematicip_cloud/light.py:154:13: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `saturationLevel` +homeassistant/components/homematicip_cloud/light.py:166:19: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `hue` +homeassistant/components/homematicip_cloud/light.py:167:26: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `saturationLevel` +homeassistant/components/homematicip_cloud/light.py:171:25: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `dimLevel` +homeassistant/components/homematicip_cloud/light.py:172:15: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `set_hue_saturation_dim_level_async` +homeassistant/components/homematicip_cloud/light.py:179:15: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `set_switch_state_async` homeassistant/components/homematicip_cloud/light.py:392:13: error[invalid-argument-type] Argument to bound method `async_set_optical_signal` is incorrect: Expected `OpticalSignalBehaviour`, found `str | None | Any` -homeassistant/components/homematicip_cloud/sensor.py:310:16: warning[possibly-missing-attribute] Attribute `waterFlow` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/sensor.py:561:17: warning[possibly-missing-attribute] Attribute `vaporAmount` may be missing on object of type `(Unknown & ~None) | FunctionalChannel` -homeassistant/components/homematicip_cloud/sensor.py:565:13: warning[possibly-missing-attribute] Attribute `vaporAmount` may be missing on object of type `(Unknown & ~None) | FunctionalChannel` -homeassistant/components/homematicip_cloud/sensor.py:566:16: warning[possibly-missing-attribute] Attribute `vaporAmount` may be missing on object of type `(Unknown & ~None) | FunctionalChannel` -homeassistant/components/homematicip_cloud/switch.py:116:16: warning[possibly-missing-attribute] Attribute `on` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/switch.py:120:15: warning[possibly-missing-attribute] Attribute `async_turn_on` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/switch.py:124:15: warning[possibly-missing-attribute] Attribute `async_turn_off` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/valve.py:50:15: warning[possibly-missing-attribute] Attribute `set_watering_switch_state_async` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/valve.py:54:15: warning[possibly-missing-attribute] Attribute `set_watering_switch_state_async` may be missing on object of type `Unknown | FunctionalChannel` -homeassistant/components/homematicip_cloud/valve.py:59:16: warning[possibly-missing-attribute] Attribute `wateringActive` may be missing on object of type `Unknown | FunctionalChannel` +homeassistant/components/homematicip_cloud/sensor.py:311:16: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `waterFlow` +homeassistant/components/homematicip_cloud/sensor.py:562:17: warning[possibly-missing-attribute] Attribute `vaporAmount` may be missing on object of type `(Unknown & ~None) | FunctionalChannel` +homeassistant/components/homematicip_cloud/sensor.py:566:13: warning[possibly-missing-attribute] Attribute `vaporAmount` may be missing on object of type `(Unknown & ~None) | FunctionalChannel` +homeassistant/components/homematicip_cloud/sensor.py:567:16: warning[possibly-missing-attribute] Attribute `vaporAmount` may be missing on object of type `(Unknown & ~None) | FunctionalChannel` +homeassistant/components/homematicip_cloud/sensor.py:766:51: error[invalid-argument-type] Argument is incorrect: Expected `FunctionalChannel`, found `Unknown | None | FunctionalChannel` +homeassistant/components/homematicip_cloud/sensor.py:773:35: error[invalid-argument-type] Argument is incorrect: Expected `FunctionalChannel`, found `Unknown | None | FunctionalChannel` +homeassistant/components/homematicip_cloud/switch.py:117:16: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `on` +homeassistant/components/homematicip_cloud/switch.py:122:15: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `async_turn_on` +homeassistant/components/homematicip_cloud/switch.py:127:15: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `async_turn_off` +homeassistant/components/homematicip_cloud/valve.py:51:15: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `set_watering_switch_state_async` +homeassistant/components/homematicip_cloud/valve.py:56:15: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `set_watering_switch_state_async` +homeassistant/components/homematicip_cloud/valve.py:62:16: error[unresolved-attribute] Object of type `FunctionalChannel` has no attribute `wateringActive` homeassistant/components/homematicip_cloud/weather.py:127:9: error[unresolved-attribute] Unresolved attribute `modelType` on type `AsyncHome`. homeassistant/components/homematicip_cloud/weather.py:133:16: error[invalid-return-type] Return type does not match returned value: expected `bool`, found `Unknown | None` homeassistant/components/homematicip_cloud/weather.py:138:27: warning[possibly-missing-attribute] Attribute `city` may be missing on object of type `Unknown | None | Location` @@ -1618,27 +1651,27 @@ homeassistant/components/hunterdouglas_powerview/config_flow.py:44:12: error[inv homeassistant/components/hunterdouglas_powerview/config_flow.py:168:9: error[invalid-method-override] Invalid override of method `is_matching`: Definition is incompatible with `ConfigFlow.is_matching` homeassistant/components/hunterdouglas_powerview/cover.py:75:52: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `str`, found `int` homeassistant/components/hunterdouglas_powerview/cover.py:115:13: error[unsupported-operator] Operator `|=` is unsupported between objects of type `None` and `Literal[CoverEntityFeature.STOP]` -homeassistant/components/hunterdouglas_powerview/cover.py:146:16: error[unsupported-operator] Operator `<=` is not supported for types `None` and `int`, in comparing `int | float | None` with `Literal[0]` +homeassistant/components/hunterdouglas_powerview/cover.py:146:16: error[unsupported-operator] Operator `<=` is not supported between objects of type `int | float | None` and `Literal[0]` homeassistant/components/hunterdouglas_powerview/cover.py:151:16: error[invalid-return-type] Return type does not match returned value: expected `int`, found `int | float | None` homeassistant/components/hunterdouglas_powerview/cover.py:156:16: error[invalid-return-type] Return type does not match returned value: expected `int`, found `int | float | None` homeassistant/components/hunterdouglas_powerview/cover.py:352:9: error[unsupported-operator] Operator `|=` is unsupported between objects of type `None` and `Literal[CoverEntityFeature.OPEN_TILT]` homeassistant/components/hunterdouglas_powerview/cover.py:364:16: error[invalid-return-type] Return type does not match returned value: expected `int`, found `int | float | None` homeassistant/components/hunterdouglas_powerview/cover.py:369:16: error[unsupported-operator] Operator `+` is unsupported between objects of type `int | float | None` and `int | float | None` homeassistant/components/hunterdouglas_powerview/cover.py:529:16: error[invalid-return-type] Return type does not match returned value: expected `int`, found `int | float | None` -homeassistant/components/hunterdouglas_powerview/cover.py:534:16: error[unsupported-operator] Operator `<=` is not supported for types `None` and `int`, in comparing `int | float | None` with `Literal[0]` +homeassistant/components/hunterdouglas_powerview/cover.py:534:16: error[unsupported-operator] Operator `<=` is not supported between objects of type `int | float | None` and `Literal[0]` homeassistant/components/hunterdouglas_powerview/cover.py:552:16: error[unsupported-operator] Operator `-` is unsupported between objects of type `Literal[100]` and `int | float | None` homeassistant/components/hunterdouglas_powerview/cover.py:561:17: error[unsupported-operator] Operator `-` is unsupported between objects of type `Literal[100]` and `int | float | None` homeassistant/components/hunterdouglas_powerview/cover.py:575:16: error[unsupported-operator] Operator `+` is unsupported between objects of type `int | float | None` and `int | float | None` homeassistant/components/hunterdouglas_powerview/cover.py:603:43: error[unsupported-operator] Operator `-` is unsupported between objects of type `Literal[100]` and `int | float | None` -homeassistant/components/hunterdouglas_powerview/cover.py:650:16: error[unsupported-operator] Operator `<=` is not supported for types `None` and `int`, in comparing `int | float | None` with `Literal[0]` +homeassistant/components/hunterdouglas_powerview/cover.py:650:16: error[unsupported-operator] Operator `<=` is not supported between objects of type `int | float | None` and `Literal[0]` homeassistant/components/hunterdouglas_powerview/cover.py:656:16: error[invalid-return-type] Return type does not match returned value: expected `int`, found `int | float | None` homeassistant/components/hunterdouglas_powerview/cover.py:672:43: error[unsupported-operator] Operator `-` is unsupported between objects of type `Literal[100]` and `int | float | None` homeassistant/components/hunterdouglas_powerview/cover.py:696:20: error[unsupported-operator] Operator `/` is unsupported between objects of type `int | float | None` and `Literal[2]` homeassistant/components/hunterdouglas_powerview/cover.py:700:21: error[unsupported-operator] Operator `/` is unsupported between objects of type `int | float | None` and `Literal[2]` -homeassistant/components/hunterdouglas_powerview/cover.py:749:16: error[unsupported-operator] Operator `<=` is not supported for types `None` and `int`, in comparing `int | float | None` with `Literal[0]` +homeassistant/components/hunterdouglas_powerview/cover.py:749:16: error[unsupported-operator] Operator `<=` is not supported between objects of type `int | float | None` and `Literal[0]` homeassistant/components/hunterdouglas_powerview/cover.py:756:21: error[unsupported-operator] Operator `/` is unsupported between objects of type `int | float | None` and `Literal[2]` homeassistant/components/hunterdouglas_powerview/cover.py:758:24: error[unsupported-operator] Operator `/` is unsupported between objects of type `int | float | None` and `Literal[2]` -homeassistant/components/hunterdouglas_powerview/cover.py:880:16: error[unsupported-operator] Operator `<=` is not supported for types `None` and `int`, in comparing `int | float | None` with `Literal[0]` +homeassistant/components/hunterdouglas_powerview/cover.py:880:16: error[unsupported-operator] Operator `<=` is not supported between objects of type `int | float | None` and `Literal[0]` homeassistant/components/hunterdouglas_powerview/cover.py:885:16: error[invalid-return-type] Return type does not match returned value: expected `int`, found `int | float | None` homeassistant/components/hunterdouglas_powerview/cover.py:929:9: error[unsupported-operator] Operator `|=` is unsupported between objects of type `None` and `Literal[CoverEntityFeature.OPEN_TILT]` homeassistant/components/hunterdouglas_powerview/cover.py:944:20: error[unsupported-operator] Operator `/` is unsupported between objects of type `int | float | None` and `Literal[2]` @@ -1663,7 +1696,7 @@ homeassistant/components/husqvarna_automower_ble/coordinator.py:96:13: error[inv homeassistant/components/huum/climate.py:59:16: warning[possibly-missing-attribute] Attribute `min_temp` may be missing on object of type `Unknown | SaunaConfig | None` homeassistant/components/huum/climate.py:64:16: warning[possibly-missing-attribute] Attribute `max_temp` may be missing on object of type `Unknown | SaunaConfig | None` homeassistant/components/huum/number.py:50:16: error[invalid-return-type] Return type does not match returned value: expected `int | float`, found `Unknown | int | None` -homeassistant/components/hvv_departures/binary_sensor.py:143:25: error[invalid-argument-type] Invalid argument to key "identifiers" with declared type `set[tuple[str, str]]` on TypedDict `DeviceInfo`: value of type `set[Unknown | tuple[str, Unknown, Unknown, Unknown]]` +homeassistant/components/hvv_departures/binary_sensor.py:144:25: error[invalid-argument-type] Invalid argument to key "identifiers" with declared type `set[tuple[str, str]]` on TypedDict `DeviceInfo`: value of type `set[Unknown | tuple[str, Unknown, Unknown, Unknown]]` homeassistant/components/hvv_departures/sensor.py:79:25: error[invalid-argument-type] Invalid argument to key "identifiers" with declared type `set[tuple[str, str]]` on TypedDict `DeviceInfo`: value of type `set[Unknown | tuple[str, Unknown, Unknown, Unknown]]` homeassistant/components/iammeter/sensor.py:11:6: error[unresolved-import] Cannot resolve imported module `iammeter.client` homeassistant/components/iaqualink/climate.py:84:31: warning[possibly-missing-attribute] Attribute `_heater` may be missing on object of type `Unknown | AqualinkThermostat` @@ -1678,6 +1711,8 @@ homeassistant/components/icloud/services.py:105:16: error[invalid-return-type] R homeassistant/components/idteck_prox/__init__.py:7:6: error[unresolved-import] Cannot resolve imported module `rfk101py.rfk101py` homeassistant/components/iglo/light.py:7:6: error[unresolved-import] Cannot resolve imported module `iglo` homeassistant/components/iglo/light.py:8:6: error[unresolved-import] Cannot resolve imported module `iglo.lamp` +homeassistant/components/ign_sismologia/geo_location.py:205:31: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/components/ign_sismologia/geo_location.py:206:32: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/ign_sismologia/geo_location.py:221:20: error[invalid-return-type] Return type does not match returned value: expected `str | None`, found `(Unknown & ~AlwaysFalsy) | (int & ~AlwaysFalsy) | (float & ~AlwaysFalsy)` homeassistant/components/ihc/__init__.py:5:6: error[unresolved-import] Cannot resolve imported module `ihcsdk.ihccontroller` homeassistant/components/ihc/binary_sensor.py:5:6: error[unresolved-import] Cannot resolve imported module `ihcsdk.ihccontroller` @@ -1837,9 +1872,9 @@ homeassistant/components/isy994/helpers.py:401:34: warning[possibly-missing-attr homeassistant/components/isy994/helpers.py:429:48: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `tuple[str, Program, Program]`, found `tuple[@Todo, @Todo & ~AlwaysFalsy, None | (@Todo & ~AlwaysFalsy)]` homeassistant/components/isy994/light.py:37:24: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Node`, found `Node | Group` homeassistant/components/isy994/light.py:37:63: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `str`, found `str | None` -homeassistant/components/isy994/light.py:64:20: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc`, found `object` +homeassistant/components/isy994/light.py:64:20: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex`, found `object` homeassistant/components/isy994/light.py:72:12: warning[possibly-missing-attribute] Attribute `uom` may be missing on object of type `Node | Program | Variable` -homeassistant/components/isy994/light.py:74:20: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc`, found `object` +homeassistant/components/isy994/light.py:74:20: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex`, found `object` homeassistant/components/isy994/light.py:79:22: warning[possibly-missing-attribute] Attribute `turn_off` may be missing on object of type `Node | Program | Variable` homeassistant/components/isy994/light.py:86:13: error[invalid-assignment] Object of type `object` is not assignable to attribute `_last_brightness` of type `int | None` homeassistant/components/isy994/light.py:87:16: warning[possibly-missing-attribute] Attribute `uom` may be missing on object of type `Node | Program | Variable` @@ -1956,7 +1991,7 @@ homeassistant/components/kiwi/lock.py:8:6: error[unresolved-import] Cannot resol homeassistant/components/kmtronic/config_flow.py:50:12: error[unresolved-attribute] Object of type `object` has no attribute `ClientResponseError` homeassistant/components/kmtronic/config_flow.py:52:12: error[unresolved-attribute] Object of type `object` has no attribute `ClientConnectorError` homeassistant/components/knx/expose.py:114:13: error[invalid-assignment] Object of type `int | float | str | None` is not assignable to attribute `value` on type `RemoteValueSensor | RemoteValueSwitch` -homeassistant/components/knx/light.py:375:24: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int] | None`, found `tuple[@Todo, int]` +homeassistant/components/knx/light.py:375:24: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int] | None`, found `tuple[@Todo(StarredExpression), int]` homeassistant/components/knx/sensor.py:217:16: error[unresolved-attribute] Object of type `SensorEntityDescription` has no attribute `value_fn` homeassistant/components/knx/sensor.py:222:12: error[unresolved-attribute] Object of type `SensorEntityDescription` has no attribute `always_available` homeassistant/components/knx/storage/config_store.py:88:25: error[missing-typed-dict-key] Missing required key 'entities' in TypedDict `KNXConfigStoreModel` constructor @@ -1986,6 +2021,9 @@ homeassistant/components/kostal_plenticore/sensor.py:839:17: error[invalid-argum homeassistant/components/kostal_plenticore/switch.py:103:17: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `DeviceInfo`, found `Unknown | dict[Unknown, Unknown] | DeviceInfo` homeassistant/components/kostal_plenticore/switch.py:148:21: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `DeviceInfo`, found `Unknown | dict[Unknown, Unknown] | DeviceInfo` homeassistant/components/kwb/sensor.py:5:6: error[unresolved-import] Cannot resolve imported module `pykwb` +homeassistant/components/labs/__init__.py:189:54: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _async_feature_updated(event: Event[EventLabsUpdatedData]) -> None` +homeassistant/components/labs/models.py:69:16: error[invalid-return-type] Return type does not match returned value: expected `NativeLabsStoreData`, found `dict[Unknown | str, Unknown | list[dict[Unknown | str, Unknown | str] | Unknown]]` +homeassistant/components/labs/models.py:70:39: error[invalid-argument-type] Invalid argument to key "preview_feature_status" with declared type `list[NativeLabsStoredFeature]` on TypedDict `NativeLabsStoreData`: value of type `list[dict[Unknown | str, Unknown | str] | Unknown]` homeassistant/components/lacrosse/sensor.py:9:8: error[unresolved-import] Cannot resolve imported module `pylacrosse` homeassistant/components/launch_library/__init__.py:44:21: error[invalid-argument-type] Argument to bound method `launch_upcoming` is incorrect: Expected `Mapping[str, str] | None`, found `dict[Unknown | str, Unknown | int | str]` homeassistant/components/launch_library/__init__.py:56:9: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `(() -> Awaitable[dict[str, Any]]) | None`, found `def async_update() -> CoroutineType[Any, Any, LaunchLibraryData]` @@ -1999,37 +2037,7 @@ homeassistant/components/laundrify/sensor.py:50:67: error[unresolved-attribute] homeassistant/components/laundrify/sensor.py:51:35: error[unresolved-attribute] Object of type `LaundrifyDevice` has no attribute `id` homeassistant/components/laundrify/sensor.py:97:40: warning[possibly-missing-attribute] Attribute `id` may be missing on object of type `Unknown | LaundrifyDevice` homeassistant/components/laundrify/sensor.py:98:22: warning[possibly-missing-attribute] Attribute `totalEnergy` may be missing on object of type `Unknown | LaundrifyDevice` -homeassistant/components/lcn/__init__.py:279:65: error[invalid-argument-type] Argument to function `_async_fire_access_control_event` is incorrect: Expected `InputType`, found `ModStatusAccessControl` -homeassistant/components/lcn/__init__.py:281:60: error[invalid-argument-type] Argument to function `_async_fire_send_keys_event` is incorrect: Expected `InputType`, found `ModSendKeysHost & ~ModStatusAccessControl` -homeassistant/components/lcn/__init__.py:294:17: error[unresolved-attribute] Object of type `InputType` has no attribute `code` -homeassistant/components/lcn/__init__.py:300:8: error[unresolved-attribute] Object of type `InputType` has no attribute `periphery` -homeassistant/components/lcn/__init__.py:302:23: error[unresolved-attribute] Object of type `InputType` has no attribute `level` -homeassistant/components/lcn/__init__.py:302:41: error[unresolved-attribute] Object of type `InputType` has no attribute `key` -homeassistant/components/lcn/__init__.py:302:60: error[unresolved-attribute] Object of type `InputType` has no attribute `action` -homeassistant/components/lcn/__init__.py:305:25: error[unresolved-attribute] Object of type `InputType` has no attribute `periphery` -homeassistant/components/lcn/__init__.py:316:36: error[unresolved-attribute] Object of type `InputType` has no attribute `actions` -homeassistant/components/lcn/__init__.py:320:40: error[unresolved-attribute] Object of type `InputType` has no attribute `keys` -homeassistant/components/lcn/binary_sensor.py:76:15: warning[possibly-missing-attribute] Attribute `request_status_binary_sensors` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/climate.py:187:13: warning[possibly-missing-attribute] Attribute `request_status_variable` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/climate.py:190:13: warning[possibly-missing-attribute] Attribute `request_status_variable` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/cover.py:135:17: warning[possibly-missing-attribute] Attribute `request_status_output` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/cover.py:138:17: warning[possibly-missing-attribute] Attribute `request_status_output` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/cover.py:192:13: error[unsupported-operator] Operator `|=` is unsupported between objects of type `None` and `Literal[CoverEntityFeature.SET_POSITION]` -homeassistant/components/lcn/cover.py:258:18: warning[possibly-missing-attribute] Attribute `request_status_relays` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/cover.py:261:17: warning[possibly-missing-attribute] Attribute `request_status_motor_position` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/cover.py:286:13: error[invalid-assignment] Object of type `Unknown | int | float` is not assignable to attribute `_attr_current_cover_position` of type `int | None` -homeassistant/components/lcn/entity.py:72:39: warning[possibly-missing-attribute] Attribute `register_for_inputs` may be missing on object of type `DeviceConnectionType` -homeassistant/components/lcn/entity.py:73:13: error[invalid-argument-type] Argument to bound method `register_for_inputs` is incorrect: Expected `(Input, /) -> None`, found `bound method Self@async_added_to_hass.input_received(input_obj: type[Input]) -> None` -homeassistant/components/lcn/helpers.py:254:15: warning[possibly-missing-attribute] Attribute `serials_known` may be missing on object of type `DeviceConnectionType` -homeassistant/components/lcn/helpers.py:274:29: warning[possibly-missing-attribute] Attribute `request_name` may be missing on object of type `DeviceConnectionType` -homeassistant/components/lcn/light.py:152:15: warning[possibly-missing-attribute] Attribute `request_status_output` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/light.py:203:15: warning[possibly-missing-attribute] Attribute `request_status_relays` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/sensor.py:136:15: warning[possibly-missing-attribute] Attribute `request_status_variable` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/sensor.py:172:15: warning[possibly-missing-attribute] Attribute `request_status_led_and_logic_ops` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/switch.py:98:15: warning[possibly-missing-attribute] Attribute `request_status_output` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/switch.py:145:15: warning[possibly-missing-attribute] Attribute `request_status_relays` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/switch.py:186:15: warning[possibly-missing-attribute] Attribute `request_status_variable` may be missing on object of type `ModuleConnection | GroupConnection` -homeassistant/components/lcn/switch.py:239:15: warning[possibly-missing-attribute] Attribute `request_status_locked_keys` may be missing on object of type `ModuleConnection | GroupConnection` +homeassistant/components/lcn/cover.py:196:13: error[unsupported-operator] Operator `|=` is unsupported between objects of type `None` and `Literal[CoverEntityFeature.SET_POSITION]` homeassistant/components/led_ble/__init__.py:91:59: error[invalid-argument-type] Argument is incorrect: Expected `DataUpdateCoordinator[None]`, found `DataUpdateCoordinator[dict[str, Any]]` homeassistant/components/lg_soundbar/media_player.py:155:9: warning[possibly-missing-attribute] Attribute `get_eq` may be missing on object of type `Unknown | None | temescal` homeassistant/components/lg_soundbar/media_player.py:156:9: warning[possibly-missing-attribute] Attribute `get_info` may be missing on object of type `Unknown | None | temescal` @@ -2049,8 +2057,8 @@ homeassistant/components/lg_thinq/climate.py:160:35: error[no-matching-overload] homeassistant/components/lg_thinq/climate.py:253:35: error[invalid-argument-type] Argument to bound method `async_set_hvac_mode` is incorrect: Expected `str`, found `str | Unknown | None` homeassistant/components/lg_thinq/climate.py:296:35: error[invalid-argument-type] Argument to bound method `async_set_swing_mode` is incorrect: Expected `str`, found `Unknown | str | None` homeassistant/components/lg_thinq/climate.py:310:35: error[invalid-argument-type] Argument to bound method `async_set_swing_horizontal_mode` is incorrect: Expected `str`, found `Unknown | str | None` -homeassistant/components/lg_thinq/climate.py:338:16: error[unsupported-operator] Operator `>=` is not supported for types `None` and `int`, in comparing `int | float | None` with `Literal[1]` -homeassistant/components/lg_thinq/climate.py:351:16: error[unsupported-operator] Operator `>=` is not supported for types `None` and `int`, in comparing `int | float | None` with `Literal[1]` +homeassistant/components/lg_thinq/climate.py:338:16: error[unsupported-operator] Operator `>=` is not supported between objects of type `int | float | None` and `Literal[1]` +homeassistant/components/lg_thinq/climate.py:351:16: error[unsupported-operator] Operator `>=` is not supported between objects of type `int | float | None` and `Literal[1]` homeassistant/components/lg_thinq/coordinator.py:41:9: error[invalid-assignment] Object of type `dict[str, PropertyState] | None` is not assignable to attribute `data` of type `dict[str, Any]` homeassistant/components/lg_thinq/event.py:30:79: error[invalid-assignment] Object of type `dict[DeviceType | Unknown | str, tuple[EventEntityDescription, ...]]` is not assignable to `dict[DeviceType, tuple[EventEntityDescription, ...]]` homeassistant/components/lg_thinq/event.py:67:17: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceType`, found `Unknown | str` @@ -2058,7 +2066,7 @@ homeassistant/components/lg_thinq/event.py:95:9: error[invalid-assignment] Objec homeassistant/components/lg_thinq/fan.py:38:80: error[invalid-assignment] Object of type `dict[DeviceType | Unknown | str, tuple[ThinQFanEntityDescription, ...]]` is not assignable to `dict[DeviceType, tuple[ThinQFanEntityDescription, ...]]` homeassistant/components/lg_thinq/fan.py:71:53: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceType`, found `Unknown | str` homeassistant/components/lg_thinq/fan.py:104:23: error[not-iterable] Object of type `list[str] | None` may not be iterable -homeassistant/components/lg_thinq/fan.py:115:29: error[unsupported-operator] Operator `not in` is not supported for types `Unknown` and `None`, in comparing `Unknown | str` with `list[str] | None` +homeassistant/components/lg_thinq/fan.py:115:29: error[unsupported-operator] Operator `not in` is not supported between objects of type `Unknown | str` and `list[str] | None` homeassistant/components/lg_thinq/number.py:55:67: error[invalid-assignment] Object of type `dict[Property | TimerProperty, NumberEntityDescription]` is not assignable to `dict[Property, NumberEntityDescription]` homeassistant/components/lg_thinq/number.py:85:5: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[Property, NumberEntityDescription].__getitem__(key: Property, /) -> NumberEntityDescription` cannot be called with key of type `Literal[TimerProperty.RELATIVE_HOUR_TO_START_WM]` on object of type `dict[Property, NumberEntityDescription]` homeassistant/components/lg_thinq/number.py:86:5: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[Property, NumberEntityDescription].__getitem__(key: Property, /) -> NumberEntityDescription` cannot be called with key of type `Literal[TimerProperty.RELATIVE_HOUR_TO_STOP_WM]` on object of type `dict[Property, NumberEntityDescription]` @@ -2125,7 +2133,6 @@ homeassistant/components/lifx/coordinator.py:202:27: error[non-subscriptable] Ca homeassistant/components/lifx/coordinator.py:203:23: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/lifx/coordinator.py:209:48: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `Iterable[Unknown]`, found `Unknown | None | list[Unknown | None]` homeassistant/components/lifx/coordinator.py:210:17: error[invalid-assignment] Cannot assign to a subscript on an object of type `int` -homeassistant/components/lifx/coordinator.py:210:17: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` homeassistant/components/lifx/coordinator.py:294:27: error[invalid-argument-type] Argument is incorrect: Expected `Message`, found `Light` homeassistant/components/lifx/coordinator.py:294:33: error[invalid-argument-type] Argument is incorrect: Expected `dict[str, Any] | None`, found `Message` homeassistant/components/lifx/coordinator.py:385:47: error[unresolved-attribute] Object of type `Message` has no attribute `signal` @@ -2214,14 +2221,14 @@ homeassistant/components/lookin/climate.py:217:42: error[invalid-argument-type] homeassistant/components/lookin/entity.py:161:34: error[invalid-argument-type] Argument to bound method `_update_from_status` is incorrect: Expected `str`, found `str | None` homeassistant/components/lookin/entity.py:175:34: error[invalid-argument-type] Argument to bound method `_update_from_status` is incorrect: Expected `str`, found `str | None` homeassistant/components/loqed/sensor.py:67:16: error[invalid-return-type] Return type does not match returned value: expected `StatusMessage`, found `Unknown | Lock` -homeassistant/components/lovelace/__init__.py:333:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `str | None`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` -homeassistant/components/lovelace/__init__.py:333:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `str | None`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` -homeassistant/components/lovelace/__init__.py:333:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `bool`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` -homeassistant/components/lovelace/__init__.py:333:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `str | None`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` -homeassistant/components/lovelace/__init__.py:333:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `dict[str, Any] | None`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` -homeassistant/components/lovelace/__init__.py:333:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `bool`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` -homeassistant/components/lovelace/__init__.py:333:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `bool`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` -homeassistant/components/lovelace/__init__.py:333:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `str | None`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` +homeassistant/components/lovelace/__init__.py:340:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `str | None`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` +homeassistant/components/lovelace/__init__.py:340:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `str | None`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` +homeassistant/components/lovelace/__init__.py:340:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `bool`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` +homeassistant/components/lovelace/__init__.py:340:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `str | None`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` +homeassistant/components/lovelace/__init__.py:340:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `dict[str, Any] | None`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` +homeassistant/components/lovelace/__init__.py:340:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `bool`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` +homeassistant/components/lovelace/__init__.py:340:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `bool`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` +homeassistant/components/lovelace/__init__.py:340:58: error[invalid-argument-type] Argument to function `async_register_built_in_panel` is incorrect: Expected `str | None`, found `Unknown | str | None | dict[Unknown | str, Unknown | str] | bool` homeassistant/components/lovelace/dashboard.py:155:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` homeassistant/components/lovelace/dashboard.py:158:38: error[invalid-argument-type] Argument to bound method `async_save` is incorrect: Expected `dict[str, Any]`, found `dict[str, Any] | None` homeassistant/components/luci/device_tracker.py:7:6: error[unresolved-import] Cannot resolve imported module `openwrt_luci_rpc` @@ -2246,6 +2253,7 @@ homeassistant/components/lutron/switch.py:90:9: error[invalid-assignment] Invali homeassistant/components/lutron/switch.py:94:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `state` on type `Led` with custom `__set__` method homeassistant/components/lutron_caseta/entity.py:50:25: error[invalid-argument-type] Invalid argument to key "identifiers" with declared type `set[tuple[str, str]]` on TypedDict `DeviceInfo`: value of type `set[Unknown | tuple[str, str | int]]` homeassistant/components/lutron_caseta/light.py:169:29: error[invalid-argument-type] Argument to bound method `set_warm_dim` is incorrect: Expected `bool`, found `None | Unknown` +homeassistant/components/lutron_caseta/switch.py:101:53: error[invalid-argument-type] Argument to bound method `add_smart_away_subscriber` is incorrect: Expected `(str, /) -> None`, found `bound method Self@async_added_to_hass._handle_bridge_update() -> None` homeassistant/components/lw12wifi/light.py:8:8: error[unresolved-import] Cannot resolve imported module `lw12` homeassistant/components/madvr/sensor.py:279:15: error[unresolved-attribute] Object of type `SensorEntityDescription` has no attribute `value_fn` homeassistant/components/mailgun/notify.py:105:20: warning[possibly-missing-attribute] Attribute `send_mail` may be missing on object of type `Unknown | None | Client` @@ -2284,8 +2292,8 @@ homeassistant/components/matter/light.py:184:17: error[invalid-argument-type] Ar homeassistant/components/matter/light.py:271:17: error[invalid-argument-type] Argument to function `renormalize` is incorrect: Expected `int | float`, found `Unknown | Nullable | uint` homeassistant/components/matter/number.py:147:17: error[invalid-argument-type] Argument is incorrect: Expected `uint`, found `int | @Todo` homeassistant/components/matter/number.py:354:17: error[invalid-argument-type] Argument is incorrect: Expected `uint | None`, found `int` -homeassistant/components/matter/select.py:146:34: error[invalid-assignment] Object of type `Unknown | ModeSelect | OvenMode | ... omitted 9 union elements` is not assignable to `SelectCluster` -homeassistant/components/matter/select.py:163:34: error[invalid-assignment] Object of type `Unknown | ModeSelect | OvenMode | ... omitted 9 union elements` is not assignable to `SelectCluster` +homeassistant/components/matter/select.py:158:34: error[invalid-assignment] Object of type `Unknown | ModeSelect | OvenMode | ... omitted 9 union elements` is not assignable to `SelectCluster` +homeassistant/components/matter/select.py:175:34: error[invalid-assignment] Object of type `Unknown | ModeSelect | OvenMode | ... omitted 9 union elements` is not assignable to `SelectCluster` homeassistant/components/matter/valve.py:63:60: error[invalid-argument-type] Argument is incorrect: Expected `uint | None`, found `int` homeassistant/components/matter/water_heater.py:94:13: error[invalid-argument-type] Argument is incorrect: Expected `uint`, found `int` homeassistant/components/matter/water_heater.py:96:13: error[invalid-argument-type] Argument is incorrect: Expected `int | None`, found `int | ` @@ -2306,8 +2314,8 @@ homeassistant/components/melcloud/__init__.py:105:25: error[invalid-argument-typ homeassistant/components/melcloud/climate.py:84:38: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `AtaDevice`, found `Unknown | Device` homeassistant/components/melcloud/climate.py:89:46: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `AtwDevice`, found `Unknown | Device` homeassistant/components/melcloud/climate.py:91:25: warning[possibly-missing-attribute] Attribute `zones` may be missing on object of type `Unknown | Device` -homeassistant/components/melcloud/climate.py:262:12: error[unsupported-operator] Operator `not in` is not supported for types `str` and `None`, in comparing `str` with `Unknown | list[str] | None` -homeassistant/components/melcloud/climate.py:271:12: error[unsupported-operator] Operator `not in` is not supported for types `str` and `None`, in comparing `str` with `Unknown | list[str] | None` +homeassistant/components/melcloud/climate.py:262:12: error[unsupported-operator] Operator `not in` is not supported between objects of type `str` and `Unknown | list[str] | None` +homeassistant/components/melcloud/climate.py:271:12: error[unsupported-operator] Operator `not in` is not supported between objects of type `str` and `Unknown | list[str] | None` homeassistant/components/melcloud/config_flow.py:50:25: error[invalid-argument-type] Argument to function `login` is incorrect: Expected `str`, found `str | None` homeassistant/components/melcloud/sensor.py:136:25: warning[possibly-missing-attribute] Attribute `zones` may be missing on object of type `Unknown | Device` homeassistant/components/melcloud/water_heater.py:37:40: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `AtwDevice`, found `Unknown | Device` @@ -2370,10 +2378,10 @@ homeassistant/components/mobile_app/device_tracker.py:90:20: warning[possibly-mi homeassistant/components/mobile_app/device_tracker.py:98:20: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `Unknown | None | dict[Unknown, Unknown] | dict[Unknown | str, Unknown | tuple[Any | None, Any | None] | None]` homeassistant/components/mobile_app/device_tracker.py:106:29: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `Unknown | None | dict[Unknown, Unknown] | dict[Unknown | str, Unknown | tuple[Any | None, Any | None] | None]` homeassistant/components/mobile_app/device_tracker.py:113:20: error[invalid-return-type] Return type does not match returned value: expected `str | None`, found `(Unknown & ~AlwaysFalsy & ~Literal["home"]) | tuple[Any | None, Any | None]` -homeassistant/components/mobile_app/entity.py:83:28: error[invalid-argument-type] Argument to function `device_info` is incorrect: Expected `dict[Unknown, Unknown]`, found `Unknown | MappingProxyType[str, Any]` -homeassistant/components/mobile_app/webhook.py:171:23: warning[possibly-missing-attribute] Submodule `humanize` may not be available as an attribute on module `voluptuous` -homeassistant/components/mobile_app/webhook.py:212:15: warning[possibly-missing-attribute] Submodule `humanize` may not be available as an attribute on module `voluptuous` -homeassistant/components/mobile_app/webhook.py:674:23: warning[possibly-missing-attribute] Submodule `humanize` may not be available as an attribute on module `voluptuous` +homeassistant/components/mobile_app/entity.py:100:28: error[invalid-argument-type] Argument to function `device_info` is incorrect: Expected `dict[Unknown, Unknown]`, found `Unknown | MappingProxyType[str, Any]` +homeassistant/components/mobile_app/webhook.py:170:23: warning[possibly-missing-attribute] Submodule `humanize` may not be available as an attribute on module `voluptuous` +homeassistant/components/mobile_app/webhook.py:211:15: warning[possibly-missing-attribute] Submodule `humanize` may not be available as an attribute on module `voluptuous` +homeassistant/components/mobile_app/webhook.py:675:23: warning[possibly-missing-attribute] Submodule `humanize` may not be available as an attribute on module `voluptuous` homeassistant/components/modbus/cover.py:100:34: error[invalid-argument-type] Argument to bound method `_set_attr_state` is incorrect: Expected `str | int`, found `Unknown | bool | None` homeassistant/components/modbus/light.py:202:20: error[unsupported-operator] Operator `-` is unsupported between objects of type `int | None` and `int | None` homeassistant/components/modbus/light.py:219:16: error[unsupported-operator] Operator `-` is unsupported between objects of type `int` and `int | None` @@ -2496,24 +2504,24 @@ homeassistant/components/mpd/media_player.py:494:23: warning[possibly-missing-at homeassistant/components/mpd/media_player.py:496:23: warning[possibly-missing-attribute] Attribute `repeat` may be missing on object of type `Unknown | MPDClient` homeassistant/components/mpd/media_player.py:498:27: warning[possibly-missing-attribute] Attribute `single` may be missing on object of type `Unknown | MPDClient` homeassistant/components/mpd/media_player.py:500:27: warning[possibly-missing-attribute] Attribute `single` may be missing on object of type `Unknown | MPDClient` -homeassistant/components/mpd/media_player.py:505:25: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc`, found `Unknown | None` +homeassistant/components/mpd/media_player.py:505:25: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex`, found `Unknown | None` homeassistant/components/mpd/media_player.py:510:19: warning[possibly-missing-attribute] Attribute `random` may be missing on object of type `Unknown | MPDClient` homeassistant/components/mpd/media_player.py:515:19: warning[possibly-missing-attribute] Attribute `stop` may be missing on object of type `Unknown | MPDClient` homeassistant/components/mpd/media_player.py:520:19: warning[possibly-missing-attribute] Attribute `play` may be missing on object of type `Unknown | MPDClient` homeassistant/components/mpd/media_player.py:526:19: warning[possibly-missing-attribute] Attribute `clear` may be missing on object of type `Unknown | MPDClient` homeassistant/components/mpd/media_player.py:531:19: warning[possibly-missing-attribute] Attribute `seekcur` may be missing on object of type `Unknown | MPDClient` -homeassistant/components/mqtt/client.py:270:18: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `list[ReceiveMessage]`? -homeassistant/components/mqtt/client.py:270:36: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 -homeassistant/components/mqtt/client.py:838:30: error[unresolved-attribute] Object of type `object` has no attribute `__name__` -homeassistant/components/mqtt/client.py:840:30: error[unresolved-attribute] Object of type `((ReceiveMessage, /) -> Coroutine[Any, Any, None] | None) & ~Top[partial[Unknown]]` has no attribute `__name__` -homeassistant/components/mqtt/config_flow.py:3376:65: error[no-matching-overload] No overload of bound method `__init__` matches arguments -homeassistant/components/mqtt/config_flow.py:4215:30: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[str, dict[str, Any]].__getitem__(key: str, /) -> dict[str, Any]` cannot be called with key of type `str | None` on object of type `dict[str, dict[str, Any]]` -homeassistant/components/mqtt/config_flow.py:4217:33: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[str, dict[str, Any]].__getitem__(key: str, /) -> dict[str, Any]` cannot be called with key of type `str | None` on object of type `dict[str, dict[str, Any]]` -homeassistant/components/mqtt/config_flow.py:4589:13: error[no-matching-overload] No overload of bound method `update` matches arguments -homeassistant/components/mqtt/config_flow.py:4590:13: error[no-matching-overload] No overload of bound method `update` matches arguments -homeassistant/components/mqtt/config_flow.py:4626:9: error[no-matching-overload] No overload of bound method `update` matches arguments -homeassistant/components/mqtt/config_flow.py:4638:13: error[no-matching-overload] No overload of bound method `update` matches arguments -homeassistant/components/mqtt/config_flow.py:4639:13: error[no-matching-overload] No overload of bound method `update` matches arguments +homeassistant/components/mqtt/client.py:307:18: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `list[ReceiveMessage]`? +homeassistant/components/mqtt/client.py:307:36: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 +homeassistant/components/mqtt/client.py:879:30: error[unresolved-attribute] Object of type `object` has no attribute `__name__` +homeassistant/components/mqtt/client.py:881:30: error[unresolved-attribute] Object of type `((ReceiveMessage, /) -> Coroutine[Any, Any, None] | None) & ~Top[partial[Unknown]]` has no attribute `__name__` +homeassistant/components/mqtt/config_flow.py:3762:65: error[no-matching-overload] No overload of bound method `__init__` matches arguments +homeassistant/components/mqtt/config_flow.py:4600:30: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[str, dict[str, Any]].__getitem__(key: str, /) -> dict[str, Any]` cannot be called with key of type `str | None` on object of type `dict[str, dict[str, Any]]` +homeassistant/components/mqtt/config_flow.py:4602:33: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[str, dict[str, Any]].__getitem__(key: str, /) -> dict[str, Any]` cannot be called with key of type `str | None` on object of type `dict[str, dict[str, Any]]` +homeassistant/components/mqtt/config_flow.py:4974:13: error[no-matching-overload] No overload of bound method `update` matches arguments +homeassistant/components/mqtt/config_flow.py:4975:13: error[no-matching-overload] No overload of bound method `update` matches arguments +homeassistant/components/mqtt/config_flow.py:5011:9: error[no-matching-overload] No overload of bound method `update` matches arguments +homeassistant/components/mqtt/config_flow.py:5023:13: error[no-matching-overload] No overload of bound method `update` matches arguments +homeassistant/components/mqtt/config_flow.py:5024:13: error[no-matching-overload] No overload of bound method `update` matches arguments homeassistant/components/mqtt/debug_info.py:64:13: error[invalid-assignment] Invalid subscript assignment with key of type `str` and value of type `dict[Unknown | str, Unknown | int | deque[Unknown]]` on object of type `dict[str, SubscriptionDebugInfo]` homeassistant/components/mqtt/debug_info.py:120:5: error[invalid-assignment] Invalid subscript assignment with key of type `tuple[str, str]` and value of type `dict[Unknown | str, Unknown | str | dict[str, Any]]` on object of type `dict[tuple[str, str], TriggerDebugInfo]` homeassistant/components/mqtt/discovery.py:63:42: error[invalid-type-arguments] Too many type arguments to class `SignalTypeFormat`: expected 0, got 1 @@ -2522,18 +2530,18 @@ homeassistant/components/mqtt/discovery.py:69:39: error[invalid-type-arguments] homeassistant/components/mqtt/discovery.py:544:13: error[invalid-assignment] Invalid subscript assignment with key of type `tuple[str, str]` and value of type `dict[Unknown | str, Unknown | (() -> None) | deque[Unknown]]` on object of type `dict[tuple[str, str], PendingDiscovered]` homeassistant/components/mqtt/entity.py:382:17: error[no-matching-overload] No overload of bound method `update` matches arguments homeassistant/components/mqtt/entity.py:383:17: error[no-matching-overload] No overload of bound method `update` matches arguments -homeassistant/components/mqtt/entity.py:1733:47: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Create`: Unknown key "changes" -homeassistant/components/mqtt/entity.py:1733:47: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Remove`: Unknown key "changes" +homeassistant/components/mqtt/entity.py:1734:47: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Create`: Unknown key "changes" +homeassistant/components/mqtt/entity.py:1734:47: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Remove`: Unknown key "changes" homeassistant/components/mqtt/subscription.py:169:28: error[invalid-assignment] Implicit shadowing of function `async_unsubscribe_topics` -homeassistant/components/mqtt/valve.py:332:54: error[invalid-argument-type] Argument to bound method `_process_position_valve_update` is incorrect: Expected `str`, found `Unknown | str | bytes | ... omitted 6 union elements` -homeassistant/components/mqtt/valve.py:332:72: error[invalid-argument-type] Argument to bound method `_process_position_valve_update` is incorrect: Expected `str`, found `Unknown | str | bytes | ... omitted 6 union elements` -homeassistant/components/mqtt/valve.py:334:52: error[invalid-argument-type] Argument to bound method `_process_binary_valve_update` is incorrect: Expected `str`, found `Unknown | str | bytes | ... omitted 6 union elements` +homeassistant/components/mqtt/valve.py:335:54: error[invalid-argument-type] Argument to bound method `_process_position_valve_update` is incorrect: Expected `str`, found `Unknown | str | bytes | ... omitted 6 union elements` +homeassistant/components/mqtt/valve.py:335:72: error[invalid-argument-type] Argument to bound method `_process_position_valve_update` is incorrect: Expected `str`, found `Unknown | str | bytes | ... omitted 6 union elements` +homeassistant/components/mqtt/valve.py:337:52: error[invalid-argument-type] Argument to bound method `_process_binary_valve_update` is incorrect: Expected `str`, found `Unknown | str | bytes | ... omitted 6 union elements` homeassistant/components/mqtt_statestream/__init__.py:104:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventStateChangedData]` homeassistant/components/mqtt_statestream/__init__.py:104:34: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _state_publisher(evt: Event[EventStateChangedData]) -> CoroutineType[Any, Any, None]` homeassistant/components/mqtt_statestream/__init__.py:104:52: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _event_filter(event_data: EventStateChangedData) -> bool` homeassistant/components/msteams/notify.py:7:8: error[unresolved-import] Cannot resolve imported module `pymsteams` -homeassistant/components/music_assistant/media_player.py:672:39: warning[possibly-missing-attribute] Attribute `uri` may be missing on object of type `QueueItem | None` -homeassistant/components/music_assistant/media_player.py:673:37: warning[possibly-missing-attribute] Attribute `duration` may be missing on object of type `QueueItem | None` +homeassistant/components/music_assistant/media_player.py:615:39: warning[possibly-missing-attribute] Attribute `uri` may be missing on object of type `QueueItem | None` +homeassistant/components/music_assistant/media_player.py:616:37: warning[possibly-missing-attribute] Attribute `duration` may be missing on object of type `QueueItem | None` homeassistant/components/mutesync/config_flow.py:41:12: error[invalid-return-type] Return type does not match returned value: expected `dict[str, Any]`, found `str` homeassistant/components/mvglive/sensor.py:11:6: error[unresolved-import] Cannot resolve imported module `mvg` homeassistant/components/mycroft/notify.py:7:6: error[unresolved-import] Cannot resolve imported module `mycroftapi` @@ -2544,10 +2552,10 @@ homeassistant/components/mysensors/handler.py:40:16: warning[possibly-missing-at homeassistant/components/mysensors/helpers.py:167:26: error[invalid-argument-type] Argument to function `validate_node` is incorrect: Expected `BaseAsyncGateway`, found `Unknown | None` homeassistant/components/mysensors/helpers.py:169:13: warning[possibly-missing-attribute] Attribute `sensors` may be missing on object of type `Unknown | None` homeassistant/components/mysensors/helpers.py:170:39: error[invalid-argument-type] Argument to function `validate_child` is incorrect: Expected `BaseAsyncGateway`, found `Unknown | None` -homeassistant/components/mystrom/sensor.py:63:29: error[invalid-assignment] Object of type `MyStromSwitch | MyStromBulb` is not assignable to `MyStromSwitch` -homeassistant/components/mystrom/sensor.py:91:25: error[invalid-argument-type] Invalid argument to key "identifiers" with declared type `set[tuple[str, str]]` on TypedDict `DeviceInfo`: value of type `set[Unknown | tuple[str, str | None]]` +homeassistant/components/mystrom/sensor.py:80:29: error[invalid-assignment] Object of type `MyStromSwitch | MyStromBulb` is not assignable to `MyStromSwitch` +homeassistant/components/mystrom/sensor.py:108:25: error[invalid-argument-type] Invalid argument to key "identifiers" with declared type `set[tuple[str, str]]` on TypedDict `DeviceInfo`: value of type `set[Unknown | tuple[str, str | None]]` homeassistant/components/nad/media_player.py:5:6: error[unresolved-import] Cannot resolve imported module `nad_receiver` -homeassistant/components/nasweb/sensor.py:155:41: error[unsupported-operator] Operator `in` is not supported for types `Unknown` and `None`, in comparing `(Unknown & ~None) | str` with `list[str] | None` +homeassistant/components/nasweb/sensor.py:155:41: error[unsupported-operator] Operator `in` is not supported between objects of type `(Unknown & ~None) | str` and `list[str] | None` homeassistant/components/neato/api.py:31:9: error[invalid-method-override] Invalid override of method `refresh_tokens`: Definition is incompatible with `OAuthSession.refresh_tokens` homeassistant/components/neato/vacuum.py:298:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` homeassistant/components/neato/vacuum.py:299:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` @@ -2584,7 +2592,7 @@ homeassistant/components/nightscout/__init__.py:40:20: error[unresolved-attribut homeassistant/components/nightscout/config_flow.py:29:12: error[unresolved-attribute] Object of type `ServerStatus` has no attribute `settings` homeassistant/components/nightscout/config_flow.py:37:22: error[unresolved-attribute] Object of type `ServerStatus` has no attribute `name` homeassistant/components/niko_home_control/light.py:52:13: error[invalid-assignment] Object of type `str | int` is not assignable to attribute `_attr_brightness` of type `int | None` -homeassistant/components/niko_home_control/light.py:65:28: error[unsupported-operator] Operator `>` is not supported for types `str` and `int`, in comparing `str | int` with `Literal[0]` +homeassistant/components/niko_home_control/light.py:65:28: error[unsupported-operator] Operator `>` is not supported between objects of type `str | int` and `Literal[0]` homeassistant/components/niko_home_control/light.py:67:13: error[invalid-assignment] Object of type `str | int` is not assignable to attribute `_attr_brightness` of type `int | None` homeassistant/components/niko_home_control/scene.py:36:15: warning[possibly-missing-attribute] Attribute `activate` may be missing on object of type `Unknown | NHCAction` homeassistant/components/nilu/air_quality.py:8:6: error[unresolved-import] Cannot resolve imported module `niluclient` @@ -2592,12 +2600,12 @@ homeassistant/components/nissan_leaf/__init__.py:12:6: error[unresolved-import] homeassistant/components/nissan_leaf/__init__.py:13:6: error[unresolved-import] Cannot resolve imported module `pycarwings2.responses` homeassistant/components/nmap_tracker/__init__.py:220:9: error[invalid-assignment] Object of type `dict[str | Unknown, str | None | Unknown]` is not assignable to attribute `_known_mac_addresses` of type `dict[str, str]` homeassistant/components/nmap_tracker/__init__.py:249:17: error[invalid-argument-type] Argument to function `async_track_time_interval` is incorrect: Expected `timedelta`, found `Unknown | None | timedelta` -homeassistant/components/nmap_tracker/__init__.py:262:60: error[unsupported-operator] Operator `>` is not supported for types `datetime` and `timedelta`, in comparing `datetime` with `timedelta | datetime` +homeassistant/components/nmap_tracker/__init__.py:262:60: error[unsupported-operator] Operator `>` is not supported between objects of type `datetime` and `timedelta | datetime` homeassistant/components/nmap_tracker/__init__.py:265:33: error[unsupported-operator] Operator `+` is unsupported between objects of type `Unknown | None` and `list[str | Unknown]` homeassistant/components/nmap_tracker/__init__.py:272:13: error[unsupported-operator] Operator `+=` is unsupported between objects of type `None` and `str` -homeassistant/components/nmap_tracker/__init__.py:274:12: error[unsupported-operator] Operator `not in` is not supported for types `str` and `None`, in comparing `Literal["--reason"]` with `Unknown | None` +homeassistant/components/nmap_tracker/__init__.py:274:12: error[unsupported-operator] Operator `not in` is not supported between objects of type `Literal["--reason"]` and `Unknown | None` homeassistant/components/nmap_tracker/__init__.py:275:13: error[unsupported-operator] Operator `+=` is unsupported between objects of type `None` and `Literal[" --reason"]` -homeassistant/components/nmap_tracker/__init__.py:277:12: error[unsupported-operator] Operator `not in` is not supported for types `str` and `None`, in comparing `Literal["-v"]` with `Unknown | None` +homeassistant/components/nmap_tracker/__init__.py:277:12: error[unsupported-operator] Operator `not in` is not supported between objects of type `Literal["-v"]` and `Unknown | None` homeassistant/components/nmap_tracker/__init__.py:278:13: error[unsupported-operator] Operator `+=` is unsupported between objects of type `None` and `Literal[" -v"]` homeassistant/components/nmap_tracker/__init__.py:284:12: warning[possibly-missing-attribute] Attribute `locked` may be missing on object of type `Unknown | None | Lock` homeassistant/components/nmap_tracker/__init__.py:291:20: error[invalid-context-manager] Object of type `Unknown | None | Lock` cannot be used with `async with` because the methods `__aenter__` and `__aexit__` are possibly missing @@ -2606,7 +2614,7 @@ homeassistant/components/nmap_tracker/__init__.py:314:17: error[invalid-argument homeassistant/components/nmap_tracker/__init__.py:315:17: error[invalid-argument-type] Argument is incorrect: Expected `str`, found `str | None` homeassistant/components/nmap_tracker/__init__.py:318:17: error[invalid-argument-type] Argument is incorrect: Expected `datetime | None`, found `Literal[1]` homeassistant/components/nmap_tracker/__init__.py:331:27: error[no-matching-overload] No overload of bound method `join` matches arguments -homeassistant/components/nmap_tracker/__init__.py:418:16: error[unsupported-operator] Operator `in` is not supported for types `Unknown` and `None`, in comparing `Unknown` with `Unknown | None` +homeassistant/components/nmap_tracker/__init__.py:418:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Unknown` and `Unknown | None` homeassistant/components/nmap_tracker/__init__.py:430:50: error[invalid-argument-type] Argument to function `human_readable_name` is incorrect: Expected `str`, found `(Unknown & ~AlwaysFalsy) | str | None` homeassistant/components/nmap_tracker/__init__.py:432:54: error[invalid-argument-type] Argument is incorrect: Expected `str`, found `(Unknown & ~AlwaysFalsy) | str | None` homeassistant/components/nmbs/sensor.py:272:19: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method @@ -2789,14 +2797,14 @@ homeassistant/components/osoenergy/sensor.py:181:49: error[invalid-argument-type homeassistant/components/osoenergy/water_heater.py:271:69: error[invalid-argument-type] Argument to bound method `set_profile` is incorrect: Expected `array[Unknown]`, found `list[Unknown | int]` homeassistant/components/osoenergy/water_heater.py:289:69: error[invalid-argument-type] Argument to bound method `set_profile` is incorrect: Expected `array[Unknown]`, found `Unknown | list[int | float]` homeassistant/components/osramlightify/light.py:9:6: error[unresolved-import] Cannot resolve imported module `lightify` -homeassistant/components/osramlightify/light.py:362:12: error[unsupported-operator] Operator `in` is not supported for types `Literal[ColorMode.COLOR_TEMP]` and `None`, in comparing `Literal[ColorMode.COLOR_TEMP]` with `set[ColorMode] | set[str] | None | Unknown` -homeassistant/components/osramlightify/light.py:365:12: error[unsupported-operator] Operator `in` is not supported for types `Literal[ColorMode.HS]` and `None`, in comparing `Literal[ColorMode.HS]` with `set[ColorMode] | set[str] | None | Unknown` +homeassistant/components/osramlightify/light.py:362:12: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal[ColorMode.COLOR_TEMP]` and `set[ColorMode] | set[str] | None | Unknown` +homeassistant/components/osramlightify/light.py:365:12: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal[ColorMode.HS]` and `set[ColorMode] | set[str] | None | Unknown` homeassistant/components/osramlightify/light.py:368:16: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `set[ColorMode] | set[str] | None | Unknown` homeassistant/components/otbr/__init__.py:40:57: error[invalid-argument-type] Argument to function `async_register_firmware_info_provider` is incorrect: Expected `HardwareFirmwareInfoModule`, found `` homeassistant/components/overkiz/climate/atlantic_electrical_towel_dryer.py:70:13: error[unsupported-operator] Operator `+=` is unsupported between objects of type `None` and `list[str | Unknown]` -homeassistant/components/overkiz/climate/atlantic_electrical_towel_dryer.py:73:20: error[unsupported-operator] Operator `not in` is not supported for types `str` and `None`, in comparing `str | Unknown` with `Unknown | list[Unknown | str] | list[str] | None` -homeassistant/components/overkiz/climate/atlantic_electrical_towel_dryer.py:137:12: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["drying"]` with `Unknown | list[Unknown | str] | list[str] | None` -homeassistant/components/overkiz/climate/atlantic_electrical_towel_dryer.py:175:14: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["drying"]` with `Unknown | list[Unknown | str] | list[str] | None` +homeassistant/components/overkiz/climate/atlantic_electrical_towel_dryer.py:73:20: error[unsupported-operator] Operator `not in` is not supported between objects of type `str | Unknown` and `Unknown | list[Unknown | str] | list[str] | None` +homeassistant/components/overkiz/climate/atlantic_electrical_towel_dryer.py:137:12: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["drying"]` and `Unknown | list[Unknown | str] | list[str] | None` +homeassistant/components/overkiz/climate/atlantic_electrical_towel_dryer.py:175:14: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["drying"]` and `Unknown | list[Unknown | str] | list[str] | None` homeassistant/components/ovo_energy/config_flow.py:66:25: error[invalid-argument-type] Argument to bound method `async_create_entry` is incorrect: Expected `str`, found `str | None` homeassistant/components/ovo_energy/config_flow.py:111:21: error[invalid-argument-type] Argument to bound method `authenticate` is incorrect: Expected `str`, found `Unknown | None` homeassistant/components/ovo_energy/entity.py:40:25: error[invalid-argument-type] Invalid argument to key "identifiers" with declared type `set[tuple[str, str]]` on TypedDict `DeviceInfo`: value of type `set[Unknown | tuple[str, Unknown | int | None]]` @@ -2938,17 +2946,17 @@ homeassistant/components/plex/media_player.py:204:26: warning[possibly-missing-a homeassistant/components/plex/media_player.py:208:13: warning[possibly-missing-attribute] Attribute `proxyThroughServer` may be missing on object of type `Unknown | None` homeassistant/components/plex/media_player.py:209:46: warning[possibly-missing-attribute] Attribute `protocolCapabilities` may be missing on object of type `Unknown | None` homeassistant/components/plex/media_player.py:226:46: error[no-matching-overload] No overload of bound method `join` matches arguments -homeassistant/components/plex/media_player.py:392:28: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["playback"]` with `Unknown | None` -homeassistant/components/plex/media_player.py:412:28: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["playback"]` with `Unknown | None` -homeassistant/components/plex/media_player.py:422:17: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["playback"]` with `Unknown | None` -homeassistant/components/plex/media_player.py:441:33: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["playback"]` with `Unknown | None` -homeassistant/components/plex/media_player.py:453:28: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["playback"]` with `Unknown | None` -homeassistant/components/plex/media_player.py:458:28: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["playback"]` with `Unknown | None` -homeassistant/components/plex/media_player.py:463:28: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["playback"]` with `Unknown | None` -homeassistant/components/plex/media_player.py:468:28: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["playback"]` with `Unknown | None` -homeassistant/components/plex/media_player.py:473:28: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["playback"]` with `Unknown | None` -homeassistant/components/plex/media_player.py:478:28: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["playback"]` with `Unknown | None` -homeassistant/components/plex/media_player.py:485:33: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["playback"]` with `Unknown | None` +homeassistant/components/plex/media_player.py:392:28: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["playback"]` and `Unknown | None` +homeassistant/components/plex/media_player.py:412:28: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["playback"]` and `Unknown | None` +homeassistant/components/plex/media_player.py:422:17: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["playback"]` and `Unknown | None` +homeassistant/components/plex/media_player.py:441:33: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["playback"]` and `Unknown | None` +homeassistant/components/plex/media_player.py:453:28: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["playback"]` and `Unknown | None` +homeassistant/components/plex/media_player.py:458:28: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["playback"]` and `Unknown | None` +homeassistant/components/plex/media_player.py:463:28: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["playback"]` and `Unknown | None` +homeassistant/components/plex/media_player.py:468:28: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["playback"]` and `Unknown | None` +homeassistant/components/plex/media_player.py:473:28: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["playback"]` and `Unknown | None` +homeassistant/components/plex/media_player.py:478:28: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["playback"]` and `Unknown | None` +homeassistant/components/plex/media_player.py:485:33: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["playback"]` and `Unknown | None` homeassistant/components/plex/models.py:48:31: warning[possibly-missing-attribute] Attribute `product` may be missing on object of type `Unknown | None` homeassistant/components/plex/models.py:51:22: warning[possibly-missing-attribute] Attribute `state` may be missing on object of type `Unknown | None` homeassistant/components/plex/server.py:218:31: warning[possibly-missing-attribute] Attribute `systemAccounts` may be missing on object of type `Unknown | None | PlexServer` @@ -2976,11 +2984,11 @@ homeassistant/components/powerwall/__init__.py:236:43: error[invalid-assignment] homeassistant/components/progettihwsw/binary_sensor.py:69:16: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[str, Any].__getitem__(key: str, /) -> Any` cannot be called with key of type `Unknown | int` on object of type `dict[str, Any]` homeassistant/components/progettihwsw/switch.py:85:16: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[str, Any].__getitem__(key: str, /) -> Any` cannot be called with key of type `Unknown | int` on object of type `dict[str, Any]` homeassistant/components/proliphix/climate.py:7:8: error[unresolved-import] Cannot resolve imported module `proliphix` -homeassistant/components/prometheus/__init__.py:152:21: error[invalid-argument-type] Argument to bound method `listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventStateChangedData]` -homeassistant/components/prometheus/__init__.py:152:42: error[invalid-argument-type] Argument to bound method `listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `bound method PrometheusMetrics.handle_state_changed_event(event: Event[EventStateChangedData]) -> None` -homeassistant/components/prometheus/__init__.py:154:9: error[invalid-argument-type] Argument to bound method `listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` -homeassistant/components/prometheus/__init__.py:155:9: error[invalid-argument-type] Argument to bound method `listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `bound method PrometheusMetrics.handle_entity_registry_updated(event: Event[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]) -> None` -homeassistant/components/prometheus/__init__.py:291:34: error[invalid-key] Unknown key "changes" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "changes" +homeassistant/components/prometheus/__init__.py:164:21: error[invalid-argument-type] Argument to bound method `listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventStateChangedData]` +homeassistant/components/prometheus/__init__.py:164:42: error[invalid-argument-type] Argument to bound method `listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `bound method PrometheusMetrics.handle_state_changed_event(event: Event[EventStateChangedData]) -> None` +homeassistant/components/prometheus/__init__.py:166:9: error[invalid-argument-type] Argument to bound method `listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` +homeassistant/components/prometheus/__init__.py:167:9: error[invalid-argument-type] Argument to bound method `listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `bound method PrometheusMetrics.handle_entity_registry_updated(event: Event[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]) -> None` +homeassistant/components/prometheus/__init__.py:303:34: error[invalid-key] Unknown key "changes" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "changes" homeassistant/components/proximity/coordinator.py:125:63: error[invalid-key] Unknown key "changes" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "changes" homeassistant/components/proximity/coordinator.py:126:42: error[invalid-key] Unknown key "old_entity_id" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "old_entity_id" homeassistant/components/proxmoxve/__init__.py:8:6: error[unresolved-import] Cannot resolve imported module `proxmoxer` @@ -2994,8 +3002,10 @@ homeassistant/components/pulseaudio_loopback/switch.py:8:6: error[unresolved-imp homeassistant/components/pushbullet/notify.py:116:51: error[invalid-argument-type] Argument to bound method `_push_data` is incorrect: Expected `Pushbullet`, found `Device | Channel` homeassistant/components/pushsafer/notify.py:88:57: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `Unknown | None` homeassistant/components/pushsafer/notify.py:136:23: error[not-iterable] Object of type `list[Unknown | str] | Unknown | None` may not be iterable -homeassistant/components/qbus/climate.py:108:12: error[unsupported-operator] Operator `not in` is not supported for types `str` and `None`, in comparing `str` with `list[str] | None` +homeassistant/components/qbus/climate.py:108:12: error[unsupported-operator] Operator `not in` is not supported between objects of type `str` and `list[str] | None` homeassistant/components/qbus/climate.py:114:32: error[no-matching-overload] No overload of bound method `join` matches arguments +homeassistant/components/qld_bushfire/geo_location.py:215:31: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/components/qld_bushfire/geo_location.py:216:32: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/qrcode/image_processing.py:8:6: error[unresolved-import] Cannot resolve imported module `pyzbar` homeassistant/components/qvr_pro/__init__.py:5:6: error[unresolved-import] Cannot resolve imported module `pyqvrpro` homeassistant/components/qvr_pro/__init__.py:6:6: error[unresolved-import] Cannot resolve imported module `pyqvrpro.client` @@ -3008,7 +3018,7 @@ homeassistant/components/rachio/webhooks.py:99:20: warning[possibly-missing-attr homeassistant/components/rainbird/calendar.py:97:39: error[invalid-argument-type] Argument to bound method `timeline_tz` is incorrect: Expected `tzinfo`, found `tzinfo | None` homeassistant/components/rainbird/number.py:67:62: error[invalid-argument-type] Argument to bound method `set_rain_delay` is incorrect: Expected `int`, found `int | float` homeassistant/components/raincloud/__init__.py:6:6: error[unresolved-import] Cannot resolve imported module `raincloudy.core` -homeassistant/components/rainmachine/__init__.py:349:50: error[unresolved-attribute] Object of type `(ServiceCall, Controller, /) -> Coroutine[Any, Any, None]` has no attribute `__name__` +homeassistant/components/rainmachine/__init__.py:352:50: error[unresolved-attribute] Object of type `(ServiceCall, Controller, /) -> Coroutine[Any, Any, None]` has no attribute `__name__` homeassistant/components/rainmachine/switch.py:125:42: error[unresolved-attribute] Object of type `(...) -> Awaitable[None]` has no attribute `__name__` homeassistant/components/raspyrfm/switch.py:7:6: error[unresolved-import] Cannot resolve imported module `raspyrfm_client` homeassistant/components/raspyrfm/switch.py:8:6: error[unresolved-import] Cannot resolve imported module `raspyrfm_client.device_implementations.controlunit.actions` @@ -3112,8 +3122,8 @@ homeassistant/components/rfxtrx/switch.py:149:36: error[unresolved-attribute] Ob homeassistant/components/ring/camera.py:186:17: error[invalid-argument-type] Argument to function `async_aiohttp_proxy_stream` is incorrect: Expected `StreamReader`, found `StreamReader` homeassistant/components/ring/entity.py:79:54: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, _R@exception_wrap]` has no attribute `__name__` homeassistant/components/ring/entity.py:190:16: error[invalid-return-type] Return type does not match returned value: expected `RingDevices`, found `Unknown | RingDevices | dict[str, Any]` -homeassistant/components/ring/switch.py:103:38: error[invalid-argument-type] Argument is incorrect: Expected `typing.Self`, found `RingSwitchEntityDescription[Any]` -homeassistant/components/ring/switch.py:124:57: error[invalid-argument-type] Argument is incorrect: Expected `typing.Self`, found `RingSwitchEntityDescription[RingDeviceT@RingSwitch]` +homeassistant/components/ring/switch.py:103:38: error[invalid-argument-type] Argument is incorrect: Expected ``, found `RingSwitchEntityDescription[Any]` +homeassistant/components/ring/switch.py:124:57: error[invalid-argument-type] Argument is incorrect: Expected ``, found `RingSwitchEntityDescription[RingDeviceT@RingSwitch]` homeassistant/components/ripple/sensor.py:7:6: error[unresolved-import] Cannot resolve imported module `pyripple` homeassistant/components/risco/config_flow.py:272:51: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method homeassistant/components/risco/config_flow.py:294:32: warning[possibly-missing-attribute] Attribute `values` may be missing on object of type `Unknown | int | dict[Unknown | str, Unknown | AlarmControlPanelState] | dict[Unknown | AlarmControlPanelState, Unknown | str]` @@ -3121,9 +3131,8 @@ homeassistant/components/risco/config_flow.py:300:20: error[non-subscriptable] C homeassistant/components/risco/config_flow.py:302:23: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `Unknown | int | dict[Unknown | str, Unknown | AlarmControlPanelState] | dict[Unknown | AlarmControlPanelState, Unknown | str]` homeassistant/components/risco/switch.py:57:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Zone`, found `Zone` homeassistant/components/risco/switch.py:91:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Zone`, found `Zone` -homeassistant/components/roborock/entity.py:135:42: error[invalid-argument-type] Argument to function `__init__` is incorrect: Expected `DataUpdateCoordinator[dict[str, Any]]`, found `RoborockDataUpdateCoordinator` -homeassistant/components/roborock/entity.py:206:42: error[invalid-argument-type] Argument to function `__init__` is incorrect: Expected `DataUpdateCoordinator[dict[str, Any]]`, found `RoborockDataUpdateCoordinatorA01` -homeassistant/components/roborock/vacuum.py:200:16: error[invalid-return-type] Return type does not match returned value: expected `ServiceResponse`, found `dict[Unknown | str, Unknown | list[dict[Unknown | str, Unknown | int | str | dict[int, str]] | Unknown]]` +homeassistant/components/roborock/entity.py:89:42: error[invalid-argument-type] Argument to function `__init__` is incorrect: Expected `DataUpdateCoordinator[dict[str, Any]]`, found `RoborockDataUpdateCoordinator` +homeassistant/components/roborock/vacuum.py:201:16: error[invalid-return-type] Return type does not match returned value: expected `ServiceResponse`, found `dict[Unknown | str, Unknown | list[dict[Unknown | str, Unknown | int | str | dict[Unknown | int, Unknown | str]] | Unknown]]` homeassistant/components/rocketchat/notify.py:8:6: error[unresolved-import] Cannot resolve imported module `rocketchat_API.APIExceptions.RocketExceptions` homeassistant/components/rocketchat/notify.py:12:6: error[unresolved-import] Cannot resolve imported module `rocketchat_API.rocketchat` homeassistant/components/roku/browse_media.py:252:9: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `bool`, found `Literal[False, ""] | Unknown` @@ -3242,20 +3251,16 @@ homeassistant/components/seventeentrack/services.py:141:34: error[unresolved-att homeassistant/components/sharkiq/coordinator.py:74:19: error[unsupported-operator] Operator `-` is unsupported between objects of type `Unknown | datetime | None` and `timedelta` homeassistant/components/sharkiq/vacuum.py:233:36: error[invalid-argument-type] Argument to bound method `async_set_property_value` is incorrect: Expected `str | int | Enum`, found `Unknown | PowerModes | None` homeassistant/components/shell_command/__init__.py:80:47: error[invalid-argument-type] Argument to function `split` is incorrect: Expected `str | _ShlexInstream`, found `Any | None` -homeassistant/components/shelly/entity.py:642:42: warning[possibly-missing-attribute] Attribute `split` may be missing on object of type `str | None` -homeassistant/components/shelly/event.py:290:15: error[unresolved-attribute] Object of type `, ShellyRpcScriptEvent>` has no attribute `async_added_to_hass` -homeassistant/components/shelly/light.py:226:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int]`, found `tuple[@Todo, int]` -homeassistant/components/shelly/light.py:400:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int]`, found `tuple[@Todo, Unknown]` -homeassistant/components/shelly/utils.py:288:13: error[invalid-argument-type] Argument to bound method `extend` is incorrect: Expected `Iterable[IPv4Address]`, found `GeneratorType[IPv4Address | IPv6Address, None, None]` +homeassistant/components/shelly/entity.py:645:42: warning[possibly-missing-attribute] Attribute `split` may be missing on object of type `str | None` +homeassistant/components/shelly/light.py:229:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int]`, found `tuple[@Todo(StarredExpression), int]` +homeassistant/components/shelly/light.py:404:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int]`, found `tuple[@Todo(StarredExpression), Unknown]` +homeassistant/components/shelly/utils.py:256:13: error[invalid-argument-type] Argument to bound method `extend` is incorrect: Expected `Iterable[IPv4Address]`, found `GeneratorType[IPv4Address | IPv6Address, None, None]` homeassistant/components/shodan/sensor.py:8:8: error[unresolved-import] Cannot resolve imported module `shodan` homeassistant/components/sia/hub.py:103:17: error[invalid-argument-type] Argument is incorrect: Expected `tuple[int, int]`, found `None | tuple[Literal[80], Literal[40]]` homeassistant/components/sigfox/sensor.py:71:22: warning[possibly-missing-attribute] Submodule `auth` may not be available as an attribute on module `requests` homeassistant/components/sighthound/image_processing.py:141:44: error[invalid-argument-type] Argument to function `bbox_to_tf_style` is incorrect: Expected `int`, found `int | None` homeassistant/components/sighthound/image_processing.py:141:63: error[invalid-argument-type] Argument to function `bbox_to_tf_style` is incorrect: Expected `int`, found `int | None` homeassistant/components/simplefin/entity.py:43:16: error[invalid-return-type] Return type does not match returned value: expected `Account`, found `Unknown | Account | None` -homeassistant/components/simplisafe/__init__.py:246:9: error[invalid-argument-type] Argument to bound method `async_get_or_create` is incorrect: Expected `str | None | UndefinedType`, found `typing.TypeVar | None` -homeassistant/components/simplisafe/__init__.py:247:9: error[invalid-argument-type] Argument to bound method `async_get_or_create` is incorrect: Expected `str | None | UndefinedType`, found `typing.TypeVar | None` -homeassistant/components/simplisafe/alarm_control_panel.py:216:58: error[unresolved-attribute] Object of type `typing.TypeVar` has no attribute `name` homeassistant/components/sinch/notify.py:7:6: error[unresolved-import] Cannot resolve imported module `clx.xms.api` homeassistant/components/sinch/notify.py:8:6: error[unresolved-import] Cannot resolve imported module `clx.xms.client` homeassistant/components/sinch/notify.py:9:6: error[unresolved-import] Cannot resolve imported module `clx.xms.exceptions` @@ -3421,7 +3426,7 @@ homeassistant/components/steam_online/coordinator.py:73:38: warning[possibly-mis homeassistant/components/steamist/config_flow.py:96:9: error[invalid-method-override] Invalid override of method `is_matching`: Definition is incompatible with `ConfigFlow.is_matching` homeassistant/components/stiebel_eltron/climate.py:169:36: error[invalid-argument-type] Argument to bound method `set_operation` is incorrect: Expected `str`, found `Unknown | str | None` homeassistant/components/stiebel_eltron/climate.py:182:36: error[invalid-argument-type] Argument to bound method `set_operation` is incorrect: Expected `str`, found `Unknown | str | None` -homeassistant/components/stream/worker.py:389:13: error[invalid-assignment] Object of type `int | Unknown | Fraction | float` is not assignable to attribute `_part_start_dts` of type `int | float` +homeassistant/components/stream/worker.py:391:13: error[invalid-assignment] Object of type `int | Unknown | Fraction | float` is not assignable to attribute `_part_start_dts` of type `int | float` homeassistant/components/streamlabswater/__init__.py:49:45: error[invalid-argument-type] Argument to bound method `update_location` is incorrect: Expected `str`, found `Unknown | None` homeassistant/components/subaru/__init__.py:60:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `str`, found `None` homeassistant/components/subaru/config_flow.py:128:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `str`, found `None` @@ -3430,8 +3435,8 @@ homeassistant/components/swiss_hydrological_data/sensor.py:8:6: error[unresolved homeassistant/components/swiss_hydrological_data/sensor.py:106:19: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/swiss_public_transport/coordinator.py:114:23: error[invalid-argument-type] Invalid argument to key "start" with declared type `str` on TypedDict `DataConnection`: value of type `Unknown | None` homeassistant/components/swiss_public_transport/coordinator.py:115:29: error[invalid-argument-type] Invalid argument to key "destination" with declared type `str` on TypedDict `DataConnection`: value of type `Unknown | None` -homeassistant/components/switchbot/__init__.py:217:9: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `SwitchbotDevice`, found `Unknown | SwitchbotCeilingLight | SwitchbotCurtain | ... omitted 14 union elements` -homeassistant/components/switchbot/__init__.py:217:9: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `SwitchbotDevice`, found `Unknown | SwitchbotCeilingLight | SwitchbotCurtain | ... omitted 14 union elements` +homeassistant/components/switchbot/__init__.py:218:9: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `SwitchbotDevice`, found `Unknown | SwitchbotCeilingLight | SwitchbotCurtain | ... omitted 14 union elements` +homeassistant/components/switchbot/__init__.py:218:9: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `SwitchbotDevice`, found `Unknown | SwitchbotCeilingLight | SwitchbotCurtain | ... omitted 14 union elements` homeassistant/components/switchbot/climate.py:75:16: error[unresolved-attribute] Object of type `SwitchbotDevice` has no attribute `min_temperature` homeassistant/components/switchbot/climate.py:80:16: error[unresolved-attribute] Object of type `SwitchbotDevice` has no attribute `max_temperature` homeassistant/components/switchbot/climate.py:85:16: error[unresolved-attribute] Object of type `SwitchbotDevice` has no attribute `preset_modes` @@ -3444,7 +3449,7 @@ homeassistant/components/switchbot/climate.py:122:16: error[unresolved-attribute homeassistant/components/switchbot/climate.py:127:22: error[unresolved-attribute] Object of type `SwitchbotDevice` has no attribute `set_hvac_mode` homeassistant/components/switchbot/climate.py:134:22: error[unresolved-attribute] Object of type `SwitchbotDevice` has no attribute `set_preset_mode` homeassistant/components/switchbot/climate.py:140:22: error[unresolved-attribute] Object of type `SwitchbotDevice` has no attribute `set_target_temperature` -homeassistant/components/switchbot/const.py:144:5: error[invalid-assignment] Object of type `dict[SwitchbotModel, SwitchbotEncryptedDevice | | | ... omitted 6 union elements]` is not assignable to `dict[SwitchbotModel, SwitchbotEncryptedDevice]` +homeassistant/components/switchbot/const.py:146:5: error[invalid-assignment] Object of type `dict[SwitchbotModel, SwitchbotEncryptedDevice | | | ... omitted 6 union elements]` is not assignable to `dict[SwitchbotModel, SwitchbotEncryptedDevice]` homeassistant/components/switchbot/cover.py:117:71: error[invalid-argument-type] Argument to bound method `set_position` is incorrect: Expected `int`, found `Any | None` homeassistant/components/switchbot/cover.py:200:71: error[invalid-argument-type] Argument to bound method `set_position` is incorrect: Expected `int`, found `Any | None` homeassistant/components/switchbot/cover.py:286:71: error[invalid-argument-type] Argument to bound method `set_position` is incorrect: Expected `int`, found `Any | None` @@ -3456,11 +3461,12 @@ homeassistant/components/switchbot/light.py:106:16: error[invalid-return-type] R homeassistant/components/switchbot/switch.py:110:35: error[too-many-positional-arguments] Too many positional arguments to bound method `is_on`: expected 1, got 2 homeassistant/components/switchbot/switch.py:118:36: error[too-many-positional-arguments] Too many positional arguments to bound method `turn_on`: expected 1, got 2 homeassistant/components/switchbot/switch.py:127:37: error[too-many-positional-arguments] Too many positional arguments to bound method `turn_off`: expected 1, got 2 -homeassistant/components/switchbot_cloud/climate.py:124:20: error[no-matching-overload] No overload of bound method `get` matches arguments -homeassistant/components/switchbot_cloud/climate.py:137:25: error[no-matching-overload] No overload of bound method `get` matches arguments +homeassistant/components/switchbot_cloud/__init__.py:135:37: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `tuple[Device, SwitchBotCoordinator]`, found `tuple[Remote | Device, SwitchBotCoordinator]` +homeassistant/components/switchbot_cloud/climate.py:144:20: error[no-matching-overload] No overload of bound method `get` matches arguments +homeassistant/components/switchbot_cloud/climate.py:157:25: error[no-matching-overload] No overload of bound method `get` matches arguments homeassistant/components/switchbot_cloud/entity.py:51:13: error[invalid-argument-type] Argument to bound method `send_command` is incorrect: Expected `str`, found `str | None | Unknown` homeassistant/components/switchbot_cloud/entity.py:54:13: error[invalid-argument-type] Argument to bound method `send_command` is incorrect: Expected `dict[Unknown, Unknown] | str`, found `dict[Unknown, Unknown] | str | int` -homeassistant/components/switchbot_cloud/sensor.py:343:38: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Device`, found `Device | Remote` +homeassistant/components/switchbot_cloud/sensor.py:344:38: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Device`, found `Device | Remote` homeassistant/components/switcher_kis/sensor.py:138:16: error[unresolved-attribute] Object of type `SensorEntityDescription` has no attribute `value_fn` homeassistant/components/switchmate/switch.py:8:6: error[unresolved-import] Cannot resolve imported module `switchmate` homeassistant/components/syncthing/__init__.py:48:12: warning[possibly-missing-attribute] Submodule `exceptions` may not be available as an attribute on module `aiosyncthing` @@ -3478,7 +3484,7 @@ homeassistant/components/system_bridge/data.py:28:22: error[invalid-assignment] homeassistant/components/system_bridge/data.py:30:22: error[invalid-assignment] Object of type `None` is not assignable to `System` homeassistant/components/systemmonitor/coordinator.py:174:13: error[invalid-argument-type] Argument is incorrect: Expected `tuple[int | float, int | float, int | float]`, found `tuple[None, None, None] | tuple[int | float, int | float, int | float]` homeassistant/components/tado/climate.py:340:31: error[unresolved-attribute] Module `PyTado` has no member `TadoZone` -homeassistant/components/tado/climate.py:813:20: error[unsupported-operator] Operator `in` is not supported for types `None` and `str`, in comparing `str | None` with `@Todo | str | list[Unknown]` +homeassistant/components/tado/climate.py:813:20: error[unsupported-operator] Operator `in` is not supported between objects of type `str | None` and `@Todo | str | list[Unknown]` homeassistant/components/tado/coordinator.py:315:33: error[invalid-argument-type] Argument to bound method `_update_zone` is incorrect: Expected `int`, found `Unknown | None` homeassistant/components/tami4/sensor.py:89:42: error[invalid-argument-type] Argument to function `__init__` is incorrect: Expected `DataUpdateCoordinator[dict[str, Any]]`, found `Tami4EdgeCoordinator` homeassistant/components/tank_utility/sensor.py:9:6: error[unresolved-import] Cannot resolve imported module `tank_utility` @@ -3506,18 +3512,24 @@ homeassistant/components/tellstick/entity.py:6:6: error[unresolved-import] Canno homeassistant/components/tellstick/entity.py:7:6: error[unresolved-import] Cannot resolve imported module `tellcore.library` homeassistant/components/tellstick/sensor.py:8:6: error[unresolved-import] Cannot resolve imported module `tellcore` homeassistant/components/tellstick/sensor.py:9:8: error[unresolved-import] Cannot resolve imported module `tellcore.constants` -homeassistant/components/template/binary_sensor.py:207:47: error[invalid-argument-type] Argument to bound method `add_template_attribute` is incorrect: Expected `Template`, found `Template | None` -homeassistant/components/template/binary_sensor.py:257:17: warning[possibly-missing-attribute] Attribute `total_seconds` may be missing on object of type `Unknown | None` -homeassistant/components/template/cover.py:314:13: error[invalid-assignment] Object of type `float` is not assignable to attribute `_position` of type `int | None` -homeassistant/components/template/cover.py:336:13: error[invalid-assignment] Object of type `float` is not assignable to attribute `_tilt_value` of type `int | None` -homeassistant/components/template/cover.py:463:13: error[unsupported-operator] Operator `|=` is unsupported between objects of type `None` and `int` -homeassistant/components/template/cover.py:522:13: error[unsupported-operator] Operator `|=` is unsupported between objects of type `None` and `int` -homeassistant/components/template/light.py:360:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int] | None`, found `Unknown | None | tuple[None | Unknown, None | Unknown, None | Unknown]` -homeassistant/components/template/light.py:365:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int] | None`, found `Unknown | None | tuple[None | Unknown, None | Unknown, None | Unknown, None | Unknown]` -homeassistant/components/template/light.py:370:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int, int, int] | None`, found `Unknown | None | tuple[None | Unknown, None | Unknown, None | Unknown, None | Unknown, None | Unknown]` -homeassistant/components/template/light.py:666:12: error[unsupported-operator] Operator `not in` is not supported for types `Unknown` and `None`, in comparing `Unknown` with `Unknown | None` -homeassistant/components/template/lock.py:311:45: warning[possibly-missing-attribute] Attribute `template` may be missing on object of type `Unknown | None` -homeassistant/components/template/sensor.py:242:35: error[invalid-argument-type] Argument to bound method `add_template_attribute` is incorrect: Expected `Template`, found `Template | None` +homeassistant/components/template/binary_sensor.py:224:47: error[invalid-argument-type] Argument to bound method `add_template_attribute` is incorrect: Expected `Template`, found `Template | None` +homeassistant/components/template/binary_sensor.py:274:17: warning[possibly-missing-attribute] Attribute `total_seconds` may be missing on object of type `Unknown | None` +homeassistant/components/template/cover.py:282:13: error[invalid-assignment] Object of type `float` is not assignable to attribute `_attr_current_cover_position` of type `int | None` +homeassistant/components/template/cover.py:304:13: error[invalid-assignment] Object of type `float` is not assignable to attribute `_attr_current_cover_tilt_position` of type `int | None` +homeassistant/components/template/cover.py:431:13: error[unsupported-operator] Operator `|=` is unsupported between objects of type `None` and `int` +homeassistant/components/template/cover.py:490:13: error[unsupported-operator] Operator `|=` is unsupported between objects of type `None` and `int` +homeassistant/components/template/light.py:616:12: error[unsupported-operator] Operator `not in` is not supported between objects of type `Unknown` and `list[str] | None | Unknown` +homeassistant/components/template/light.py:738:13: error[invalid-assignment] Object of type `tuple[None | Unknown, None | Unknown, None | Unknown]` is not assignable to attribute `_attr_rgb_color` of type `tuple[int, int, int] | None` +homeassistant/components/template/light.py:783:13: error[invalid-assignment] Object of type `tuple[None | Unknown, None | Unknown, None | Unknown, None | Unknown]` is not assignable to attribute `_attr_rgbw_color` of type `tuple[int, int, int, int] | None` +homeassistant/components/template/light.py:829:13: error[invalid-assignment] Object of type `tuple[None | Unknown, None | Unknown, None | Unknown, None | Unknown, None | Unknown]` is not assignable to attribute `_attr_rgbww_color` of type `tuple[int, int, int, int, int] | None` +homeassistant/components/template/light.py:859:17: error[invalid-assignment] Cannot assign to final attribute `_attr_max_mireds` on type `Self@_update_max_mireds` +homeassistant/components/template/light.py:863:13: error[invalid-assignment] Cannot assign to final attribute `_attr_max_mireds` on type `Self@_update_max_mireds` +homeassistant/components/template/light.py:872:13: error[invalid-assignment] Cannot assign to final attribute `_attr_max_mireds` on type `Self@_update_max_mireds` +homeassistant/components/template/light.py:880:17: error[invalid-assignment] Cannot assign to final attribute `_attr_min_mireds` on type `Self@_update_min_mireds` +homeassistant/components/template/light.py:884:13: error[invalid-assignment] Cannot assign to final attribute `_attr_min_mireds` on type `Self@_update_min_mireds` +homeassistant/components/template/light.py:893:13: error[invalid-assignment] Cannot assign to final attribute `_attr_min_mireds` on type `Self@_update_min_mireds` +homeassistant/components/template/lock.py:284:45: warning[possibly-missing-attribute] Attribute `template` may be missing on object of type `Unknown | None` +homeassistant/components/template/sensor.py:255:35: error[invalid-argument-type] Argument to bound method `add_template_attribute` is incorrect: Expected `Template`, found `Template | None` homeassistant/components/template/template_entity.py:141:28: error[invalid-argument-type] Argument to bound method `_default_update` is incorrect: Expected `str | TemplateError`, found `None` homeassistant/components/template/template_entity.py:272:20: error[invalid-return-type] Return type does not match returned value: expected `dict[str, Any]`, found `(ScriptVariables & Top[dict[Unknown, Unknown]]) | dict[Unknown, Unknown]` homeassistant/components/template/weather.py:449:41: error[invalid-argument-type] Argument to bound method `async_update_listeners` is incorrect: Expected `Iterable[Literal["daily", "hourly", "twice_daily"]] | None`, found `list[Unknown | str]` @@ -3535,15 +3547,15 @@ homeassistant/components/tesla_fleet/climate.py:312:17: warning[possibly-missing homeassistant/components/tesla_fleet/climate.py:316:17: warning[possibly-missing-attribute] Attribute `set_cabin_overheat_protection` may be missing on object of type `Unknown | VehicleFleet | EnergySite` homeassistant/components/tesla_fleet/climate.py:320:17: warning[possibly-missing-attribute] Attribute `set_cabin_overheat_protection` may be missing on object of type `Unknown | VehicleFleet | EnergySite` homeassistant/components/tesla_fleet/coordinator.py:184:17: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[Unknown, Unknown] | str | None` -homeassistant/components/tesla_fleet/coordinator.py:186:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["after"]` with `dict[Unknown, Unknown] | str | None` +homeassistant/components/tesla_fleet/coordinator.py:186:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["after"]` and `dict[Unknown, Unknown] | str | None` homeassistant/components/tesla_fleet/coordinator.py:187:62: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["after"]` on object of type `str` homeassistant/components/tesla_fleet/coordinator.py:187:62: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/tesla_fleet/coordinator.py:246:17: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[Unknown, Unknown] | str | None` -homeassistant/components/tesla_fleet/coordinator.py:248:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["after"]` with `dict[Unknown, Unknown] | str | None` +homeassistant/components/tesla_fleet/coordinator.py:248:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["after"]` and `dict[Unknown, Unknown] | str | None` homeassistant/components/tesla_fleet/coordinator.py:249:62: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["after"]` on object of type `str` homeassistant/components/tesla_fleet/coordinator.py:249:62: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/tesla_fleet/coordinator.py:309:17: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[Unknown, Unknown] | str | None` -homeassistant/components/tesla_fleet/coordinator.py:311:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal["after"]` with `dict[Unknown, Unknown] | str | None` +homeassistant/components/tesla_fleet/coordinator.py:311:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["after"]` and `dict[Unknown, Unknown] | str | None` homeassistant/components/tesla_fleet/coordinator.py:312:62: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["after"]` on object of type `str` homeassistant/components/tesla_fleet/coordinator.py:312:62: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/tesla_fleet/cover.py:84:13: warning[possibly-missing-attribute] Attribute `window_control` may be missing on object of type `Unknown | VehicleFleet | EnergySite` @@ -3599,6 +3611,7 @@ homeassistant/components/tessie/climate.py:135:43: warning[possibly-missing-attr homeassistant/components/tessie/climate.py:144:32: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/tfiac/climate.py:10:6: error[unresolved-import] Cannot resolve imported module `pytfiac` homeassistant/components/thermopro/button.py:91:21: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `str`, found `str | None` +homeassistant/components/thermoworks_smoke/sensor.py:12:6: error[unresolved-import] Cannot resolve imported module `stringcase` homeassistant/components/thermoworks_smoke/sensor.py:13:8: error[unresolved-import] Cannot resolve imported module `thermoworks_smoke` homeassistant/components/thingspeak/__init__.py:6:8: error[unresolved-import] Cannot resolve imported module `thingspeak` homeassistant/components/thinkingcleaner/sensor.py:7:6: error[unresolved-import] Cannot resolve imported module `pythinkingcleaner` @@ -3624,14 +3637,14 @@ homeassistant/components/tod/binary_sensor.py:189:51: error[invalid-argument-typ homeassistant/components/tod/binary_sensor.py:194:32: error[invalid-argument-type] Argument to function `get_astral_event_next` is incorrect: Expected `str`, found `Unknown | time` homeassistant/components/tod/binary_sensor.py:245:28: error[invalid-argument-type] Argument to function `get_astral_event_next` is incorrect: Expected `str`, found `Unknown | time` homeassistant/components/tod/binary_sensor.py:256:28: error[invalid-argument-type] Argument to function `get_astral_event_next` is incorrect: Expected `str`, found `Unknown | time` -homeassistant/components/todoist/calendar.py:570:21: error[unsupported-operator] Operator `>` is not supported for types `None` and `datetime`, in comparing `datetime | None` with `datetime` +homeassistant/components/todoist/calendar.py:570:21: error[unsupported-operator] Operator `>` is not supported between objects of type `datetime | None` and `datetime` homeassistant/components/todoist/calendar.py:576:35: warning[possibly-missing-attribute] Attribute `date` may be missing on object of type `datetime | None` -homeassistant/components/todoist/calendar.py:579:20: error[unsupported-operator] Operator `<=` is not supported for types `None` and `datetime`, in comparing `datetime | None` with `datetime` +homeassistant/components/todoist/calendar.py:579:20: error[unsupported-operator] Operator `<=` is not supported between objects of type `datetime | None` and `datetime` homeassistant/components/todoist/calendar.py:647:16: warning[possibly-missing-attribute] Attribute `date` may be missing on object of type `datetime | None` homeassistant/components/todoist/calendar.py:647:45: warning[possibly-missing-attribute] Attribute `date` may be missing on object of type `datetime | None` homeassistant/components/todoist/calendar.py:651:16: warning[possibly-missing-attribute] Attribute `date` may be missing on object of type `datetime | None` homeassistant/components/todoist/calendar.py:651:45: warning[possibly-missing-attribute] Attribute `date` may be missing on object of type `datetime | None` -homeassistant/components/todoist/calendar.py:662:44: error[unsupported-operator] Operator `<` is not supported for types `datetime` and `None`, in comparing `datetime | None` with `datetime | None` +homeassistant/components/todoist/calendar.py:662:44: error[unsupported-operator] Operator `<` is not supported between two objects of type `datetime | None` homeassistant/components/tomato/device_tracker.py:69:18: warning[possibly-missing-attribute] Submodule `auth` may not be available as an attribute on module `requests` homeassistant/components/tomorrowio/sensor.py:349:18: error[unsupported-operator] Operator `*` is unsupported between objects of type `float` and `(((int | float, /) -> int | float) & ~(() -> object)) | (int & ~(() -> object)) | (float & ~(() -> object))` homeassistant/components/tomorrowio/weather.py:211:13: error[invalid-argument-type] Argument to function `_translate_condition` is incorrect: Expected `int | None`, found `int | str | float | None` @@ -3714,33 +3727,37 @@ homeassistant/components/tts/media_source.py:146:49: error[invalid-key] Unknown homeassistant/components/tuya/alarm_control_panel.py:120:42: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` homeassistant/components/tuya/binary_sensor.py:427:51: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` homeassistant/components/tuya/button.py:82:44: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` -homeassistant/components/tuya/climate.py:108:25: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[DeviceCategory, TuyaClimateEntityDescription].__getitem__(key: DeviceCategory, /) -> TuyaClimateEntityDescription` cannot be called with key of type `str` on object of type `dict[DeviceCategory, TuyaClimateEntityDescription]` -homeassistant/components/tuya/cover.py:209:43: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` -homeassistant/components/tuya/diagnostics.py:50:8: warning[possibly-missing-attribute] Attribute `client` may be missing on object of type `Unknown | None | SharingMQ` -homeassistant/components/tuya/diagnostics.py:51:26: warning[possibly-missing-attribute] Attribute `client` may be missing on object of type `Unknown | None | SharingMQ` -homeassistant/components/tuya/diagnostics.py:106:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `str` -homeassistant/components/tuya/diagnostics.py:106:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `bool` -homeassistant/components/tuya/diagnostics.py:106:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` -homeassistant/components/tuya/diagnostics.py:109:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `str` -homeassistant/components/tuya/diagnostics.py:109:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `bool` -homeassistant/components/tuya/diagnostics.py:109:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` -homeassistant/components/tuya/diagnostics.py:113:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `str` -homeassistant/components/tuya/diagnostics.py:113:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `bool` -homeassistant/components/tuya/diagnostics.py:113:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` -homeassistant/components/tuya/diagnostics.py:120:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `str` -homeassistant/components/tuya/diagnostics.py:120:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `bool` -homeassistant/components/tuya/diagnostics.py:120:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` -homeassistant/components/tuya/diagnostics.py:160:13: warning[possibly-missing-attribute] Attribute `append` may be missing on object of type `Unknown | str | None | bool | list[Unknown]` -homeassistant/components/tuya/event.py:98:43: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` +homeassistant/components/tuya/climate.py:289:25: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[DeviceCategory, TuyaClimateEntityDescription].__getitem__(key: DeviceCategory, /) -> TuyaClimateEntityDescription` cannot be called with key of type `str` on object of type `dict[DeviceCategory, TuyaClimateEntityDescription]` +homeassistant/components/tuya/cover.py:307:43: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` +homeassistant/components/tuya/diagnostics.py:51:8: warning[possibly-missing-attribute] Attribute `client` may be missing on object of type `Unknown | None | SharingMQ` +homeassistant/components/tuya/diagnostics.py:52:26: warning[possibly-missing-attribute] Attribute `client` may be missing on object of type `Unknown | None | SharingMQ` +homeassistant/components/tuya/diagnostics.py:108:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `str` +homeassistant/components/tuya/diagnostics.py:108:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `bool` +homeassistant/components/tuya/diagnostics.py:108:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` +homeassistant/components/tuya/diagnostics.py:108:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `set[str]` +homeassistant/components/tuya/diagnostics.py:111:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `str` +homeassistant/components/tuya/diagnostics.py:111:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `bool` +homeassistant/components/tuya/diagnostics.py:111:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` +homeassistant/components/tuya/diagnostics.py:111:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `set[str]` +homeassistant/components/tuya/diagnostics.py:115:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `str` +homeassistant/components/tuya/diagnostics.py:115:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `bool` +homeassistant/components/tuya/diagnostics.py:115:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` +homeassistant/components/tuya/diagnostics.py:115:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `set[str]` +homeassistant/components/tuya/diagnostics.py:122:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `str` +homeassistant/components/tuya/diagnostics.py:122:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `bool` +homeassistant/components/tuya/diagnostics.py:122:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` +homeassistant/components/tuya/diagnostics.py:122:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `set[str]` +homeassistant/components/tuya/diagnostics.py:162:13: warning[possibly-missing-attribute] Attribute `append` may be missing on object of type `Unknown | str | None | bool | list[Unknown]` +homeassistant/components/tuya/event.py:196:43: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` homeassistant/components/tuya/humidifier.py:95:48: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` -homeassistant/components/tuya/light.py:522:43: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` -homeassistant/components/tuya/models.py:431:33: error[invalid-argument-type] Argument to bound method `from_json` is incorrect: Expected `str`, found `dict[str, Any] | str` +homeassistant/components/tuya/light.py:619:43: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` homeassistant/components/tuya/number.py:463:44: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` homeassistant/components/tuya/scene.py:61:41: error[invalid-argument-type] Argument to bound method `trigger_scene` is incorrect: Expected `str`, found `Unknown | int` homeassistant/components/tuya/select.py:366:44: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` -homeassistant/components/tuya/sensor.py:1750:44: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` +homeassistant/components/tuya/sensor.py:1765:44: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` homeassistant/components/tuya/siren.py:66:43: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` homeassistant/components/tuya/switch.py:947:45: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` +homeassistant/components/tuya/type_information.py:333:40: error[invalid-argument-type] Argument to bound method `from_json` is incorrect: Expected `str`, found `dict[str, Any] | str` homeassistant/components/tuya/valve.py:95:43: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `DeviceCategory`, found `str` homeassistant/components/twilio_call/notify.py:63:28: warning[possibly-missing-attribute] Submodule `parse` may not be available as an attribute on module `urllib` homeassistant/components/twinkly/coordinator.py:97:13: error[invalid-argument-type] Argument is incorrect: Expected `bool`, found `Unknown | bool | None` @@ -3752,7 +3769,7 @@ homeassistant/components/ukraine_alarm/config_flow.py:120:45: error[invalid-argu homeassistant/components/ukraine_alarm/coordinator.py:56:22: error[non-subscriptable] Cannot subscript object of type `ClientResponse` with no `__getitem__` method homeassistant/components/unifi_direct/device_tracker.py:8:6: error[unresolved-import] Cannot resolve imported module `unifi_ap` homeassistant/components/unifiled/light.py:8:6: error[unresolved-import] Cannot resolve imported module `unifiled` -homeassistant/components/unifiprotect/button.py:89:9: error[invalid-argument-type] Argument is incorrect: Expected `ButtonDeviceClass | None`, found `Literal["unifiprotect__chime_button"]` +homeassistant/components/unifiprotect/button.py:90:9: error[invalid-argument-type] Argument is incorrect: Expected `ButtonDeviceClass | None`, found `Literal["unifiprotect__chime_button"]` homeassistant/components/unifiprotect/entity.py:202:17: error[invalid-assignment] Object of type `((Never, /) -> bool) | None` is not assignable to attribute `_async_get_ufp_enabled` of type `((ProtectAdoptableDeviceModel, /) -> bool) | None` homeassistant/components/unifiprotect/migrate.py:46:36: error[invalid-assignment] Object of type `dict[str | Unknown, dict[Unknown | str, Unknown | dict[Unknown, Unknown]] | Unknown]` is not assignable to `dict[str, EntityUsage]` homeassistant/components/upb/__init__.py:55:9: warning[possibly-missing-attribute] Attribute `add_callback` may be missing on object of type `Unknown | Element[Unknown] | None` @@ -3782,13 +3799,14 @@ homeassistant/components/vera/climate.py:114:16: error[invalid-return-type] Retu homeassistant/components/vera/climate.py:124:46: error[invalid-argument-type] Argument to bound method `set_temperature` is incorrect: Expected `int | float`, found `Any | None` homeassistant/components/vera/cover.py:28:23: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `VeraCurtain`, found `VeraDevice` homeassistant/components/vera/cover.py:60:36: error[invalid-argument-type] Argument to bound method `set_level` is incorrect: Expected `int`, found `Any | None` +homeassistant/components/vera/entity.py:49:52: error[invalid-argument-type] Argument to bound method `register` is incorrect: Expected `(VeraDevice, /) -> None`, found `bound method Self@async_added_to_hass._update_callback(_device: _DeviceTypeT@VeraEntity) -> None` +homeassistant/components/vera/entity.py:53:54: error[invalid-argument-type] Argument to bound method `unregister` is incorrect: Expected `(VeraDevice, /) -> None`, found `bound method Self@async_will_remove_from_hass._update_callback(_device: _DeviceTypeT@VeraEntity) -> None` homeassistant/components/vera/light.py:35:23: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `VeraDimmer`, found `VeraDevice` homeassistant/components/vera/light.py:74:40: error[invalid-argument-type] Argument to bound method `set_color` is incorrect: Expected `list[int]`, found `tuple[int, int, int]` homeassistant/components/vera/lock.py:31:22: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `VeraLock`, found `VeraDevice` homeassistant/components/vera/sensor.py:41:24: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `VeraSensor`, found `VeraDevice` homeassistant/components/vera/switch.py:28:24: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `VeraSwitch`, found `VeraDevice` homeassistant/components/versasense/__init__.py:5:8: error[unresolved-import] Cannot resolve imported module `pyversasense` -homeassistant/components/vesync/binary_sensor.py:69:9: error[missing-argument] No argument provided for required parameter `coordinator` of function `_setup_entities` homeassistant/components/vesync/common.py:25:23: error[invalid-argument-type] Argument to bound method `get` is incorrect: Expected `Never`, found `str` homeassistant/components/vesync/diagnostics.py:89:9: warning[redundant-cast] Value is already of type `dict[str, Any]` homeassistant/components/vesync/fan.py:125:17: warning[possibly-missing-attribute] Attribute `fan_levels` may be missing on object of type `Unknown | VeSyncBaseDevice[Unknown]` @@ -3837,7 +3855,7 @@ homeassistant/components/vesync/number.py:127:38: warning[possibly-missing-attri homeassistant/components/vesync/select.py:171:38: warning[possibly-missing-attribute] Attribute `message` may be missing on object of type `Unknown | ResponseInfo | None` homeassistant/components/vesync/switch.py:136:38: warning[possibly-missing-attribute] Attribute `message` may be missing on object of type `Unknown | ResponseInfo | None` homeassistant/components/vesync/switch.py:143:38: warning[possibly-missing-attribute] Attribute `message` may be missing on object of type `Unknown | ResponseInfo | None` -homeassistant/components/vicare/__init__.py:80:12: error[invalid-return-type] Return type does not match returned value: expected `PyViCare`, found `ViCareData` +homeassistant/components/vicare/__init__.py:81:12: error[invalid-return-type] Return type does not match returned value: expected `PyViCare`, found `ViCareData` homeassistant/components/vicare/binary_sensor.py:236:73: error[invalid-argument-type] Argument is incorrect: Expected `Device`, found `Device | HeatingDeviceWithComponent` homeassistant/components/vicare/button.py:107:54: error[invalid-argument-type] Argument is incorrect: Expected `Device`, found `Device | HeatingDeviceWithComponent` homeassistant/components/vicare/climate.py:91:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `HeatingCircuit`, found `HeatingDeviceWithComponent` @@ -3899,7 +3917,6 @@ homeassistant/components/vilfo/config_flow.py:58:9: error[invalid-assignment] Ca homeassistant/components/vilfo/config_flow.py:59:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` homeassistant/components/vilfo/config_flow.py:61:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` homeassistant/components/vilfo/config_flow.py:62:9: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` -homeassistant/components/vivotek/camera.py:5:6: error[unresolved-import] Cannot resolve imported module `libpyvivotek` homeassistant/components/vizio/config_flow.py:244:25: error[invalid-argument-type] Argument to function `validate_ha_config` is incorrect: Expected `str`, found `Any | None` homeassistant/components/vizio/config_flow.py:343:17: error[invalid-argument-type] Argument to bound method `pair` is incorrect: Expected `int | str`, found `str | None` homeassistant/components/vizio/config_flow.py:343:32: error[invalid-argument-type] Argument to bound method `pair` is incorrect: Expected `int | str`, found `str | None` @@ -3944,8 +3961,8 @@ homeassistant/components/watson_tts/tts.py:5:6: error[unresolved-import] Cannot homeassistant/components/watson_tts/tts.py:6:6: error[unresolved-import] Cannot resolve imported module `ibm_watson` homeassistant/components/watttime/__init__.py:64:9: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `(() -> Awaitable[dict[str, Any]]) | None`, found `def async_update_data() -> CoroutineType[Any, Any, RealTimeEmissionsResponseType]` homeassistant/components/waze_travel_time/coordinator.py:71:13: error[invalid-argument-type] Argument to bound method `calc_routes` is incorrect: Expected `None | Literal["MOTORCYCLE", "TAXI"]`, found `str` -homeassistant/components/waze_travel_time/coordinator.py:91:17: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `str` with `Collection[str] | None` -homeassistant/components/waze_travel_time/coordinator.py:91:48: error[unsupported-operator] Operator `in` is not supported for types `str` and `None`, in comparing `Literal[""]` with `Collection[str] | None` +homeassistant/components/waze_travel_time/coordinator.py:91:17: error[unsupported-operator] Operator `in` is not supported between objects of type `str` and `Collection[str] | None` +homeassistant/components/waze_travel_time/coordinator.py:91:48: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal[""]` and `Collection[str] | None` homeassistant/components/waze_travel_time/helpers.py:23:34: error[invalid-argument-type] Argument to bound method `calc_routes` is incorrect: Expected `str`, found `str | None` homeassistant/components/waze_travel_time/helpers.py:23:51: error[invalid-argument-type] Argument to bound method `calc_routes` is incorrect: Expected `str`, found `str | None` homeassistant/components/weather/__init__.py:703:46: error[no-matching-overload] No overload of bound method `__init__` matches arguments @@ -3963,7 +3980,7 @@ homeassistant/components/webostv/config_flow.py:137:9: error[invalid-method-over homeassistant/components/webostv/media_player.py:128:51: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, _R@cmd]` has no attribute `__name__` homeassistant/components/webostv/media_player.py:134:29: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, _R@cmd]` has no attribute `__name__` homeassistant/components/webostv/media_player.py:145:29: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, _R@cmd]` has no attribute `__name__` -homeassistant/components/websocket_api/commands.py:446:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventStateChangedData]` +homeassistant/components/websocket_api/commands.py:454:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventStateChangedData]` homeassistant/components/websocket_api/connection.py:282:27: warning[possibly-missing-attribute] Submodule `humanize` may not be available as an attribute on module `voluptuous` homeassistant/components/websocket_api/decorators.py:37:40: error[unresolved-attribute] Object of type `AsyncWebSocketCommandHandler` has no attribute `__name__` homeassistant/components/websocket_api/decorators.py:142:19: error[non-subscriptable] Cannot subscript object of type `All` with no `__getitem__` method @@ -4038,7 +4055,7 @@ homeassistant/components/wiz/entity.py:34:25: error[invalid-argument-type] Inval homeassistant/components/wiz/fan.py:37:8: warning[possibly-missing-attribute] Attribute `features` may be missing on object of type `BulbType | None` homeassistant/components/wiz/fan.py:53:31: error[invalid-assignment] Object of type `Unknown | BulbType | None` is not assignable to `BulbType` homeassistant/components/wiz/fan.py:68:9: error[invalid-assignment] Object of type `int | None` is not assignable to attribute `_attr_speed_count` of type `int` -homeassistant/components/wiz/fan.py:77:28: error[unsupported-operator] Operator `>` is not supported for types `None` and `int`, in comparing `Unknown | int | None` with `Literal[0]` +homeassistant/components/wiz/fan.py:77:28: error[unsupported-operator] Operator `>` is not supported between objects of type `Unknown | int | None` and `Literal[0]` homeassistant/components/wiz/fan.py:77:28: warning[possibly-missing-attribute] Attribute `get_fan_state` may be missing on object of type `Unknown | PilotParser | None` homeassistant/components/wiz/fan.py:79:36: error[invalid-argument-type] Argument to function `ranged_value_to_percentage` is incorrect: Expected `int | float`, found `Unknown | int | None` homeassistant/components/wiz/fan.py:79:36: warning[possibly-missing-attribute] Attribute `get_fan_speed` may be missing on object of type `Unknown | PilotParser | None` @@ -4048,11 +4065,12 @@ homeassistant/components/wiz/light.py:63:8: warning[possibly-missing-attribute] homeassistant/components/wiz/light.py:76:31: error[invalid-assignment] Object of type `Unknown | BulbType | None` is not assignable to `BulbType` homeassistant/components/wiz/light.py:92:48: warning[possibly-missing-attribute] Attribute `max` may be missing on object of type `KelvinRange | None` homeassistant/components/wiz/light.py:93:48: warning[possibly-missing-attribute] Attribute `min` may be missing on object of type `KelvinRange | None` -homeassistant/components/wiz/light.py:104:27: warning[possibly-missing-attribute] Attribute `get_brightness` may be missing on object of type `Unknown | PilotParser | None` -homeassistant/components/wiz/light.py:107:27: warning[possibly-missing-attribute] Attribute `get_colortemp` may be missing on object of type `Unknown | PilotParser | None` -homeassistant/components/wiz/light.py:112:58: warning[possibly-missing-attribute] Attribute `get_rgbww` may be missing on object of type `Unknown | PilotParser | None` -homeassistant/components/wiz/light.py:116:57: warning[possibly-missing-attribute] Attribute `get_rgbw` may be missing on object of type `Unknown | PilotParser | None` -homeassistant/components/wiz/light.py:119:29: warning[possibly-missing-attribute] Attribute `get_scene` may be missing on object of type `Unknown | PilotParser | None` +homeassistant/components/wiz/light.py:103:27: warning[possibly-missing-attribute] Attribute `get_brightness` may be missing on object of type `Unknown | PilotParser | None` +homeassistant/components/wiz/light.py:110:27: warning[possibly-missing-attribute] Attribute `get_colortemp` may be missing on object of type `Unknown | PilotParser | None` +homeassistant/components/wiz/light.py:115:58: warning[possibly-missing-attribute] Attribute `get_rgbww` may be missing on object of type `Unknown | PilotParser | None` +homeassistant/components/wiz/light.py:119:57: warning[possibly-missing-attribute] Attribute `get_rgbw` may be missing on object of type `Unknown | PilotParser | None` +homeassistant/components/wiz/light.py:123:38: warning[possibly-missing-attribute] Attribute `get_scene` may be missing on object of type `Unknown | PilotParser | None` +homeassistant/components/wiz/light.py:123:38: warning[possibly-missing-attribute] Attribute `get_scene` may be missing on object of type `Unknown | PilotParser | None` homeassistant/components/wiz/number.py:78:13: warning[possibly-missing-attribute] Attribute `features` may be missing on object of type `BulbType | None` homeassistant/components/wiz/sensor.py:82:35: warning[possibly-missing-attribute] Attribute `pilotResult` may be missing on object of type `Unknown | PilotParser | None` homeassistant/components/wiz/sensor.py:94:22: warning[possibly-missing-attribute] Attribute `get_power` may be missing on object of type `Unknown | PilotParser | None` @@ -4068,12 +4086,12 @@ homeassistant/components/worldtidesinfo/sensor.py:94:42: error[non-subscriptable homeassistant/components/worldtidesinfo/sensor.py:95:40: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/worldtidesinfo/sensor.py:96:41: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method homeassistant/components/worldtidesinfo/sensor.py:97:39: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/components/xbox/browse_media.py:31:12: error[missing-argument] No argument provided for required parameter `cls` -homeassistant/components/xbox/browse_media.py:33:9: error[invalid-argument-type] Argument is incorrect: Expected `type`, found `Literal[MediaClass.APP]` -homeassistant/components/xbox/browse_media.py:33:9: error[parameter-already-assigned] Multiple values provided for parameter `cls` -homeassistant/components/xbox/browse_media.py:35:13: error[missing-argument] No argument provided for required parameter `cls` -homeassistant/components/xbox/browse_media.py:37:9: error[invalid-argument-type] Argument is incorrect: Expected `type`, found `Literal[MediaClass.GAME]` -homeassistant/components/xbox/browse_media.py:37:9: error[parameter-already-assigned] Multiple values provided for parameter `cls` +homeassistant/components/xbox/browse_media.py:33:12: error[missing-argument] No argument provided for required parameter `cls` +homeassistant/components/xbox/browse_media.py:35:9: error[invalid-argument-type] Argument is incorrect: Expected `type`, found `Literal[MediaClass.APP]` +homeassistant/components/xbox/browse_media.py:35:9: error[parameter-already-assigned] Multiple values provided for parameter `cls` +homeassistant/components/xbox/browse_media.py:37:13: error[missing-argument] No argument provided for required parameter `cls` +homeassistant/components/xbox/browse_media.py:39:9: error[invalid-argument-type] Argument is incorrect: Expected `type`, found `Literal[MediaClass.GAME]` +homeassistant/components/xbox/browse_media.py:39:9: error[parameter-already-assigned] Multiple values provided for parameter `cls` homeassistant/components/xeoma/camera.py:7:6: error[unresolved-import] Cannot resolve imported module `pyxeoma.xeoma` homeassistant/components/xiaomi/camera.py:181:34: error[invalid-argument-type] Argument to bound method `open_camera` is incorrect: Expected `str`, found `Unknown | None` homeassistant/components/xiaomi/camera.py:188:17: error[invalid-argument-type] Argument to function `async_aiohttp_proxy_stream` is incorrect: Expected `StreamReader`, found `StreamReader` @@ -4236,8 +4254,8 @@ homeassistant/components/zha/climate.py:211:15: error[unresolved-attribute] Obje homeassistant/components/zha/climate.py:217:15: error[unresolved-attribute] Object of type `PlatformEntity | GroupEntity` has no attribute `async_set_hvac_mode` homeassistant/components/zha/climate.py:223:15: error[unresolved-attribute] Object of type `PlatformEntity | GroupEntity` has no attribute `async_set_preset_mode` homeassistant/components/zha/climate.py:229:15: error[unresolved-attribute] Object of type `PlatformEntity | GroupEntity` has no attribute `async_set_temperature` -homeassistant/components/zha/config_flow.py:363:17: error[invalid-argument-type] Argument to bound method `probe` is incorrect: Expected `dict[str, Any]`, found `Unknown | dict[str, Any] | None` -homeassistant/components/zha/config_flow.py:897:21: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Mapping[str, str] | None`, found `dict[Unknown | str, Unknown | str | None]` +homeassistant/components/zha/config_flow.py:362:17: error[invalid-argument-type] Argument to bound method `probe` is incorrect: Expected `dict[str, Any]`, found `Unknown | dict[str, Any] | None` +homeassistant/components/zha/config_flow.py:903:21: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Mapping[str, str] | None`, found `dict[Unknown | str, Unknown | str | None]` homeassistant/components/zha/cover.py:71:47: error[unresolved-attribute] Object of type `PlatformEntity | GroupEntity` has no attribute `supported_features` homeassistant/components/zha/cover.py:95:16: error[unresolved-attribute] Object of type `PlatformEntity | GroupEntity` has no attribute `is_closed` homeassistant/components/zha/cover.py:100:16: error[unresolved-attribute] Object of type `PlatformEntity | GroupEntity` has no attribute `is_opening` @@ -4259,6 +4277,7 @@ homeassistant/components/zha/device_action.py:99:49: error[unresolved-attribute] homeassistant/components/zha/device_action.py:108:49: error[unresolved-attribute] Class `SingleLEDEffectType` has no attribute `__members__` homeassistant/components/zha/device_tracker.py:54:16: error[unresolved-attribute] Object of type `PlatformEntity | GroupEntity` has no attribute `is_connected` homeassistant/components/zha/device_tracker.py:62:16: error[unresolved-attribute] Object of type `PlatformEntity | GroupEntity` has no attribute `battery_level` +homeassistant/components/zha/device_tracker.py:65:9: error[override-of-final-method] Cannot override final member `device_info` from superclass `ScannerEntity` homeassistant/components/zha/diagnostics.py:89:9: error[invalid-argument-type] Argument to bound method `energy_scan` is incorrect: Expected `Channels`, found `Unknown | Literal[134215680]` homeassistant/components/zha/fan.py:55:45: error[unresolved-attribute] Object of type `PlatformEntity | GroupEntity` has no attribute `supported_features` homeassistant/components/zha/fan.py:75:16: error[unresolved-attribute] Object of type `PlatformEntity | GroupEntity` has no attribute `preset_mode` @@ -4377,24 +4396,24 @@ homeassistant/components/zwave_js/update.py:294:34: error[invalid-argument-type] homeassistant/components/zwave_me/climate.py:78:16: error[invalid-return-type] Return type does not match returned value: expected `int | float`, found `Unknown | str | int | float` homeassistant/components/zwave_me/climate.py:83:16: error[invalid-return-type] Return type does not match returned value: expected `int | float`, found `Unknown | str` homeassistant/components/zwave_me/climate.py:88:16: error[invalid-return-type] Return type does not match returned value: expected `int | float`, found `Unknown | str` -homeassistant/components/zwave_me/cover.py:86:12: error[unsupported-operator] Operator `>` is not supported for types `str` and `int`, in comparing `Unknown | str | int | float` with `Literal[95]` +homeassistant/components/zwave_me/cover.py:86:12: error[unsupported-operator] Operator `>` is not supported between objects of type `Unknown | str | int | float` and `Literal[95]` homeassistant/components/zwave_me/cover.py:89:16: error[invalid-return-type] Return type does not match returned value: expected `int | None`, found `Unknown | str | int | float` -homeassistant/components/zwave_me/cover.py:103:16: error[unsupported-operator] Operator `<` is not supported for types `str` and `int`, in comparing `(Unknown & ~None) | str | int | float` with `Literal[5]` +homeassistant/components/zwave_me/cover.py:103:16: error[unsupported-operator] Operator `<` is not supported between objects of type `(Unknown & ~None) | str | int | float` and `Literal[5]` homeassistant/components/zwave_me/fan.py:58:16: error[invalid-return-type] Return type does not match returned value: expected `int`, found `(Unknown & ~Literal[99]) | str | (int & ~Literal[99]) | float` homeassistant/components/zwave_me/number.py:48:16: error[invalid-return-type] Return type does not match returned value: expected `int | float`, found `(Unknown & ~Literal[99]) | str | (int & ~Literal[99]) | float` homeassistant/config.py:959:9: error[unknown-argument] Argument `translation_domain` does not match any known parameter of function `__new__` homeassistant/config.py:960:9: error[unknown-argument] Argument `translation_placeholders` does not match any known parameter of function `__new__` homeassistant/config_entries.py:199:42: error[invalid-type-arguments] Too many type arguments to class `SignalType`: expected 0, got 2 homeassistant/config_entries.py:207:17: error[invalid-type-arguments] Too many type arguments to class `SignalType`: expected 0, got 1 -homeassistant/config_entries.py:1251:17: error[invalid-argument-type] Argument to bound method `async_init` is incorrect: Expected `ConfigFlowContext | None`, found `ConfigFlowContext | dict[str, object]` -homeassistant/config_entries.py:1811:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `UserDict.__setitem__` -homeassistant/config_entries.py:1882:9: error[invalid-method-override] Invalid override of method `__delitem__`: Definition is incompatible with `UserDict.__delitem__` -homeassistant/config_entries.py:3834:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` -homeassistant/config_entries.py:3835:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `bound method Self@async_setup._handle_entry_updated(event: Event[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]) -> None` -homeassistant/config_entries.py:3836:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _handle_entry_updated_filter(event_data: _EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update) -> bool` -homeassistant/config_entries.py:3911:33: error[invalid-argument-type] Method `__getitem__` of type `(Overload[(key: Literal["action"], /) -> Literal["create", "remove"], (key: Literal["entity_id"], /) -> str]) | (Overload[(key: Literal["action"], /) -> Literal["update"], (key: Literal["entity_id"], /) -> str, (key: Literal["changes"], /) -> dict[str, Any], (key: Literal["old_entity_id"], /) -> str])` cannot be called with key of type `Literal["changes"]` on object of type `EventEntityRegistryUpdatedData` -homeassistant/config_entries.py:3912:12: error[invalid-argument-type] Method `__getitem__` of type `(Overload[(key: Literal["action"], /) -> Literal["create", "remove"], (key: Literal["entity_id"], /) -> str]) | (Overload[(key: Literal["action"], /) -> Literal["update"], (key: Literal["entity_id"], /) -> str, (key: Literal["changes"], /) -> dict[str, Any], (key: Literal["old_entity_id"], /) -> str])` cannot be called with key of type `Literal["changes"]` on object of type `EventEntityRegistryUpdatedData` -homeassistant/const.py:977:43: error[invalid-type-arguments] Too many type arguments to class `SignalType`: expected 0, got 1 +homeassistant/config_entries.py:1273:17: error[invalid-argument-type] Argument to bound method `async_init` is incorrect: Expected `ConfigFlowContext | None`, found `ConfigFlowContext | dict[str, object]` +homeassistant/config_entries.py:1833:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `UserDict.__setitem__` +homeassistant/config_entries.py:1904:9: error[invalid-method-override] Invalid override of method `__delitem__`: Definition is incompatible with `UserDict.__delitem__` +homeassistant/config_entries.py:3853:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` +homeassistant/config_entries.py:3854:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `bound method Self@async_setup._handle_entry_updated(event: Event[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]) -> None` +homeassistant/config_entries.py:3855:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _handle_entry_updated_filter(event_data: _EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update) -> bool` +homeassistant/config_entries.py:3930:33: error[invalid-argument-type] Method `__getitem__` of type `(Overload[(key: Literal["action"], /) -> Literal["create", "remove"], (key: Literal["entity_id"], /) -> str]) | (Overload[(key: Literal["action"], /) -> Literal["update"], (key: Literal["entity_id"], /) -> str, (key: Literal["changes"], /) -> dict[str, Any], (key: Literal["old_entity_id"], /) -> str])` cannot be called with key of type `Literal["changes"]` on object of type `EventEntityRegistryUpdatedData` +homeassistant/config_entries.py:3931:12: error[invalid-argument-type] Method `__getitem__` of type `(Overload[(key: Literal["action"], /) -> Literal["create", "remove"], (key: Literal["entity_id"], /) -> str]) | (Overload[(key: Literal["action"], /) -> Literal["update"], (key: Literal["entity_id"], /) -> str, (key: Literal["changes"], /) -> dict[str, Any], (key: Literal["old_entity_id"], /) -> str])` cannot be called with key of type `Literal["changes"]` on object of type `EventEntityRegistryUpdatedData` +homeassistant/const.py:979:43: error[invalid-type-arguments] Too many type arguments to class `SignalType`: expected 0, got 1 homeassistant/core.py:359:23: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 homeassistant/core.py:648:31: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 homeassistant/core.py:658:31: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 @@ -4414,14 +4433,14 @@ homeassistant/core.py:1032:37: error[invalid-type-arguments] Too many type argum homeassistant/core.py:1037:37: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 homeassistant/core.py:1277:32: error[invalid-type-form] Variable of type `under_cached_property[Unknown]` is not allowed in a type expression homeassistant/core.py:1378:32: error[invalid-type-form] Variable of type `under_cached_property[Unknown]` is not allowed in a type expression -homeassistant/core.py:1398:13: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `list[Event[Unknown]]`? -homeassistant/core.py:1398:20: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `Mapping[str, Any]` of type variable `_DataT@Event` +homeassistant/core.py:1398:13: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `list[Event[_DataT@_FilterableJobType]]`? homeassistant/core.py:1398:30: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 homeassistant/core.py:1406:27: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `list[Event[_DataT@_OneTimeListener]]`? homeassistant/core.py:1406:44: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 homeassistant/core.py:1504:13: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_DataT@async_fire] | str` homeassistant/core.py:1527:48: error[invalid-argument-type] Argument to function `_event_repr` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_DataT@async_fire_internal] | str` homeassistant/core.py:1621:50: error[invalid-argument-type] Argument to bound method `_async_listen_filterable_job` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_DataT@async_listen] | str` +homeassistant/core.py:1621:62: error[invalid-argument-type] Argument to bound method `_async_listen_filterable_job` is incorrect: Expected `tuple[HassJob[Unknown], ((Mapping[str, Any], /) -> bool) | None]`, found `tuple[HassJob[Unknown], ((_DataT@async_listen, /) -> bool) | None]` homeassistant/core.py:1687:13: error[invalid-argument-type] Argument to bound method `_async_listen_filterable_job` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_DataT@async_listen_once] | str` homeassistant/core.py:1925:32: error[invalid-type-form] Variable of type `under_cached_property[Unknown]` is not allowed in a type expression homeassistant/core.py:2048:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `UserDict.__setitem__` @@ -4434,35 +4453,36 @@ homeassistant/data_entry_flow.py:1032:39: error[invalid-type-arguments] Too many homeassistant/data_entry_flow.py:1037:23: error[unresolved-attribute] Object of type `(...) -> Coroutine[Any, Any, Unknown]` has no attribute `__name__` homeassistant/data_entry_flow.py:1063:21: error[invalid-argument-type] Argument to bound method `async_show_progress` is incorrect: Expected `Mapping[str, str] | None`, found `None | @Todo | (dict[str, str] & ~(() -> object)) | (((Any, /) -> dict[str, str]) & ~(() -> object))` homeassistant/helpers/area_registry.py:90:32: error[invalid-type-form] Variable of type `cached_property[Unknown]` is not allowed in a type expression -homeassistant/helpers/area_registry.py:454:16: error[invalid-return-type] Return type does not match returned value: expected `AreasRegistryStoreData`, found `dict[Unknown | str, Unknown | list[dict[Unknown | str, Unknown | list[str] | str | None] | Unknown]]` -homeassistant/helpers/area_registry.py:455:22: error[invalid-argument-type] Invalid argument to key "areas" with declared type `list[_AreaStoreData]` on TypedDict `AreasRegistryStoreData`: value of type `list[dict[Unknown | str, Unknown | list[str] | str | None] | Unknown]` -homeassistant/helpers/area_registry.py:497:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventFloorRegistryUpdatedData]` -homeassistant/helpers/area_registry.py:498:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _removed_from_registry_filter(event_data: EventFloorRegistryUpdatedData | EventLabelRegistryUpdatedData) -> bool` -homeassistant/helpers/area_registry.py:499:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _handle_floor_registry_update(event: Event[EventFloorRegistryUpdatedData]) -> None` -homeassistant/helpers/area_registry.py:510:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventLabelRegistryUpdatedData]` -homeassistant/helpers/area_registry.py:511:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _removed_from_registry_filter(event_data: EventFloorRegistryUpdatedData | EventLabelRegistryUpdatedData) -> bool` -homeassistant/helpers/area_registry.py:512:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _handle_label_registry_update(event: Event[EventLabelRegistryUpdatedData]) -> None` +homeassistant/helpers/area_registry.py:481:16: error[invalid-return-type] Return type does not match returned value: expected `AreasRegistryStoreData`, found `dict[Unknown | str, Unknown | list[dict[Unknown | str, Unknown | list[str] | str | None] | Unknown]]` +homeassistant/helpers/area_registry.py:482:22: error[invalid-argument-type] Invalid argument to key "areas" with declared type `list[_AreaStoreData]` on TypedDict `AreasRegistryStoreData`: value of type `list[dict[Unknown | str, Unknown | list[str] | str | None] | Unknown]` +homeassistant/helpers/area_registry.py:521:35: error[invalid-key] Unknown key "floor_id" for TypedDict `_EventFloorRegistryUpdatedData_Reorder`: Unknown key "floor_id" +homeassistant/helpers/area_registry.py:526:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventFloorRegistryUpdatedData_Create_Remove_Update | _EventFloorRegistryUpdatedData_Reorder]` +homeassistant/helpers/area_registry.py:527:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _removed_from_registry_filter(event_data: _EventFloorRegistryUpdatedData_Create_Remove_Update | _EventFloorRegistryUpdatedData_Reorder | EventLabelRegistryUpdatedData) -> bool` +homeassistant/helpers/area_registry.py:528:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _handle_floor_registry_update(event: Event[_EventFloorRegistryUpdatedData_Create_Remove_Update | _EventFloorRegistryUpdatedData_Reorder]) -> None` +homeassistant/helpers/area_registry.py:539:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventLabelRegistryUpdatedData]` +homeassistant/helpers/area_registry.py:540:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _removed_from_registry_filter(event_data: _EventFloorRegistryUpdatedData_Create_Remove_Update | _EventFloorRegistryUpdatedData_Reorder | EventLabelRegistryUpdatedData) -> bool` +homeassistant/helpers/area_registry.py:541:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _handle_label_registry_update(event: Event[EventLabelRegistryUpdatedData]) -> None` homeassistant/helpers/category_registry.py:230:16: error[invalid-return-type] Return type does not match returned value: expected `CategoryRegistryStoreData`, found `dict[Unknown | str, Unknown | dict[str | Unknown, list[dict[Unknown | str, Unknown | str | None] | Unknown] | Unknown]]` homeassistant/helpers/category_registry.py:231:27: error[invalid-argument-type] Invalid argument to key "categories" with declared type `dict[str, list[_CategoryStoreData]]` on TypedDict `CategoryRegistryStoreData`: value of type `dict[str | Unknown, list[dict[Unknown | str, Unknown | str | None] | Unknown] | Unknown]` -homeassistant/helpers/condition.py:359:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[str, ConditionProtocol | None]`, found `tuple[str, ModuleType]` -homeassistant/helpers/condition.py:426:49: error[call-non-callable] Object of type `None` is not callable -homeassistant/helpers/condition.py:427:39: error[call-non-callable] Object of type `None` is not callable +homeassistant/helpers/condition.py:413:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[str, ConditionProtocol | None]`, found `tuple[str, ModuleType]` +homeassistant/helpers/condition.py:480:49: error[call-non-callable] Object of type `None` is not callable +homeassistant/helpers/condition.py:481:39: error[call-non-callable] Object of type `None` is not callable homeassistant/helpers/config_validation.py:21:5: error[unresolved-import] Module `socket` has no member `_GLOBAL_DEFAULT_TIMEOUT` homeassistant/helpers/debounce.py:43:28: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `tuple[()]`? homeassistant/helpers/debounce.py:43:32: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 homeassistant/helpers/deprecation.py:44:25: error[unresolved-attribute] Object of type `(_ObjectT@deprecated_substitute, /) -> Any` has no attribute `__name__` homeassistant/helpers/deprecation.py:158:24: error[unresolved-attribute] Object of type `(...) -> _T@deprecated_hass_argument` has no attribute `__name__` homeassistant/helpers/deprecation.py:160:34: error[unresolved-attribute] Object of type `(...) -> _T@deprecated_hass_argument` has no attribute `__name__` -homeassistant/helpers/device_registry.py:1307:20: error[invalid-assignment] Object of type `dict[Unknown | str, Unknown | str]` is not assignable to `EventDeviceRegistryUpdatedData` -homeassistant/helpers/device_registry.py:1309:20: error[invalid-assignment] Object of type `dict[Unknown | str, Unknown | str | dict[str, Any]]` is not assignable to `EventDeviceRegistryUpdatedData` -homeassistant/helpers/device_registry.py:1456:13: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventDeviceRegistryUpdatedData_Remove] | str`, found `EventType[_EventDeviceRegistryUpdatedData_Create | _EventDeviceRegistryUpdatedData_Remove | _EventDeviceRegistryUpdatedData_Update]` -homeassistant/helpers/device_registry.py:1832:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventLabelRegistryUpdatedData]` -homeassistant/helpers/device_registry.py:1833:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _label_removed_from_registry_filter(event_data: EventLabelRegistryUpdatedData) -> bool` -homeassistant/helpers/device_registry.py:1834:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _handle_label_registry_update(event: Event[EventLabelRegistryUpdatedData]) -> None` -homeassistant/helpers/device_registry.py:1861:36: error[invalid-argument-type] Method `__getitem__` of type `(Overload[(key: Literal["action"], /) -> Literal["create", "remove"], (key: Literal["entity_id"], /) -> str]) | (Overload[(key: Literal["action"], /) -> Literal["update"], (key: Literal["entity_id"], /) -> str, (key: Literal["changes"], /) -> dict[str, Any], (key: Literal["old_entity_id"], /) -> str])` cannot be called with key of type `Literal["changes"]` on object of type `EventEntityRegistryUpdatedData` -homeassistant/helpers/device_registry.py:1870:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` -homeassistant/helpers/device_registry.py:1871:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _async_entity_registry_changed(event: Event[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]) -> None` -homeassistant/helpers/device_registry.py:1872:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def entity_registry_changed_filter(event_data: _EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update) -> bool` +homeassistant/helpers/device_registry.py:1308:20: error[invalid-assignment] Object of type `dict[Unknown | str, Unknown | str]` is not assignable to `EventDeviceRegistryUpdatedData` +homeassistant/helpers/device_registry.py:1310:20: error[invalid-assignment] Object of type `dict[Unknown | str, Unknown | str | dict[str, Any]]` is not assignable to `EventDeviceRegistryUpdatedData` +homeassistant/helpers/device_registry.py:1457:13: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventDeviceRegistryUpdatedData_Remove] | str`, found `EventType[_EventDeviceRegistryUpdatedData_Create | _EventDeviceRegistryUpdatedData_Remove | _EventDeviceRegistryUpdatedData_Update]` +homeassistant/helpers/device_registry.py:1838:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventLabelRegistryUpdatedData]` +homeassistant/helpers/device_registry.py:1839:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _label_removed_from_registry_filter(event_data: EventLabelRegistryUpdatedData) -> bool` +homeassistant/helpers/device_registry.py:1840:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _handle_label_registry_update(event: Event[EventLabelRegistryUpdatedData]) -> None` +homeassistant/helpers/device_registry.py:1867:36: error[invalid-argument-type] Method `__getitem__` of type `(Overload[(key: Literal["action"], /) -> Literal["create", "remove"], (key: Literal["entity_id"], /) -> str]) | (Overload[(key: Literal["action"], /) -> Literal["update"], (key: Literal["entity_id"], /) -> str, (key: Literal["changes"], /) -> dict[str, Any], (key: Literal["old_entity_id"], /) -> str])` cannot be called with key of type `Literal["changes"]` on object of type `EventEntityRegistryUpdatedData` +homeassistant/helpers/device_registry.py:1876:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` +homeassistant/helpers/device_registry.py:1877:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _async_entity_registry_changed(event: Event[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]) -> None` +homeassistant/helpers/device_registry.py:1878:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def entity_registry_changed_filter(event_data: _EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update) -> bool` homeassistant/helpers/discovery.py:22:46: error[invalid-type-arguments] Too many type arguments to class `SignalTypeFormat`: expected 0, got 1 homeassistant/helpers/discovery_flow.py:59:19: error[invalid-assignment] Object of type `dict[str, object]` is not assignable to `ConfigFlowContext` homeassistant/helpers/dispatcher.py:30:16: error[invalid-type-arguments] Too many type arguments to class `SignalType`: expected 0, got 1 @@ -4486,35 +4506,35 @@ homeassistant/helpers/dispatcher.py:234:38: error[invalid-type-arguments] Too ma homeassistant/helpers/entity.py:1312:23: error[call-non-callable] Object of type `object` is not callable homeassistant/helpers/entity.py:1314:51: error[invalid-argument-type] Argument to bound method `async_add_executor_job` is incorrect: Expected `(...) -> Unknown`, found `object` homeassistant/helpers/entity.py:1527:32: error[invalid-key] Unknown key "changes" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "changes" -homeassistant/helpers/entity.py:1576:31: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Create`: Unknown key "changes" -homeassistant/helpers/entity.py:1576:31: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Remove`: Unknown key "changes" -homeassistant/helpers/entity.py:1576:73: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Create`: Unknown key "changes" -homeassistant/helpers/entity.py:1576:73: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Remove`: Unknown key "changes" -homeassistant/helpers/entity_component.py:375:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `EntityPlatformModule | None`, found `ModuleType | None` +homeassistant/helpers/entity.py:1578:31: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Create`: Unknown key "changes" +homeassistant/helpers/entity.py:1578:31: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Remove`: Unknown key "changes" +homeassistant/helpers/entity.py:1578:73: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Create`: Unknown key "changes" +homeassistant/helpers/entity.py:1578:73: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Remove`: Unknown key "changes" +homeassistant/helpers/entity_component.py:378:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `EntityPlatformModule | None`, found `ModuleType | None` homeassistant/helpers/entity_registry.py:218:5: error[call-non-callable] Object of type `_MISSING_TYPE` is not callable homeassistant/helpers/entity_registry.py:443:5: error[call-non-callable] Object of type `_MISSING_TYPE` is not callable -homeassistant/helpers/entity_registry.py:829:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventDeviceRegistryUpdatedData_Create | _EventDeviceRegistryUpdatedData_Remove | _EventDeviceRegistryUpdatedData_Update]` -homeassistant/helpers/entity_registry.py:830:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `bound method Self@__init__.async_device_modified(event: Event[_EventDeviceRegistryUpdatedData_Create | _EventDeviceRegistryUpdatedData_Remove | _EventDeviceRegistryUpdatedData_Update]) -> None` -homeassistant/helpers/entity_registry.py:1060:13: error[invalid-argument-type] Argument is incorrect: Expected `str`, found `None | str` -homeassistant/helpers/entity_registry.py:1063:13: error[invalid-argument-type] Argument is incorrect: Expected `ReadOnlyEntityOptionsType`, found `ReadOnlyDict[str, ReadOnlyDict[str, Any]] | @Todo | None` -homeassistant/helpers/entity_registry.py:1079:13: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventEntityRegistryUpdatedData_CreateRemove] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` -homeassistant/helpers/entity_registry.py:1126:13: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventEntityRegistryUpdatedData_CreateRemove] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` -homeassistant/helpers/entity_registry.py:1149:46: error[invalid-key] Unknown key "device" for TypedDict `_EventDeviceRegistryUpdatedData_Create` - did you mean "device_id"? -homeassistant/helpers/entity_registry.py:1149:46: error[invalid-key] Unknown key "device" for TypedDict `_EventDeviceRegistryUpdatedData_Update` - did you mean "device_id"? -homeassistant/helpers/entity_registry.py:1179:45: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Create`: Unknown key "changes" -homeassistant/helpers/entity_registry.py:1179:45: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Remove`: Unknown key "changes" -homeassistant/helpers/entity_registry.py:1193:56: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Create`: Unknown key "changes" -homeassistant/helpers/entity_registry.py:1193:56: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Remove`: Unknown key "changes" -homeassistant/helpers/entity_registry.py:1378:43: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventEntityRegistryUpdatedData_Update] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` -homeassistant/helpers/entity_registry.py:1858:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventLabelRegistryUpdatedData]` -homeassistant/helpers/entity_registry.py:1859:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _removed_from_registry_filter(event_data: EventLabelRegistryUpdatedData | EventCategoryRegistryUpdatedData) -> bool` -homeassistant/helpers/entity_registry.py:1860:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _handle_label_registry_update(event: Event[EventLabelRegistryUpdatedData]) -> None` -homeassistant/helpers/entity_registry.py:1871:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventCategoryRegistryUpdatedData]` -homeassistant/helpers/entity_registry.py:1872:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _removed_from_registry_filter(event_data: EventLabelRegistryUpdatedData | EventCategoryRegistryUpdatedData) -> bool` -homeassistant/helpers/entity_registry.py:1873:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _handle_category_registry_update(event: Event[EventCategoryRegistryUpdatedData]) -> None` -homeassistant/helpers/entity_registry.py:1912:40: error[invalid-key] Unknown key "old_entity_id" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "old_entity_id" -homeassistant/helpers/entity_registry.py:1929:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` -homeassistant/helpers/entity_registry.py:1930:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def cleanup_restored_states(event: Event[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]) -> None` +homeassistant/helpers/entity_registry.py:830:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventDeviceRegistryUpdatedData_Create | _EventDeviceRegistryUpdatedData_Remove | _EventDeviceRegistryUpdatedData_Update]` +homeassistant/helpers/entity_registry.py:831:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `bound method Self@__init__.async_device_modified(event: Event[_EventDeviceRegistryUpdatedData_Create | _EventDeviceRegistryUpdatedData_Remove | _EventDeviceRegistryUpdatedData_Update]) -> None` +homeassistant/helpers/entity_registry.py:1061:13: error[invalid-argument-type] Argument is incorrect: Expected `str`, found `None | str` +homeassistant/helpers/entity_registry.py:1064:13: error[invalid-argument-type] Argument is incorrect: Expected `ReadOnlyEntityOptionsType`, found `ReadOnlyDict[str, ReadOnlyDict[str, Any]] | @Todo | None` +homeassistant/helpers/entity_registry.py:1080:13: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventEntityRegistryUpdatedData_CreateRemove] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` +homeassistant/helpers/entity_registry.py:1127:13: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventEntityRegistryUpdatedData_CreateRemove] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` +homeassistant/helpers/entity_registry.py:1150:46: error[invalid-key] Unknown key "device" for TypedDict `_EventDeviceRegistryUpdatedData_Create` - did you mean "device_id"? +homeassistant/helpers/entity_registry.py:1150:46: error[invalid-key] Unknown key "device" for TypedDict `_EventDeviceRegistryUpdatedData_Update` - did you mean "device_id"? +homeassistant/helpers/entity_registry.py:1180:45: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Create`: Unknown key "changes" +homeassistant/helpers/entity_registry.py:1180:45: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Remove`: Unknown key "changes" +homeassistant/helpers/entity_registry.py:1194:56: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Create`: Unknown key "changes" +homeassistant/helpers/entity_registry.py:1194:56: error[invalid-key] Unknown key "changes" for TypedDict `_EventDeviceRegistryUpdatedData_Remove`: Unknown key "changes" +homeassistant/helpers/entity_registry.py:1379:43: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventEntityRegistryUpdatedData_Update] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` +homeassistant/helpers/entity_registry.py:1863:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventLabelRegistryUpdatedData]` +homeassistant/helpers/entity_registry.py:1864:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _removed_from_registry_filter(event_data: EventLabelRegistryUpdatedData | EventCategoryRegistryUpdatedData) -> bool` +homeassistant/helpers/entity_registry.py:1865:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _handle_label_registry_update(event: Event[EventLabelRegistryUpdatedData]) -> None` +homeassistant/helpers/entity_registry.py:1876:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventCategoryRegistryUpdatedData]` +homeassistant/helpers/entity_registry.py:1877:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _removed_from_registry_filter(event_data: EventLabelRegistryUpdatedData | EventCategoryRegistryUpdatedData) -> bool` +homeassistant/helpers/entity_registry.py:1878:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def _handle_category_registry_update(event: Event[EventCategoryRegistryUpdatedData]) -> None` +homeassistant/helpers/entity_registry.py:1917:40: error[invalid-key] Unknown key "old_entity_id" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "old_entity_id" +homeassistant/helpers/entity_registry.py:1934:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` +homeassistant/helpers/entity_registry.py:1935:9: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `(Event[Mapping[str, Any]], /) -> Coroutine[Any, Any, None] | None`, found `def cleanup_restored_states(event: Event[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]) -> None` homeassistant/helpers/event.py:105:36: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `list[Event[_TypedDictT@_KeyedEventTracker]]`? homeassistant/helpers/event.py:105:58: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 homeassistant/helpers/event.py:113:36: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `list[Event[_TypedDictT@_KeyedEventTracker]]`? @@ -4575,8 +4595,12 @@ homeassistant/helpers/event.py:1805:18: error[invalid-type-form] List literals a homeassistant/helpers/event.py:1805:30: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 homeassistant/helpers/event.py:1807:48: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `list[datetime]`? homeassistant/helpers/event.py:1807:60: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 -homeassistant/helpers/floor_registry.py:287:16: error[invalid-return-type] Return type does not match returned value: expected `FloorRegistryStoreData`, found `dict[Unknown | str, Unknown | list[dict[Unknown | str, Unknown | list[str] | str | None | int] | Unknown]]` -homeassistant/helpers/floor_registry.py:288:23: error[invalid-argument-type] Invalid argument to key "floors" with declared type `list[_FloorStoreData]` on TypedDict `FloorRegistryStoreData`: value of type `list[dict[Unknown | str, Unknown | list[str] | str | None | int] | Unknown]` +homeassistant/helpers/floor_registry.py:224:13: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventFloorRegistryUpdatedData_Create_Remove_Update] | str`, found `EventType[_EventFloorRegistryUpdatedData_Create_Remove_Update | _EventFloorRegistryUpdatedData_Reorder]` +homeassistant/helpers/floor_registry.py:237:13: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventFloorRegistryUpdatedData_Create_Remove_Update] | str`, found `EventType[_EventFloorRegistryUpdatedData_Create_Remove_Update | _EventFloorRegistryUpdatedData_Reorder]` +homeassistant/helpers/floor_registry.py:279:13: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventFloorRegistryUpdatedData_Create_Remove_Update] | str`, found `EventType[_EventFloorRegistryUpdatedData_Create_Remove_Update | _EventFloorRegistryUpdatedData_Reorder]` +homeassistant/helpers/floor_registry.py:306:13: error[invalid-argument-type] Argument to bound method `async_fire_internal` is incorrect: Expected `EventType[_EventFloorRegistryUpdatedData_Reorder] | str`, found `EventType[_EventFloorRegistryUpdatedData_Create_Remove_Update | _EventFloorRegistryUpdatedData_Reorder]` +homeassistant/helpers/floor_registry.py:333:16: error[invalid-return-type] Return type does not match returned value: expected `FloorRegistryStoreData`, found `dict[Unknown | str, Unknown | list[dict[Unknown | str, Unknown | list[str] | str | None | int] | Unknown]]` +homeassistant/helpers/floor_registry.py:334:23: error[invalid-argument-type] Invalid argument to key "floors" with declared type `list[_FloorStoreData]` on TypedDict `FloorRegistryStoreData`: value of type `list[dict[Unknown | str, Unknown | list[str] | str | None | int] | Unknown]` homeassistant/helpers/helper_integration.py:73:32: error[invalid-key] Unknown key "changes" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "changes" homeassistant/helpers/helper_integration.py:81:60: error[invalid-key] Unknown key "changes" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove`: Unknown key "changes" homeassistant/helpers/integration_platform.py:37:26: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `tuple[HomeAssistant, str, Any]`? @@ -4588,112 +4612,117 @@ homeassistant/helpers/schema_config_entry_flow.py:258:40: error[invalid-assignme homeassistant/helpers/script.py:153:36: error[invalid-type-arguments] Too many type arguments to class `SignalType`: expected 0, got 3 homeassistant/helpers/script.py:154:46: error[invalid-type-arguments] Too many type arguments to class `SignalTypeFormat`: expected 0, got 1 homeassistant/helpers/script_variables.py:196:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `UserDict.__setitem__` -homeassistant/helpers/service.py:921:9: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `list[ServiceCall]`? -homeassistant/helpers/service.py:922:9: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 -homeassistant/helpers/service.py:1131:38: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 -homeassistant/helpers/service.py:1169:38: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 +homeassistant/helpers/service.py:923:9: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `list[ServiceCall]`? +homeassistant/helpers/service.py:924:9: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 +homeassistant/helpers/service.py:1137:38: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 +homeassistant/helpers/service.py:1177:38: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 homeassistant/helpers/singleton.py:68:32: error[invalid-await] `_Coro[_T@singleton] | _U@singleton` is not awaitable homeassistant/helpers/singleton.py:83:12: error[invalid-return-type] Return type does not match returned value: expected `(_FuncType[_S@singleton], /) -> _FuncType[_S@singleton]`, found `Overload[(func: _FuncType[_Coro[_T@singleton]]) -> _FuncType[_Coro[_T@singleton]], (func: _FuncType[_U@singleton]) -> _FuncType[_U@singleton]]` homeassistant/helpers/singleton.py:121:5: error[type-assertion-failure] Type `str` does not match asserted type `Unknown` homeassistant/helpers/singleton.py:122:5: error[type-assertion-failure] Type `str` does not match asserted type `Unknown` -homeassistant/helpers/storage.py:391:12: error[unsupported-operator] Operator `not in` is not supported for types `str` and `int`, in comparing `Literal["minor_version"]` with `dict[str, Any] | Unknown | dict[str, JsonValueType] | ... omitted 5 union elements` -homeassistant/helpers/storage.py:392:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `str` -homeassistant/helpers/storage.py:392:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `int` -homeassistant/helpers/storage.py:392:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `float` -homeassistant/helpers/storage.py:392:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` -homeassistant/helpers/storage.py:392:13: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["minor_version"]` and value of type `Literal[1]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:395:13: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["version"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:395:13: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["version"]` on object of type `str` -homeassistant/helpers/storage.py:395:13: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:395:13: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:395:13: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:396:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["minor_version"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:396:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["minor_version"]` on object of type `str` -homeassistant/helpers/storage.py:396:17: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:396:17: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:396:17: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:398:22: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["data"]` on object of type `str` -homeassistant/helpers/storage.py:398:22: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["data"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:398:22: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:398:22: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:398:22: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:403:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["version"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:403:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["version"]` on object of type `str` -homeassistant/helpers/storage.py:403:17: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:403:17: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:403:17: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:404:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["minor_version"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:404:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["minor_version"]` on object of type `str` -homeassistant/helpers/storage.py:404:17: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:404:17: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:404:17: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:409:32: error[missing-argument] No argument provided for required parameter `old_data` of bound method `_async_migrate_func` -homeassistant/helpers/storage.py:409:57: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["version"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:409:57: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["version"]` on object of type `str` -homeassistant/helpers/storage.py:409:57: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:409:57: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:409:57: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:409:74: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["data"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:409:74: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["data"]` on object of type `str` -homeassistant/helpers/storage.py:409:74: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:409:74: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:409:74: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:413:25: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["version"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:413:25: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["version"]` on object of type `str` -homeassistant/helpers/storage.py:413:25: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:413:25: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:413:25: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:413:42: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["minor_version"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:413:42: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["minor_version"]` on object of type `str` -homeassistant/helpers/storage.py:413:42: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:413:42: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:413:42: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:413:65: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["data"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:413:65: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["data"]` on object of type `str` -homeassistant/helpers/storage.py:413:65: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:413:65: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:413:65: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:416:24: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["version"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:416:24: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["version"]` on object of type `str` -homeassistant/helpers/storage.py:416:24: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:416:24: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:416:24: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:418:30: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["data"]` on object of type `list[JsonValueType]` -homeassistant/helpers/storage.py:418:30: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["data"]` on object of type `str` -homeassistant/helpers/storage.py:418:30: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method -homeassistant/helpers/storage.py:418:30: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method -homeassistant/helpers/storage.py:418:30: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -homeassistant/helpers/storage.py:419:35: error[invalid-argument-type] Argument to bound method `async_save` is incorrect: Argument type `Unknown | dict[str, Any] | list[Any] | ... omitted 4 union elements` does not satisfy upper bound `Mapping[str, Any] | Sequence[Any]` of type variable `_T` -homeassistant/helpers/storage.py:419:35: error[invalid-argument-type] Argument to bound method `async_save` is incorrect: Expected `_T@Store`, found `Unknown | dict[str, Any] | list[Any] | ... omitted 4 union elements` +homeassistant/helpers/storage.py:409:12: error[unsupported-operator] Operator `not in` is not supported between objects of type `Literal["minor_version"]` and `dict[str, Any] | Unknown | dict[str, JsonValueType] | ... omitted 5 union elements` +homeassistant/helpers/storage.py:410:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `str` +homeassistant/helpers/storage.py:410:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `int` +homeassistant/helpers/storage.py:410:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `float` +homeassistant/helpers/storage.py:410:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `None` +homeassistant/helpers/storage.py:410:13: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["minor_version"]` and value of type `Literal[1]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:413:13: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["version"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:413:13: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["version"]` on object of type `str` +homeassistant/helpers/storage.py:413:13: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:413:13: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:413:13: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:414:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["minor_version"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:414:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["minor_version"]` on object of type `str` +homeassistant/helpers/storage.py:414:17: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:414:17: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:414:17: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:416:22: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["data"]` on object of type `str` +homeassistant/helpers/storage.py:416:22: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["data"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:416:22: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:416:22: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:416:22: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:421:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["version"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:421:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["version"]` on object of type `str` +homeassistant/helpers/storage.py:421:17: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:421:17: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:421:17: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:422:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["minor_version"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:422:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["minor_version"]` on object of type `str` +homeassistant/helpers/storage.py:422:17: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:422:17: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:422:17: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:427:32: error[missing-argument] No argument provided for required parameter `old_data` of bound method `_async_migrate_func` +homeassistant/helpers/storage.py:427:57: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["version"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:427:57: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["version"]` on object of type `str` +homeassistant/helpers/storage.py:427:57: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:427:57: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:427:57: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:427:74: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["data"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:427:74: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["data"]` on object of type `str` +homeassistant/helpers/storage.py:427:74: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:427:74: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:427:74: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:431:25: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["version"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:431:25: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["version"]` on object of type `str` +homeassistant/helpers/storage.py:431:25: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:431:25: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:431:25: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:431:42: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["minor_version"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:431:42: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["minor_version"]` on object of type `str` +homeassistant/helpers/storage.py:431:42: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:431:42: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:431:42: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:431:65: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["data"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:431:65: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["data"]` on object of type `str` +homeassistant/helpers/storage.py:431:65: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:431:65: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:431:65: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:434:24: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["version"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:434:24: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["version"]` on object of type `str` +homeassistant/helpers/storage.py:434:24: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:434:24: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:434:24: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:436:30: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> dict[str, Any] | list[JsonValueType] | str | ... omitted 3 union elements, (s: slice[Any, Any, Any], /) -> list[JsonValueType]]` cannot be called with key of type `Literal["data"]` on object of type `list[JsonValueType]` +homeassistant/helpers/storage.py:436:30: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: SupportsIndex | slice[Any, Any, Any], /) -> LiteralString, (key: SupportsIndex | slice[Any, Any, Any], /) -> str]` cannot be called with key of type `Literal["data"]` on object of type `str` +homeassistant/helpers/storage.py:436:30: error[non-subscriptable] Cannot subscript object of type `int` with no `__getitem__` method +homeassistant/helpers/storage.py:436:30: error[non-subscriptable] Cannot subscript object of type `float` with no `__getitem__` method +homeassistant/helpers/storage.py:436:30: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method +homeassistant/helpers/storage.py:437:35: error[invalid-argument-type] Argument to bound method `async_save` is incorrect: Argument type `Unknown | dict[str, Any] | list[Any] | ... omitted 4 union elements` does not satisfy upper bound `Mapping[str, Any] | Sequence[Any]` of type variable `_T` +homeassistant/helpers/storage.py:437:35: error[invalid-argument-type] Argument to bound method `async_save` is incorrect: Expected `_T@Store`, found `Unknown | dict[str, Any] | list[Any] | ... omitted 4 union elements` homeassistant/helpers/target.py:328:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update]` homeassistant/helpers/target.py:331:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[_EventDeviceRegistryUpdatedData_Create | _EventDeviceRegistryUpdatedData_Remove | _EventDeviceRegistryUpdatedData_Update]` homeassistant/helpers/target.py:334:17: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `EventType[Mapping[str, Any]] | str`, found `EventType[EventAreaRegistryUpdatedData]` -homeassistant/helpers/template/__init__.py:605:13: warning[possibly-missing-attribute] Attribute `loop` may be missing on object of type `Unknown | HomeAssistant | None` -homeassistant/helpers/template/__init__.py:1787:14: warning[possibly-missing-attribute] Submodule `filters` may not be available as an attribute on module `jinja2` -homeassistant/helpers/template/__init__.py:1795:14: warning[possibly-missing-attribute] Submodule `filters` may not be available as an attribute on module `jinja2` -homeassistant/helpers/template/__init__.py:2181:19: warning[possibly-missing-attribute] Submodule `nodes` may not be available as an attribute on module `jinja2` -homeassistant/helpers/template/__init__.py:2428:23: warning[possibly-missing-attribute] Submodule `nodes` may not be available as an attribute on module `jinja2` -homeassistant/helpers/template/__init__.py:2438:23: warning[possibly-missing-attribute] Submodule `nodes` may not be available as an attribute on module `jinja2` -homeassistant/helpers/template/__init__.py:2447:23: warning[possibly-missing-attribute] Submodule `nodes` may not be available as an attribute on module `jinja2` -homeassistant/helpers/trigger.py:358:21: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `tuple[dict[str, Any], Context | None]`? -homeassistant/helpers/trigger.py:358:55: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 -homeassistant/helpers/trigger.py:476:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[str, TriggerProtocol]`, found `tuple[Unknown | str, ModuleType]` +homeassistant/helpers/template/__init__.py:599:13: warning[possibly-missing-attribute] Attribute `loop` may be missing on object of type `Unknown | HomeAssistant | None` +homeassistant/helpers/template/__init__.py:1560:14: warning[possibly-missing-attribute] Submodule `filters` may not be available as an attribute on module `jinja2` +homeassistant/helpers/template/__init__.py:1568:14: warning[possibly-missing-attribute] Submodule `filters` may not be available as an attribute on module `jinja2` +homeassistant/helpers/template/__init__.py:1861:19: warning[possibly-missing-attribute] Submodule `nodes` may not be available as an attribute on module `jinja2` +homeassistant/helpers/template/__init__.py:2061:23: warning[possibly-missing-attribute] Submodule `nodes` may not be available as an attribute on module `jinja2` +homeassistant/helpers/template/__init__.py:2071:23: warning[possibly-missing-attribute] Submodule `nodes` may not be available as an attribute on module `jinja2` +homeassistant/helpers/template/__init__.py:2080:23: warning[possibly-missing-attribute] Submodule `nodes` may not be available as an attribute on module `jinja2` +homeassistant/helpers/trigger.py:621:21: error[invalid-type-form] List literals are not allowed in this context in a type expression: Did you mean `tuple[dict[str, Any], Context | None]`? +homeassistant/helpers/trigger.py:621:55: error[invalid-type-arguments] Too many type arguments to class `HassJob`: expected 1, got 2 +homeassistant/helpers/trigger.py:749:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[str, TriggerProtocol]`, found `tuple[Unknown | str, ModuleType]` homeassistant/helpers/update_coordinator.py:218:20: error[not-iterable] Object of type `GeneratorType[~None, None, None]` is not iterable -homeassistant/loader.py:297:16: error[unresolved-import] Cannot resolve imported module `custom_components` -homeassistant/loader.py:979:20: error[invalid-return-type] Return type does not match returned value: expected `ComponentProtocol`, found `Unknown | ModuleType | ComponentProtocol` -homeassistant/loader.py:1057:20: error[invalid-return-type] Return type does not match returned value: expected `ComponentProtocol`, found `Unknown | ModuleType | ComponentProtocol` -homeassistant/loader.py:1084:16: error[invalid-return-type] Return type does not match returned value: expected `ComponentProtocol`, found `Unknown | ModuleType | ComponentProtocol` -homeassistant/loader.py:1487:9: error[invalid-argument-type] Argument to function `_resolve_integrations_dependencies` is incorrect: Expected `_ResolveDependenciesCacheProtocol`, found `dict[Unknown, Unknown]` -homeassistant/loader.py:1673:16: error[unresolved-import] Cannot resolve imported module `custom_components` +homeassistant/loader.py:298:16: error[unresolved-import] Cannot resolve imported module `custom_components` +homeassistant/loader.py:985:20: error[invalid-return-type] Return type does not match returned value: expected `ComponentProtocol`, found `Unknown | ModuleType | ComponentProtocol` +homeassistant/loader.py:1063:20: error[invalid-return-type] Return type does not match returned value: expected `ComponentProtocol`, found `Unknown | ModuleType | ComponentProtocol` +homeassistant/loader.py:1090:16: error[invalid-return-type] Return type does not match returned value: expected `ComponentProtocol`, found `Unknown | ModuleType | ComponentProtocol` +homeassistant/loader.py:1493:9: error[invalid-argument-type] Argument to function `_resolve_integrations_dependencies` is incorrect: Expected `_ResolveDependenciesCacheProtocol`, found `dict[Unknown, Unknown]` +homeassistant/loader.py:1679:16: error[unresolved-import] Cannot resolve imported module `custom_components` +homeassistant/runner.py:176:27: error[unresolved-attribute] Module `asyncio` has no member `DefaultEventLoopPolicy` +homeassistant/runner.py:284:13: warning[deprecated] The function `set_event_loop_policy` is deprecated: Deprecated since Python 3.14; will be removed in Python 3.16. +homeassistant/scripts/__init__.py:64:13: warning[deprecated] The function `set_event_loop_policy` is deprecated: Deprecated since Python 3.14; will be removed in Python 3.16. +homeassistant/scripts/auth.py:51:13: warning[deprecated] The function `set_event_loop_policy` is deprecated: Deprecated since Python 3.14; will be removed in Python 3.16. homeassistant/scripts/benchmark/__init__.py:39:32: error[unresolved-attribute] Object of type `_AbstractEventLoopPolicy` has no attribute `loop_name` +homeassistant/scripts/benchmark/__init__.py:39:40: warning[deprecated] The function `get_event_loop_policy` is deprecated: Deprecated since Python 3.14; will be removed in Python 3.16. homeassistant/setup.py:650:13: error[invalid-argument-type] Argument to bound method `async_listen` is incorrect: Expected `((Mapping[str, Any], /) -> bool) | None`, found `def _async_is_component_filter(event_data: EventComponentLoaded) -> bool` -homeassistant/util/__init__.py:153:28: error[unresolved-attribute] Object of type `((...) -> Unknown) & ~` has no attribute `__qualname__` -homeassistant/util/__init__.py:170:17: error[invalid-assignment] Object of type `dict[Unknown, Unknown]` is not assignable to attribute `_throttle` on type `~` -homeassistant/util/__init__.py:172:32: error[unresolved-attribute] Object of type `object` has no attribute `_throttle` -homeassistant/util/__init__.py:173:17: error[unresolved-attribute] Object of type `object` has no attribute `_throttle` -homeassistant/util/__init__.py:174:24: error[unresolved-attribute] Object of type `object` has no attribute `_throttle` -homeassistant/util/__init__.py:177:24: error[invalid-return-type] Return type does not match returned value: expected `((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]`, found `CoroutineType[Any, Any, None] | None` -homeassistant/util/__init__.py:188:24: error[invalid-return-type] Return type does not match returned value: expected `((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]`, found `CoroutineType[Any, Any, None] | None` +homeassistant/util/__init__.py:167:28: error[unresolved-attribute] Object of type `((...) -> Unknown) & ~` has no attribute `__qualname__` +homeassistant/util/__init__.py:184:17: error[invalid-assignment] Object of type `dict[Unknown, Unknown]` is not assignable to attribute `_throttle` on type `~` +homeassistant/util/__init__.py:186:32: error[unresolved-attribute] Object of type `object` has no attribute `_throttle` +homeassistant/util/__init__.py:187:17: error[unresolved-attribute] Object of type `object` has no attribute `_throttle` +homeassistant/util/__init__.py:188:24: error[unresolved-attribute] Object of type `object` has no attribute `_throttle` +homeassistant/util/__init__.py:191:24: error[invalid-return-type] Return type does not match returned value: expected `((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]`, found `CoroutineType[Any, Any, None] | None` +homeassistant/util/__init__.py:202:24: error[invalid-return-type] Return type does not match returned value: expected `((...) -> Unknown) | Coroutine[Unknown, Unknown, Unknown]`, found `CoroutineType[Any, Any, None] | None` homeassistant/util/hass_dict.pyi:37:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `dict.__getitem__` homeassistant/util/hass_dict.pyi:47:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `dict.__setitem__` homeassistant/util/hass_dict.pyi:59:9: error[invalid-method-override] Invalid override of method `setdefault`: Definition is incompatible with `MutableMapping.setdefault` @@ -4737,4 +4766,4 @@ homeassistant/util/signal_type.pyi:61:37: error[invalid-type-arguments] Too many homeassistant/util/signal_type.pyi:63:49: error[invalid-type-arguments] Too many type arguments to class `SignalTypeFormat`: expected 0, got 1 homeassistant/util/signal_type.pyi:64:38: error[invalid-type-arguments] Too many type arguments to class `SignalType`: expected 0, got 1 homeassistant/util/variance.py:41:43: error[unsupported-operator] Operator `-` is unsupported between objects of type `_R@ignore_variance` and `_R@ignore_variance` -Found 4739 diagnostics +Found 4768 diagnostics diff --git a/scripts/ty_benchmark/snapshots/isort_Pyrefly.txt b/scripts/ty_benchmark/snapshots/isort_Pyrefly.txt index cf070fa762..2ece20e66e 100644 --- a/scripts/ty_benchmark/snapshots/isort_Pyrefly.txt +++ b/scripts/ty_benchmark/snapshots/isort_Pyrefly.txt @@ -8,13 +8,16 @@ ERROR isort/api.py:575:22-25: `key` may be uninitialized [unbound-name] ERROR isort/core.py:86:41-48: Argument `tuple[None]` is not assignable to parameter `*iterables` with type `Iterable[str]` in function `itertools.chain.__new__` [bad-argument-type] ERROR isort/core.py:126:54-61: Argument `tuple[None]` is not assignable to parameter `*iterables` with type `Iterable[str]` in function `itertools.chain.__new__` [bad-argument-type] ERROR isort/output.py:45:20-51: Expected an iterable, got `tuple[Literal['FUTURE']] | tuple[str, ...]` [not-iterable] +ERROR isort/output.py:494:48-67: Argument `str` is not assignable to parameter `object` with type `LiteralString` in function `list.append` [bad-argument-type] +ERROR isort/output.py:533:38-57: Argument `list[LiteralString]` is not assignable to parameter `from_imports` with type `list[str]` in function `isort.wrap.import_statement` [bad-argument-type] ERROR isort/output.py:534:34-42: Argument `list[Unknown] | Unknown | None` is not assignable to parameter `comments` with type `Sequence[str]` in function `isort.wrap.import_statement` [bad-argument-type] +ERROR isort/output.py:543:38-57: Argument `list[LiteralString]` is not assignable to parameter `from_imports` with type `list[str]` in function `isort.wrap.import_statement` [bad-argument-type] ERROR isort/output.py:544:34-42: Argument `list[Unknown] | Unknown | None` is not assignable to parameter `comments` with type `Sequence[str]` in function `isort.wrap.import_statement` [bad-argument-type] +ERROR isort/output.py:551:42-61: Argument `list[LiteralString]` is not assignable to parameter `from_imports` with type `list[str]` in function `isort.wrap.import_statement` [bad-argument-type] ERROR isort/output.py:552:38-46: Argument `list[Unknown] | Unknown | None` is not assignable to parameter `comments` with type `Sequence[str]` in function `isort.wrap.import_statement` [bad-argument-type] ERROR isort/place.py:104:31-50: Module `importlib.machinery` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR isort/settings.py:495:40-61: `IMPORT_HEADING_PREFIX` may be uninitialized [unbound-name] ERROR isort/settings.py:499:40-60: `IMPORT_FOOTER_PREFIX` may be uninitialized [unbound-name] -ERROR isort/settings.py:835:23-27: String literal used as condition. It's equivalent to `True` [redundant-condition] ERROR isort/sorting.py:121:34-37: Expected a callable, got `None` [not-callable] INFO Checking project configured at `/pyrefly.toml` - INFO 18 errors (18 suppressed) + INFO 21 errors (18 suppressed) diff --git a/scripts/ty_benchmark/snapshots/jinja_Pyrefly.txt b/scripts/ty_benchmark/snapshots/jinja_Pyrefly.txt index b4a5c75056..a63410cd01 100644 --- a/scripts/ty_benchmark/snapshots/jinja_Pyrefly.txt +++ b/scripts/ty_benchmark/snapshots/jinja_Pyrefly.txt @@ -4,7 +4,9 @@ ERROR src/jinja2/compiler.py:222:16-18: Returned type `object` is not assignable ERROR src/jinja2/compiler.py:1257:27-43: `loop_filter_func` may be uninitialized [unbound-name] ERROR src/jinja2/compiler.py:1280:31-50: `iteration_indicator` may be uninitialized [unbound-name] ERROR src/jinja2/compiler.py:1287:34-53: `iteration_indicator` may be uninitialized [unbound-name] +ERROR src/jinja2/compiler.py:1421:18-1423:14: No matching overload found for function `dict.get` called with arguments: (_PassArg | None) [no-matching-overload] ERROR src/jinja2/compiler.py:1534:17-32: Object of class `Expr` has no attribute `append` [missing-attribute] +ERROR src/jinja2/compiler.py:1813:14-1815:10: No matching overload found for function `dict.get` called with arguments: (_PassArg | None) [no-matching-overload] ERROR src/jinja2/debug.py:78:6-19: Function declared to return `TracebackType`, but one or more paths are missing an explicit `return` [bad-return] ERROR src/jinja2/environment.py:352:14-21: Attribute `filters` cannot depend on type variable `V`, which is not in the scope of class `Environment` [invalid-type-var] ERROR src/jinja2/environment.py:352:14-21: Attribute `filters` cannot depend on type variable `K`, which is not in the scope of class `Environment` [invalid-type-var] @@ -25,6 +27,7 @@ ERROR src/jinja2/environment.py:894:17-25: `zip_file` may be uninitialized [unbo ERROR src/jinja2/environment.py:928:37-70: `in` is not supported between `str` and `None` [not-iterable] ERROR src/jinja2/environment.py:1084:38-59: Argument `(Template & Undefined) | (Undefined & list[Template | str]) | str` is not assignable to parameter `name` with type `Template | str` in function `Environment.get_template` [bad-argument-type] ERROR src/jinja2/environment.py:1251:23-42: `object` is not assignable to `Template` [bad-assignment] +ERROR src/jinja2/environment.py:1496:20-1499:14: Returned type `list[tuple[int, ...]]` is not assignable to declared return type `list[tuple[int, int]]` [bad-return] ERROR src/jinja2/environment.py:1548:20-39: Instance-only attribute `__name__` of class `TemplateModule` is not visible on the class [missing-attribute] ERROR src/jinja2/environment.py:1617:35-45: No matching overload found for function `typing.IO.writelines` called with arguments: (Generator[bytes, None, None] | Self@TemplateStream) [no-matching-overload] ERROR src/jinja2/environment.py:1620:34-40: No matching overload found for function `typing.IO.write` called with arguments: (bytes | str) [no-matching-overload] @@ -36,6 +39,7 @@ ERROR src/jinja2/ext.py:258:36-50: Cannot set item in `dict[str, ((n: int = 5, h ERROR src/jinja2/ext.py:318:40-320:10: No matching overload found for function `typing.MutableMapping.update` called with arguments: (gettext=((str) -> str) | ((...) -> str), ngettext=((str, str, int) -> str) | ((...) -> str), pgettext=((str, str) -> str) | ((...) -> str) | None, npgettext=((str, str, str, int) -> str) | ((...) -> str) | None) [no-matching-overload] ERROR src/jinja2/filters.py:40:31-34: Function declared to return `str` but is missing an explicit `return` [bad-return] ERROR src/jinja2/filters.py:120:13-21: Cannot set item in `list[None]` [unsupported-operation] +ERROR src/jinja2/filters.py:165:56-68: Runtime checkable protocol `Iterable` has an unsafe overlap with type `Iterable[tuple[str, Any]] | Mapping[str, Any]` [invalid-argument] ERROR src/jinja2/filters.py:169:48-61: `dict_items[tuple[str, Any], Unknown]` is not assignable to `Iterable[tuple[str, Any]]` [bad-assignment] ERROR src/jinja2/filters.py:308:22-56: Argument `str` is not assignable to parameter `object` with type `LiteralString` in function `list.append` [bad-argument-type] ERROR src/jinja2/filters.py:730:34-38: `unit` may be uninitialized [unbound-name] @@ -64,4 +68,4 @@ ERROR src/jinja2/sandbox.py:244:33-43: Cannot set item in `dict[str, ((n: int = ERROR src/jinja2/utils.py:271:16-39: `>` is not supported between `int` and `None` [unsupported-operation] ERROR src/jinja2/utils.py:431:2-29: Class `MutableMapping` has no class attribute `register` [missing-attribute] INFO Checking project configured at `/pyrefly.toml` - INFO 65 errors (80 suppressed) + INFO 69 errors (77 suppressed) diff --git a/scripts/ty_benchmark/snapshots/pandas-stubs_ty.txt b/scripts/ty_benchmark/snapshots/pandas-stubs_ty.txt index eb515d3508..df20a8b56d 100644 --- a/scripts/ty_benchmark/snapshots/pandas-stubs_ty.txt +++ b/scripts/ty_benchmark/snapshots/pandas-stubs_ty.txt @@ -1,9 +1,11 @@ pandas-stubs/_libs/missing.pyi:120:9: error[invalid-method-override] Invalid override of method `__eq__`: Definition is incompatible with `object.__eq__` pandas-stubs/_libs/missing.pyi:130:9: error[invalid-method-override] Invalid override of method `__ne__`: Definition is incompatible with `object.__ne__` -pandas-stubs/_typing.pyi:861:36: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `tuple[int, ...]` of type variable `_ShapeT_co@ndarray` -pandas-stubs/_typing.pyi:861:53: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `generic[Any]` of type variable `_SCT_co@dtype` -pandas-stubs/_typing.pyi:865:57: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `generic[Any]` of type variable `_SCT_co@dtype` -pandas-stubs/_typing.pyi:877:62: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `generic[Any]` of type variable `_SCT_co@dtype` +pandas-stubs/_libs/tslibs/timedeltas.pyi:262:9: error[invalid-method-override] Invalid override of method `__truediv__`: Definition is incompatible with `timedelta.__truediv__` +pandas-stubs/_libs/tslibs/timestamps.pyi:183:9: error[invalid-method-override] Invalid override of method `__le__`: Definition is incompatible with `date.__le__` +pandas-stubs/_libs/tslibs/timestamps.pyi:193:9: error[invalid-method-override] Invalid override of method `__lt__`: Definition is incompatible with `date.__lt__` +pandas-stubs/_libs/tslibs/timestamps.pyi:203:9: error[invalid-method-override] Invalid override of method `__ge__`: Definition is incompatible with `date.__ge__` +pandas-stubs/_libs/tslibs/timestamps.pyi:213:9: error[invalid-method-override] Invalid override of method `__gt__`: Definition is incompatible with `date.__gt__` +pandas-stubs/_libs/tslibs/timestamps.pyi:239:9: error[invalid-method-override] Invalid override of method `__sub__`: Definition is incompatible with `date.__sub__` pandas-stubs/core/arrays/categorical.pyi:114:9: error[invalid-method-override] Invalid override of method `__contains__`: Definition is incompatible with `ExtensionArray.__contains__` pandas-stubs/core/arrays/categorical.pyi:118:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__` pandas-stubs/core/arrays/datetimelike.pyi:76:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__` @@ -17,33 +19,38 @@ pandas-stubs/core/frame.pyi:320:9: error[invalid-method-override] Invalid overri pandas-stubs/core/frame.pyi:321:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `_ScalarAccessIndexer.__setitem__` pandas-stubs/core/frame.pyi:328:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `_ScalarAccessIndexer.__getitem__` pandas-stubs/core/frame.pyi:339:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `_ScalarAccessIndexer.__setitem__` +pandas-stubs/core/groupby/generic.pyi:208:9: error[override-of-final-method] Cannot override final member `__iter__` from superclass `BaseGroupBy` pandas-stubs/core/groupby/generic.pyi:247:9: error[invalid-method-override] Invalid override of method `apply`: Definition is incompatible with `GroupBy.apply` pandas-stubs/core/groupby/generic.pyi:300:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `BaseGroupBy.__getitem__` pandas-stubs/core/groupby/generic.pyi:452:9: error[invalid-method-override] Invalid override of method `__getattr__`: Definition is incompatible with `GroupBy.__getattr__` -pandas-stubs/core/groupby/groupby.pyi:74:35: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `NDFrame` of type variable `NDFrameT@DatetimeIndexResamplerGroupby` -pandas-stubs/core/groupby/groupby.pyi:75:35: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `NDFrame` of type variable `NDFrameT@PeriodIndexResamplerGroupby` -pandas-stubs/core/groupby/groupby.pyi:76:38: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `NDFrame` of type variable `NDFrameT@TimedeltaIndexResamplerGroupby` +pandas-stubs/core/groupby/generic.pyi:456:9: error[override-of-final-method] Cannot override final member `__iter__` from superclass `BaseGroupBy` pandas-stubs/core/indexes/datetimes.pyi:76:9: error[invalid-method-override] Invalid override of method `__sub__`: Definition is incompatible with `Index.__sub__` pandas-stubs/core/indexes/interval.pyi:242:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `Index.__getitem__` pandas-stubs/core/indexes/interval.pyi:250:9: error[invalid-method-override] Invalid override of method `__gt__`: Definition is incompatible with `Index.__gt__` pandas-stubs/core/indexes/interval.pyi:258:9: error[invalid-method-override] Invalid override of method `__ge__`: Definition is incompatible with `Index.__ge__` pandas-stubs/core/indexes/interval.pyi:266:9: error[invalid-method-override] Invalid override of method `__le__`: Definition is incompatible with `Index.__le__` pandas-stubs/core/indexes/interval.pyi:274:9: error[invalid-method-override] Invalid override of method `__lt__`: Definition is incompatible with `Index.__lt__` -pandas-stubs/core/indexes/interval.pyi:282:9: error[invalid-method-override] Invalid override of method `__eq__`: Definition is incompatible with `OpsMixin.__eq__` -pandas-stubs/core/indexes/interval.pyi:290:9: error[invalid-method-override] Invalid override of method `__ne__`: Definition is incompatible with `OpsMixin.__ne__` +pandas-stubs/core/indexes/interval.pyi:282:9: error[invalid-method-override] Invalid override of method `__eq__`: Definition is incompatible with `Index.__eq__` +pandas-stubs/core/indexes/interval.pyi:290:9: error[invalid-method-override] Invalid override of method `__ne__`: Definition is incompatible with `Index.__ne__` +pandas-stubs/core/indexes/multi.pyi:132:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `Index.__getitem__` pandas-stubs/core/indexes/period.pyi:57:9: error[invalid-method-override] Invalid override of method `__sub__`: Definition is incompatible with `Index.__sub__` pandas-stubs/core/indexes/period.pyi:66:9: error[invalid-method-override] Invalid override of method `__rsub__`: Definition is incompatible with `Index.__rsub__` pandas-stubs/core/indexes/range.pyi:84:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `Index.__getitem__` pandas-stubs/core/indexes/timedeltas.pyi:77:9: error[invalid-method-override] Invalid override of method `__add__`: Definition is incompatible with `Index.__add__` pandas-stubs/core/indexes/timedeltas.pyi:86:9: error[invalid-method-override] Invalid override of method `__radd__`: Definition is incompatible with `Index.__radd__` pandas-stubs/core/indexes/timedeltas.pyi:98:9: error[invalid-method-override] Invalid override of method `__rsub__`: Definition is incompatible with `Index.__rsub__` +pandas-stubs/core/indexes/timedeltas.pyi:104:9: error[invalid-method-override] Invalid override of method `__mul__`: Definition is incompatible with `Index.__mul__` +pandas-stubs/core/indexes/timedeltas.pyi:108:9: error[invalid-method-override] Invalid override of method `__rmul__`: Definition is incompatible with `Index.__rmul__` +pandas-stubs/core/indexes/timedeltas.pyi:120:9: error[invalid-method-override] Invalid override of method `__truediv__`: Definition is incompatible with `Index.__truediv__` +pandas-stubs/core/indexes/timedeltas.pyi:128:9: error[invalid-method-override] Invalid override of method `__rtruediv__`: Definition is incompatible with `Index.__rtruediv__` +pandas-stubs/core/indexes/timedeltas.pyi:138:9: error[invalid-method-override] Invalid override of method `__floordiv__`: Definition is incompatible with `Index.__floordiv__` +pandas-stubs/core/indexes/timedeltas.pyi:146:9: error[invalid-method-override] Invalid override of method `__rfloordiv__`: Definition is incompatible with `Index.__rfloordiv__` pandas-stubs/core/series.pyi:274:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `_LocationIndexer.__getitem__` pandas-stubs/core/series.pyi:283:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `_NDFrameIndexer.__setitem__` pandas-stubs/core/series.pyi:300:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `_LocationIndexer.__getitem__` pandas-stubs/core/series.pyi:330:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `_NDFrameIndexer.__setitem__` -pandas-stubs/core/series.pyi:338:71: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `str | bytes | int | ... omitted 12 union elements` of type variable `S1@IndexOpsMixin` pandas-stubs/core/series.pyi:4630:9: error[invalid-method-override] Invalid override of method `xs`: Definition is incompatible with `NDFrame.xs` pandas-stubs/io/excel/_base.pyi:16:6: error[unresolved-import] Cannot resolve imported module `openpyxl.workbook.workbook` pandas-stubs/io/excel/_base.pyi:20:6: error[unresolved-import] Cannot resolve imported module `xlrd.book` -Found 47 diagnostics +Found 54 diagnostics WARN Ignoring the `tool.ty` section in `/pyproject.toml` because `/ty.toml` takes precedence. diff --git a/scripts/ty_benchmark/snapshots/pandas_Pyrefly.txt b/scripts/ty_benchmark/snapshots/pandas_Pyrefly.txt index 72c9ad7328..f624dc89c2 100644 --- a/scripts/ty_benchmark/snapshots/pandas_Pyrefly.txt +++ b/scripts/ty_benchmark/snapshots/pandas_Pyrefly.txt @@ -50,6 +50,7 @@ ERROR pandas/core/_numba/kernels/mean_.py:135:21-47: `num_consecutive_same_value ERROR pandas/core/_numba/kernels/mean_.py:136:21-31: `prev_value` is uninitialized [unbound-name] ERROR pandas/core/_numba/kernels/mean_.py:141:16-42: `num_consecutive_same_value` may be uninitialized [unbound-name] ERROR pandas/core/_numba/kernels/mean_.py:142:26-36: `prev_value` may be uninitialized [unbound-name] +ERROR pandas/core/_numba/kernels/min_max_.py:109:17-110:37: `int` is not assignable to `int` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR pandas/core/_numba/kernels/sum_.py:135:21-47: `num_consecutive_same_value` is uninitialized [unbound-name] ERROR pandas/core/_numba/kernels/sum_.py:136:21-31: `prev_value` is uninitialized [unbound-name] ERROR pandas/core/_numba/kernels/sum_.py:142:16-42: `num_consecutive_same_value` may be uninitialized [unbound-name] @@ -75,12 +76,13 @@ ERROR pandas/core/algorithms.py:587:18-31: Object of class `SequenceNotStr` has Object of class `range` has no attribute `astype` [missing-attribute] ERROR pandas/core/algorithms.py:591:27-33: Argument `ExtensionArray | Index | SequenceNotStr[Unknown] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | Unknown` is not assignable to parameter `values` with type `ndarray[tuple[Any, ...], dtype[Any]]` in function `pandas._libs.hashtable.ismember` [bad-argument-type] ERROR pandas/core/algorithms.py:855:32-67: `ExtensionArray | Index | Series | ndarray[tuple[Any, ...], dtype[Any]] | Unknown` is not assignable to upper bound `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` of type variable `ArrayLikeT` [bad-specialization] -ERROR pandas/core/algorithms.py:857:12-26: Returned type `tuple[ndarray[tuple[Any, ...], dtype[signedinteger[_32Bit | _64Bit]]] | ndarray[tuple[Any, ...], dtype[Any]] | Unknown, ExtensionArray | Index | Series | ndarray[tuple[Any, ...], dtype[Any]] | Unknown]` is not assignable to declared return type `tuple[ndarray[tuple[Any, ...], dtype[Any]], Index | ndarray[tuple[Any, ...], dtype[Any]]]` [bad-return] +ERROR pandas/core/algorithms.py:857:12-26: Returned type `tuple[ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]] | ndarray[tuple[Any, ...], dtype[Any]] | Unknown, ExtensionArray | Index | Series | ndarray[tuple[Any, ...], dtype[Any]] | Unknown]` is not assignable to declared return type `tuple[ndarray[tuple[Any, ...], dtype[Any]], Index | ndarray[tuple[Any, ...], dtype[Any]]]` [bad-return] ERROR pandas/core/algorithms.py:930:54-60: Argument `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `values` with type `ndarray[tuple[Any, ...], dtype[Any]]` in function `value_counts_arraylike` [bad-argument-type] ERROR pandas/core/algorithms.py:951:36-57: No matching overload found for function `pandas.core.frame.DataFrame.sort_values` called with arguments: (ascending=bool) [no-matching-overload] ERROR pandas/core/algorithms.py:954:27-37: Object of class `DatetimeArray` has no attribute `sum` Object of class `PeriodArray` has no attribute `sum` [missing-attribute] ERROR pandas/core/algorithms.py:956:12-18: Returned type `DataFrame | Series | Unknown` is not assignable to declared return type `Series` [bad-return] +ERROR pandas/core/algorithms.py:1235:25-1241:10: No matching overload found for function `pandas.core.array_algos.take.take_nd` called with arguments: (ExtensionArray | Index | NumpyExtensionArray | Series | ndarray[tuple[Any, ...], dtype[Any]], ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]], axis=int, allow_fill=Literal[True], fill_value=Unknown | None) [no-matching-overload] ERROR pandas/core/apply.py:197:52-58: Expected argument after ** to be a mapping, got: Unknown | None in function `reconstruct_func` [bad-unpacking] ERROR pandas/core/apply.py:210:12-17: `klass` may be uninitialized [unbound-name] ERROR pandas/core/apply.py:379:57-60: Argument `(BaseWindow & NDFrame) | (DataFrameGroupBy & NDFrame) | (GroupBy[Unknown] & NDFrame) | (NDFrame & Resampler) | (NDFrame & SeriesGroupBy) | DataFrame | Series` is not assignable to parameter `obj` with type `DataFrame | Series` in function `Apply.normalize_dictlike_arg` [bad-argument-type] @@ -91,8 +93,10 @@ ERROR pandas/core/apply.py:1152:42-45: Argument `object` is not assignable to pa ERROR pandas/core/apply.py:1477:5-8: Class member `SeriesApply.obj` overrides parent class `NDFrameApply` in an inconsistent manner [bad-override] ERROR pandas/core/apply.py:1589:5-8: Class member `GroupByApply.obj` overrides parent class `Apply` in an inconsistent manner [bad-override] ERROR pandas/core/apply.py:1684:5-8: Class member `ResamplerWindowApply.obj` overrides parent class `GroupByApply` in an inconsistent manner [bad-override] -ERROR pandas/core/apply.py:1794:12-44: Returned type `tuple[bool, ((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[((...) -> Unknown) | str] | str] | MutableMapping[Hashable, list[((...) -> Unknown) | str]] | list[((...) -> Unknown) | str] | str, tuple[str, ...] | None, ndarray[tuple[Any, ...], dtype[signedinteger[_32Bit | _64Bit]]] | None]` is not assignable to declared return type `tuple[bool, ((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[((...) -> Unknown) | str] | str] | list[((...) -> Unknown) | str] | str, tuple[str, ...] | None, ndarray[tuple[Any, ...], dtype[signedinteger[_32Bit | _64Bit]]] | None]` [bad-return] -ERROR pandas/core/apply.py:2000:49-53: Argument `((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[((...) -> Unknown) | str] | str] | list[((...) -> Unknown) | str] | str` is not assignable to parameter `func` with type `dict[str, list[((...) -> Unknown) | str]]` in function `relabel_result` [bad-argument-type] +ERROR pandas/core/apply.py:1794:12-44: Returned type `tuple[bool, ((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[AggFuncTypeBase] | str] | MutableMapping[Hashable, list[AggFuncTypeBase]] | list[AggFuncTypeBase] | str, tuple[str, ...] | None, ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]] | None]` is not assignable to declared return type `tuple[bool, AggFuncType, tuple[str, ...] | None, ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]] | None]` [bad-return] +ERROR pandas/core/apply.py:2000:49-53: Argument `((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[AggFuncTypeBase] | str] | list[AggFuncTypeBase] | str` is not assignable to parameter `func` with type `dict[str, list[((...) -> Unknown) | str]]` in function `relabel_result` [bad-argument-type] +ERROR pandas/core/array_algos/quantile.py:145:23-152:6: No matching overload found for function `numpy.lib._function_base_impl.quantile` called with arguments: (ndarray[tuple[Any, ...], dtype[Any]], ndarray[tuple[Any, ...], dtype[float64]], method=str) [no-matching-overload] +ERROR pandas/core/array_algos/quantile.py:218:27-226:10: No matching overload found for function `numpy.lib._function_base_impl.quantile` called with arguments: (ndarray[tuple[Any, ...], dtype[Any]], ndarray[tuple[Any, ...], dtype[float64]], axis=Literal[1], method=str) [no-matching-overload] ERROR pandas/core/array_algos/take.py:244:8-12: `func` may be uninitialized [unbound-name] ERROR pandas/core/array_algos/take.py:245:16-20: `func` may be uninitialized [unbound-name] ERROR pandas/core/array_algos/take.py:258:8-12: `func` may be uninitialized [unbound-name] @@ -359,6 +363,7 @@ ERROR pandas/core/arrays/arrow/array.py:3084:18-35: No attribute `floor_temporal ERROR pandas/core/arrays/arrow/array.py:3088:18-29: No attribute `strftime` in module `pyarrow.compute` [missing-attribute] ERROR pandas/core/arrays/arrow/array.py:3156:18-29: No attribute `strftime` in module `pyarrow.compute` [missing-attribute] ERROR pandas/core/arrays/arrow/array.py:3162:18-29: No attribute `strftime` in module `pyarrow.compute` [missing-attribute] +ERROR pandas/core/arrays/arrow/array.py:3190:14-3193:10: No matching overload found for function `dict.get` called with arguments: (Literal['NaT', 'raise', 'shift_backward', 'shift_forward'] | timedelta, None) [no-matching-overload] ERROR pandas/core/arrays/arrow/array.py:3197:22-40: No attribute `local_timestamp` in module `pyarrow.compute` [missing-attribute] ERROR pandas/core/arrays/arrow/array.py:3199:22-40: No attribute `assume_timezone` in module `pyarrow.compute` [missing-attribute] ERROR pandas/core/arrays/arrow/extension_types.py:171:5-30: No attribute `_hotfix_installed` in module `pyarrow` [missing-attribute] @@ -447,7 +452,7 @@ ERROR pandas/core/arrays/interval.py:401:35-68: Object of class `ExtensionArray` Object of class `ndarray` has no attribute `_ensure_matching_resos` [missing-attribute] ERROR pandas/core/arrays/interval.py:417:21-56: Object of class `ExtensionArray` has no attribute `base` [missing-attribute] ERROR pandas/core/arrays/interval.py:419:21-56: Object of class `ExtensionArray` has no attribute `base` [missing-attribute] -ERROR pandas/core/arrays/interval.py:438:16-34: Returned type `tuple[ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]], ArrowExtensionArray | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]], IntervalDtype]` is not assignable to declared return type `tuple[DatetimeArray | TimedeltaArray | ndarray[tuple[Any, ...], dtype[Any]], DatetimeArray | TimedeltaArray | ndarray[tuple[Any, ...], dtype[Any]], IntervalDtype]` [bad-return] +ERROR pandas/core/arrays/interval.py:438:16-34: Returned type `tuple[ArrayLike, ArrowExtensionArray | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]], IntervalDtype]` is not assignable to declared return type `tuple[IntervalSide, IntervalSide, IntervalDtype]` [bad-return] ERROR pandas/core/arrays/interval.py:826:9-20: Class member `IntervalArray.__getitem__` overrides parent class `ExtensionArray` in an inconsistent manner [bad-param-name-override] ERROR pandas/core/arrays/interval.py:841:20-24: Argument `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `a` with type `_Buffer | _NestedSequence[bytes | complex | str] | _NestedSequence[_SupportsArray[dtype[Any]]] | _SupportsArray[dtype[Any]] | bytes | complex | str` in function `numpy._core.fromnumeric.ndim` [bad-argument-type] ERROR pandas/core/arrays/interval.py:887:27-43: Object of class `ExtensionArray` has no attribute `categories` [missing-attribute] @@ -507,11 +512,12 @@ ERROR pandas/core/arrays/sparse/accessor.py:430:34-53: Object of class `NoneType ERROR pandas/core/arrays/sparse/accessor.py:435:40-58: Object of class `NoneType` has no attribute `items` [missing-attribute] ERROR pandas/core/arrays/sparse/accessor.py:446:67-85: Object of class `NoneType` has no attribute `shape` [missing-attribute] ERROR pandas/core/arrays/sparse/accessor.py:464:62-80: Object of class `NoneType` has no attribute `items` [missing-attribute] +ERROR pandas/core/arrays/sparse/array.py:464:39-467:14: No matching overload found for function `numpy._core.multiarray.asarray` called with arguments: (ndarray[tuple[Any, ...], dtype[Any]], dtype=ExtensionDtype | dtype[object_ | Any] | dtype[Any] | None) [no-matching-overload] ERROR pandas/core/arrays/sparse/array.py:514:9-26: Object of class `object` has no attribute `_sparse_index` [missing-attribute] ERROR pandas/core/arrays/sparse/array.py:515:9-27: Object of class `object` has no attribute `_sparse_values` [missing-attribute] ERROR pandas/core/arrays/sparse/array.py:516:9-19: Object of class `object` has no attribute `_dtype` [missing-attribute] ERROR pandas/core/arrays/sparse/array.py:517:16-19: Returned type `object` is not assignable to declared return type `Self@SparseArray` [bad-return] -ERROR pandas/core/arrays/sparse/array.py:844:34-44: Argument `object | Unknown | None` is not assignable to parameter `*arrays_and_dtypes` with type `_Buffer | _NestedSequence[bytes | complex | str] | _NestedSequence[_SupportsArray[dtype[Any]]] | _SupportsArray[dtype[Any]] | _SupportsDType[dtype[Any]] | bytes | complex | dtype[Any] | list[Any] | str | TypedDict[_DTypeDict] | tuple[Any, Any] | type[Any] | None` in function `numpy._core.multiarray.result_type` [bad-argument-type] +ERROR pandas/core/arrays/sparse/array.py:844:34-44: Argument `object | Unknown | None` is not assignable to parameter `*arrays_and_dtypes` with type `_Buffer | _NestedSequence[bytes | complex | str] | _NestedSequence[_SupportsArray[dtype[Any]]] | _SupportsArray[dtype[Any]] | _SupportsDType[dtype[Any]] | bytes | complex | dtype[Any] | list[Any] | str | _DTypeDict | tuple[Any, Any] | type[Any] | None` in function `numpy._core.multiarray.result_type` [bad-argument-type] ERROR pandas/core/arrays/sparse/array.py:948:16-24: Object of class `ExtensionArray` has no attribute `any` [missing-attribute] ERROR pandas/core/arrays/sparse/array.py:949:17-29: Cannot index into `ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]]` [bad-index] ERROR pandas/core/arrays/sparse/array.py:949:17-29: Cannot set item in `ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]]` [unsupported-operation] @@ -577,7 +583,7 @@ ERROR pandas/core/computation/align.py:210:20-23: Expected 0 positional argument ERROR pandas/core/computation/align.py:210:25-30: Unexpected keyword argument `dtype` in function `object.__init__` [unexpected-keyword] ERROR pandas/core/computation/align.py:210:38-42: Unexpected keyword argument `name` in function `object.__init__` [unexpected-keyword] ERROR pandas/core/computation/eval.py:175:35-38: `msg` may be uninitialized [unbound-name] -ERROR pandas/core/computation/expr.py:172:9-173:41: Argument `Generator[object, None, None]` is not assignable to parameter `iterable` with type `Iterable[Sequence[int | str | tuple[int, int]] | TokenInfo]` in function `tokenize.untokenize` [bad-argument-type] +ERROR pandas/core/computation/expr.py:172:9-173:41: Argument `Generator[object, None, None]` is not assignable to parameter `iterable` with type `Iterable[_Token]` in function `tokenize.untokenize` [bad-argument-type] ERROR pandas/core/computation/expr.py:241:22-250:18: `-` is not supported between `UnionType` and `frozenset[str]` [unsupported-operation] ERROR pandas/core/computation/expr.py:241:22-250:18: `-` is not supported between `type` and `frozenset[str]` [unsupported-operation] ERROR pandas/core/computation/expr.py:635:25-60: `str | Any | Unknown` is not assignable to attribute `assigner` with type `None` [bad-assignment] @@ -607,13 +613,14 @@ ERROR pandas/core/dtypes/cast.py:407:16-36: Returned type `ndarray[tuple[Any, .. ERROR pandas/core/dtypes/cast.py:409:16-37: Returned type `ndarray[tuple[Any, ...], dtype[unsignedinteger[_64Bit]]] | Unknown` is not assignable to declared return type `NumpyIndexT` [bad-return] ERROR pandas/core/dtypes/cast.py:411:16-38: Returned type `ndarray[tuple[Any, ...], dtype[float64]] | Unknown` is not assignable to declared return type `NumpyIndexT` [bad-return] ERROR pandas/core/dtypes/cast.py:500:42-46: Argument `float | Unknown | None` is not assignable to parameter `dtype` with type `_SupportsDType[dtype[datetime64[date | int | None]]] | _SupportsDType[dtype[timedelta64[int | timedelta | None]]] | dtype[datetime64[date | int | None]] | dtype[timedelta64[int | timedelta | None]] | str | type[datetime64[date | int | None]] | type[timedelta64[int | timedelta | None]]` in function `numpy._core.multiarray.datetime_data` [bad-argument-type] +ERROR pandas/core/dtypes/cast.py:866:25-869:6: `-` is not supported between `set[DtypeObj]` and `set[type[bytes_] | type[str_]]` [unsupported-operation] ERROR pandas/core/dtypes/common.py:1681:28-45: Object of class `type` has no attribute `type` [missing-attribute] ERROR pandas/core/dtypes/dtypes.py:329:35-47: Object of class `NoneType` has no attribute `dtype` [missing-attribute] ERROR pandas/core/dtypes/dtypes.py:343:21-33: Object of class `NoneType` has no attribute `dtype` [missing-attribute] ERROR pandas/core/dtypes/dtypes.py:344:17-29: Object of class `NoneType` has no attribute `dtype` [missing-attribute] ERROR pandas/core/dtypes/dtypes.py:651:16-32: Returned type `Index | None` is not assignable to declared return type `Index` [bad-return] ERROR pandas/core/dtypes/dtypes.py:806:43-45: Argument `tzinfo | None` is not assignable to parameter `tz` with type `tzinfo` in function `pandas._libs.tslibs.timezones.tz_standardize` [bad-argument-type] -ERROR pandas/core/dtypes/dtypes.py:972:30-88: No matching overload found for function `numpy._core.fromnumeric.amax` called with arguments: (list[ExtensionDtype | dtype[Any]]) [no-matching-overload] +ERROR pandas/core/dtypes/dtypes.py:972:30-88: No matching overload found for function `numpy._core.fromnumeric.amax` called with arguments: (list[DtypeObj]) [no-matching-overload] ERROR pandas/core/dtypes/dtypes.py:1063:26-49: Object of class `BaseOffset` has no attribute `_period_dtype_code` [missing-attribute] ERROR pandas/core/dtypes/dtypes.py:1066:9-16: Object of class `PeriodDtypeBase` has no attribute `_freq` [missing-attribute] ERROR pandas/core/dtypes/dtypes.py:1067:16-17: Returned type `PeriodDtypeBase` is not assignable to declared return type `PeriodDtype` [bad-return] @@ -627,6 +634,7 @@ ERROR pandas/core/frame.py:1678:17-21: Expected string literal "itertuple" [inva ERROR pandas/core/frame.py:2055:9-16: Overload return type `dict[Unknown, Unknown]` is not assignable to implementation return type `list[type[dict[Unknown, Unknown]]] | type[dict[Unknown, Unknown]]` [inconsistent-overload] ERROR pandas/core/frame.py:2064:9-16: Overload return type `list[dict[Unknown, Unknown]]` is not assignable to implementation return type `list[type[dict[Unknown, Unknown]]] | type[dict[Unknown, Unknown]]` [inconsistent-overload] ERROR pandas/core/frame.py:2185:16-61: Returned type `MutableMapping[Unknown, Unknown] | list[MutableMappingT]` is not assignable to declared return type `list[MutableMappingT] | MutableMappingT` [bad-return] +ERROR pandas/core/frame.py:2358:62-2361:26: No matching overload found for function `pandas._libs.lib.maybe_convert_objects` called with arguments: (ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]], try_float=Literal[True]) [no-matching-overload] ERROR pandas/core/frame.py:2541:20-41: `in` is not supported between `Hashable` and `None` [not-iterable] ERROR pandas/core/frame.py:2541:20-41: `in` is not supported between `str` and `None` [not-iterable] ERROR pandas/core/frame.py:2541:20-41: `in` is not supported between `Unknown` and `None` [not-iterable] @@ -642,7 +650,7 @@ ERROR pandas/core/frame.py:7245:9-20: Class member `DataFrame.sort_values` overr ERROR pandas/core/frame.py:10189:37-42: Argument `list[Hashable]` is not assignable to parameter `level` with type `list[int]` in function `pandas.core.reshape.reshape.stack_v3` [bad-argument-type] ERROR pandas/core/frame.py:10624:42-49: Argument `int | integer[Any]` is not assignable to parameter `periods` with type `Sequence[int] | int` in function `DataFrame.shift` [bad-argument-type] ERROR pandas/core/frame.py:10628:37-44: Argument `int | integer[Any]` is not assignable to parameter `n` with type `int` in function `pandas.core.internals.managers.BaseBlockManager.diff` [bad-argument-type] -ERROR pandas/core/frame.py:10732:37-41: Argument `Unknown | None` is not assignable to parameter `func` with type `((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[((...) -> Unknown) | str] | str] | list[((...) -> Unknown) | str] | str` in function `pandas.core.apply.frame_apply` [bad-argument-type] +ERROR pandas/core/frame.py:10732:37-41: Argument `Unknown | None` is not assignable to parameter `func` with type `((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[AggFuncTypeBase] | str] | list[AggFuncTypeBase] | str` in function `pandas.core.apply.frame_apply` [bad-argument-type] ERROR pandas/core/frame.py:11426:20-26: Returned type `DataFrame | Series` is not assignable to declared return type `DataFrame` [bad-return] ERROR pandas/core/frame.py:12132:24-35: Object of class `ndarray` has no attribute `_reduce` [missing-attribute] ERROR pandas/core/frame.py:12227:9-12: Class member `DataFrame.any` overrides parent class `NDFrame` in an inconsistent manner [bad-override] @@ -663,6 +671,7 @@ ERROR pandas/core/frame.py:13335:9-15: Class member `DataFrame.cumsum` overrides ERROR pandas/core/frame.py:13344:16-67: Returned type `NDFrame` is not assignable to declared return type `Self@DataFrame` [bad-return] ERROR pandas/core/frame.py:13347:9-16: Class member `DataFrame.cumprod` overrides parent class `NDFrame` in an inconsistent manner [bad-override] ERROR pandas/core/frame.py:13356:16-68: Returned type `NDFrame` is not assignable to declared return type `Self@DataFrame` [bad-return] +ERROR pandas/core/frame.py:13843:35-13849:14: No matching overload found for function `DataFrame.quantile` called with arguments: (list[ExtensionArray | Index | Sequence[float] | Series | float | ndarray[tuple[Any, ...], dtype[Any]]], axis=int, numeric_only=bool, interpolation=Literal['higher', 'linear', 'lower', 'midpoint', 'nearest'], method=Literal['single', 'table']) [no-matching-overload] ERROR pandas/core/frame.py:13917:45-48: `res` may be uninitialized [unbound-name] ERROR pandas/core/frame.py:13917:55-58: `res` may be uninitialized [unbound-name] ERROR pandas/core/frame.py:14223:5-22: Class member `DataFrame._info_axis_number` overrides parent class `NDFrame` in an inconsistent manner [bad-override] @@ -687,8 +696,9 @@ ERROR pandas/core/generic.py:7655:30-40: Argument `Unknown | None` is not assign ERROR pandas/core/generic.py:7658:27-32: Argument `builtins.bool | numpy.bool[builtins.bool]` is not assignable to parameter `regex` with type `builtins.bool` in function `pandas.core.internals.managers.BaseBlockManager.replace_list` [bad-argument-type] ERROR pandas/core/generic.py:7686:46-51: Argument `builtins.bool | numpy.bool[builtins.bool]` is not assignable to parameter `regex` with type `builtins.bool` in function `pandas.core.array_algos.replace.should_use_regex` [bad-argument-type] WARN pandas/core/generic.py:8122:28-44: Redundant cast: `Series` is the same type as `Series` [redundant-cast] +ERROR pandas/core/generic.py:9489:22-9493:10: No matching overload found for function `pandas.core.reshape.concat.concat` called with arguments: (list[NDFrame | Unknown | Self@NDFrame], axis=int | Unknown, keys=tuple[*Sequence[str | None]]) [no-matching-overload] ERROR pandas/core/generic.py:9956:64-72: `res_cols` may be uninitialized [unbound-name] -ERROR pandas/core/groupby/generic.py:1133:17-22: Argument `list[ndarray[tuple[int], dtype[Unknown]] | ndarray[tuple[Any, ...], dtype[Any]] | ndarray[tuple[Any, ...], dtype[Unknown]]]` is not assignable to parameter `right_keys` with type `list[ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]]` in function `pandas.core.reshape.merge.get_join_indexers` [bad-argument-type] +ERROR pandas/core/groupby/generic.py:1133:17-22: Argument `list[ndarray[tuple[int], dtype[Unknown]] | ndarray[tuple[Any, ...], dtype[Any]] | ndarray[tuple[Any, ...], dtype[Unknown]]]` is not assignable to parameter `right_keys` with type `list[ArrayLike]` in function `pandas.core.reshape.merge.get_join_indexers` [bad-argument-type] ERROR pandas/core/groupby/generic.py:2258:19-23: `path` may be uninitialized [unbound-name] ERROR pandas/core/groupby/groupby.py:712:24-49: `NDFrameT` is not subscriptable [unsupported-operation] ERROR pandas/core/groupby/groupby.py:770:24-53: No matching overload found for function `pandas.core.common.pipe` called with arguments: (Self@BaseGroupBy, ((Self@BaseGroupBy, ParamSpec(P)) -> T) | tuple[(...) -> T, str], *tuple[Any, ...], **dict[str, Any]) [no-matching-overload] @@ -703,7 +713,7 @@ ERROR pandas/core/groupby/grouper.py:369:28-36: `NDFrameT` is not subscriptable ERROR pandas/core/groupby/grouper.py:656:47-54: `na_code` may be uninitialized [unbound-name] ERROR pandas/core/groupby/grouper.py:657:34-41: `na_mask` may be uninitialized [unbound-name] ERROR pandas/core/groupby/grouper.py:657:43-50: `na_code` may be uninitialized [unbound-name] -ERROR pandas/core/groupby/grouper.py:678:16-30: Returned type `tuple[ndarray[tuple[Any, ...], dtype[signedinteger[_32Bit | _64Bit]]] | ndarray[tuple[Any, ...], dtype[Any]], ExtensionArray | Index | ndarray[tuple[Any, ...], dtype[Any]]]` is not assignable to declared return type `tuple[ndarray[tuple[Any, ...], dtype[signedinteger[Any]]], ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]]` [bad-return] +ERROR pandas/core/groupby/grouper.py:678:16-30: Returned type `tuple[ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]] | ndarray[tuple[Any, ...], dtype[Any]], ExtensionArray | Index | ndarray[tuple[Any, ...], dtype[Any]]]` is not assignable to declared return type `tuple[ndarray[tuple[Any, ...], dtype[signedinteger[Any]]], ArrayLike]` [bad-return] ERROR pandas/core/groupby/grouper.py:871:30-43: `NDFrameT` is not subscriptable [unsupported-operation] ERROR pandas/core/groupby/grouper.py:881:28-36: Object of class `NoneType` has no attribute `name` [missing-attribute] ERROR pandas/core/groupby/grouper.py:886:57-60: Argument `Index | Unknown | None` is not assignable to parameter `key` with type `Hashable` in function `pandas.core.generic.NDFrame._check_label_or_level_ambiguity` [bad-argument-type] @@ -733,7 +743,7 @@ ERROR pandas/core/indexes/base.py:667:13-31: Object of class `object` has no att ERROR pandas/core/indexes/base.py:668:9-27: Object of class `object` has no attribute `_references` [missing-attribute] ERROR pandas/core/indexes/base.py:670:16-22: Returned type `object` is not assignable to declared return type `Self@Index` [bad-return] ERROR pandas/core/indexes/base.py:972:20-26: Argument `object` is not assignable to parameter `a` with type `_Buffer | _NestedSequence[bytes | complex | str] | _NestedSequence[_SupportsArray[dtype[Any]]] | _SupportsArray[dtype[Any]] | bytes | complex | str` in function `numpy._core.fromnumeric.ndim` [bad-argument-type] -ERROR pandas/core/indexes/base.py:1359:42-49: Argument `ndarray[tuple[Any, ...], dtype[signedinteger[_32Bit | _64Bit]]]` is not assignable to parameter `repeats` with type `Sequence[int] | int` in function `pandas.core.arrays.base.ExtensionArray.repeat` [bad-argument-type] +ERROR pandas/core/indexes/base.py:1359:42-49: Argument `ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]]` is not assignable to parameter `repeats` with type `Sequence[int] | int` in function `pandas.core.arrays.base.ExtensionArray.repeat` [bad-argument-type] ERROR pandas/core/indexes/base.py:1831:16-25: Argument `list[Unknown | None] | Unknown | None` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type] ERROR pandas/core/indexes/base.py:1833:75-84: Argument `list[Unknown | None] | Unknown | None` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type] ERROR pandas/core/indexes/base.py:1837:31-41: Type `None` is not iterable [not-iterable] @@ -758,6 +768,7 @@ ERROR pandas/core/indexes/base.py:4902:16-26: `join_index` may be uninitialized ERROR pandas/core/indexes/base.py:5299:23-35: Object of class `object` has no attribute `to_numpy` [missing-attribute] ERROR pandas/core/indexes/base.py:5310:25-30: No matching overload found for function `pandas.core.arrays.base.ExtensionArray.__getitem__` called with arguments: (ndarray[tuple[Any, ...], dtype[Any]] | object | Unknown) [no-matching-overload] ERROR pandas/core/indexes/base.py:5310:25-30: No matching overload found for function `numpy.ndarray.__getitem__` called with arguments: (ndarray[tuple[Any, ...], dtype[Any]] | object | Unknown) [no-matching-overload] +ERROR pandas/core/indexes/base.py:5745:47-5748:10: No matching overload found for function `numpy.ndarray.searchsorted` called with arguments: (ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]], side=Literal['right']) [no-matching-overload] ERROR pandas/core/indexes/base.py:6135:64-74: Argument `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Unknown` is not assignable to parameter `targets` with type `ndarray[tuple[Any, ...], dtype[Any]]` in function `pandas._libs.index.ExtensionEngine.get_indexer_non_unique` [bad-argument-type] ERROR pandas/core/indexes/base.py:6135:64-74: Argument `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Unknown` is not assignable to parameter `targets` with type `ndarray[tuple[Any, ...], dtype[Any]]` in function `pandas._libs.index.IndexEngine.get_indexer_non_unique` [bad-argument-type] ERROR pandas/core/indexes/category.py:186:5-10: Class member `CategoricalIndex._data` overrides parent class `NDArrayBackedExtensionIndex` in an inconsistent manner [bad-override] @@ -789,7 +800,7 @@ ERROR pandas/core/indexes/datetimes.py:579:16-28: Returned type `tuple[NaTType | ERROR pandas/core/indexes/extension.py:147:5-10: Class member `ExtensionIndex._data` overrides parent class `Index` in an inconsistent manner [bad-override] ERROR pandas/core/indexes/extension.py:169:5-10: Class member `NDArrayBackedExtensionIndex._data` overrides parent class `ExtensionIndex` in an inconsistent manner [bad-override] ERROR pandas/core/indexes/interval.py:242:5-10: Class member `IntervalIndex._data` overrides parent class `ExtensionIndex` in an inconsistent manner [bad-override] -ERROR pandas/core/indexes/interval.py:807:20-33: Returned type `signedinteger[_32Bit | _64Bit] | Unknown` is not assignable to declared return type `int | ndarray[tuple[Any, ...], dtype[Any]] | slice[Any, Any, Any]` [bad-return] +ERROR pandas/core/indexes/interval.py:807:20-33: Returned type `signedinteger[_NBitIntP] | Unknown` is not assignable to declared return type `int | ndarray[tuple[Any, ...], dtype[Any]] | slice[Any, Any, Any]` [bad-return] ERROR pandas/core/indexes/interval.py:1375:36-41: Argument `Unknown | None` is not assignable to parameter `value` with type `Interval[Unknown] | Timedelta | Timestamp | bool | bytes | complex | complexfloating[Any, Unknown] | date | datetime | datetime64[date | int | None] | float | floating[Any] | int | integer[Any] | str | timedelta | timedelta64[int | timedelta | None]` in function `pandas.core.dtypes.cast.maybe_box_datetimelike` [bad-argument-type] ERROR pandas/core/indexes/interval.py:1376:34-37: Argument `Unknown | None` is not assignable to parameter `value` with type `Interval[Unknown] | Timedelta | Timestamp | bool | bytes | complex | complexfloating[Any, Unknown] | date | datetime | datetime64[date | int | None] | float | floating[Any] | int | integer[Any] | str | timedelta | timedelta64[int | timedelta | None]` in function `pandas.core.dtypes.cast.maybe_box_datetimelike` [bad-argument-type] ERROR pandas/core/indexes/interval.py:1397:29-35: No matching overload found for function `pandas._libs.tslibs.offsets.to_offset` called with arguments: (Literal['D', 1] | Unknown) [no-matching-overload] @@ -1071,6 +1082,7 @@ ERROR pandas/core/indexes/multi.py:1589:9-19: Class member `MultiIndex._set_name ERROR pandas/core/indexes/multi.py:1616:21-28: No matching overload found for function `list.__init__` called with arguments: (Unknown | None) [no-matching-overload] ERROR pandas/core/indexes/multi.py:1707:16-21: Returned type `int | integer[Any] | Unknown` is not assignable to declared return type `int` [bad-return] ERROR pandas/core/indexes/multi.py:2859:9-18: Class member `MultiIndex.sortlevel` overrides parent class `Index` in an inconsistent manner [bad-override] +ERROR pandas/core/indexes/multi.py:3184:9-3223:75: `Literal[0] | ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]] | signedinteger[_NBitIntP] | Any` is not assignable to `int` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR pandas/core/indexes/multi.py:3434:50-55: Argument `int | list[Hashable]` is not assignable to parameter `level` with type `int | list[int]` in function `MultiIndex._get_loc_level` [bad-argument-type] ERROR pandas/core/indexes/multi.py:3539:17-3568:43: `ndarray[tuple[int], dtype[Any]] | Unknown | None` is not assignable to `None` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR pandas/core/indexes/multi.py:4048:22-66: Illegal `super(type[MultiIndex], Index)` call: `Index` is not an instance or subclass of `type[MultiIndex]` [invalid-super-call] @@ -1129,6 +1141,7 @@ ERROR pandas/core/interchange/column.py:174:17-31: Object of class `str` has no ERROR pandas/core/internals/api.py:82:5-11: Class member `_DatetimeTZBlock.values` overrides parent class `DatetimeLikeBlock` in an inconsistent manner [bad-override] ERROR pandas/core/internals/api.py:113:57-61: Argument `Unknown | None` is not assignable to parameter `ndim` with type `int` in function `pandas.core.internals.blocks.extract_pandas_array` [bad-argument-type] ERROR pandas/core/internals/api.py:133:13-19: Argument `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `values` with type `ndarray[tuple[Any, ...], dtype[datetime64[date | int | None]]]` in function `pandas.core.arrays.datetimes.DatetimeArray._simple_new` [bad-argument-type] +ERROR pandas/core/internals/blocks.py:509:47-512:10: No matching overload found for function `pandas._libs.lib.maybe_convert_objects` called with arguments: (ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Any, convert_non_numeric=Literal[True]) [no-matching-overload] ERROR pandas/core/internals/blocks.py:1204:29-46: Cannot index into `ExtensionArray` [bad-index] ERROR pandas/core/internals/blocks.py:1339:13-17: `mask` may be uninitialized [unbound-name] ERROR pandas/core/internals/blocks.py:1339:18-22: `mask` may be uninitialized [unbound-name] @@ -1144,8 +1157,8 @@ ERROR pandas/core/internals/construction.py:286:39-45: Argument `ExtensionArray ERROR pandas/core/internals/construction.py:628:34-39: `index` may be uninitialized [unbound-name] ERROR pandas/core/internals/construction.py:631:35-40: `index` may be uninitialized [unbound-name] ERROR pandas/core/internals/construction.py:637:25-30: `index` may be uninitialized [unbound-name] -ERROR pandas/core/internals/construction.py:768:24-39: Returned type `tuple[list[ndarray[tuple[Any, ...], dtype[Any]]], Index]` is not assignable to declared return type `tuple[list[ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]], Index]` [bad-return] -ERROR pandas/core/internals/construction.py:776:16-31: Returned type `tuple[list[ndarray[tuple[Any, ...], dtype[Any]]], Index]` is not assignable to declared return type `tuple[list[ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]], Index]` [bad-return] +ERROR pandas/core/internals/construction.py:768:24-39: Returned type `tuple[list[ndarray[tuple[Any, ...], dtype[Any]]], Index]` is not assignable to declared return type `tuple[list[ArrayLike], Index]` [bad-return] +ERROR pandas/core/internals/construction.py:776:16-31: Returned type `tuple[list[ndarray[tuple[Any, ...], dtype[Any]]], Index]` is not assignable to declared return type `tuple[list[ArrayLike], Index]` [bad-return] ERROR pandas/core/internals/construction.py:787:31-35: Argument `list[tuple[@_, ...]]` is not assignable to parameter `data` with type `list[list[Unknown] | tuple[Unknown, ...]]` in function `_list_to_arrays` [bad-argument-type] ERROR pandas/core/internals/construction.py:829:31-66: Argument `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `object` with type `_NestedSequence[_SupportsArray[dtype[Any]]] | _SupportsArray[dtype[Any]]` in function `list.append` [bad-argument-type] ERROR pandas/core/internals/construction.py:992:52-1000:22: No matching overload found for function `pandas._libs.lib.maybe_convert_objects` called with arguments: (ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]], convert_numeric=Literal[False], convert_non_numeric=Literal[True], convert_to_nullable_dtype=bool, dtype_if_all_nat=dtype[datetime64[date | int | None]]) [no-matching-overload] @@ -1161,22 +1174,21 @@ ERROR pandas/core/methods/to_dict.py:76:5-12: Overload return type `dict[Unknown ERROR pandas/core/methods/to_dict.py:86:5-12: Overload return type `list[dict[Unknown, Unknown]]` is not assignable to implementation return type `list[type[dict[Unknown, Unknown]]] | type[dict[Unknown, Unknown]]` [inconsistent-overload] ERROR pandas/core/missing.py:269:26-32: `idxpos` may be uninitialized [unbound-name] ERROR pandas/core/missing.py:608:24-28: Argument `str | Unknown | None` is not assignable to parameter `kind` with type `Literal['cubic', 'linear', 'nearest', 'nearest-up', 'next', 'previous', 'quadratic', 'slinear', 'zero'] | int` in function `scipy.interpolate._interpolate.interp1d.__init__` [bad-argument-type] -ERROR pandas/core/missing.py:608:41-51: Argument `Unknown | None` is not assignable to parameter `fill_value` with type `Literal['extrapolate'] | SequenceND[_CanArray[numpy.bool[builtins.bool] | floating[Any] | integer[Any]] | float] | _CanArrayND[numpy.bool[builtins.bool] | floating[Any] | integer[Any]] | numpy.bool[builtins.bool] | float | floating[Any] | integer[Any] | tuple[SequenceND[_CanArray[numpy.bool[builtins.bool] | floating[Any] | integer[Any]] | float] | _CanArrayND[numpy.bool[builtins.bool] | floating[Any] | integer[Any]] | numpy.bool[builtins.bool] | float | floating[Any] | integer[Any], SequenceND[_CanArray[numpy.bool[builtins.bool] | floating[Any] | integer[Any]] | float] | _CanArrayND[numpy.bool[builtins.bool] | floating[Any] | integer[Any]] | numpy.bool[builtins.bool] | float | floating[Any] | integer[Any]]` in function `scipy.interpolate._interpolate.interp1d.__init__` [bad-argument-type] +ERROR pandas/core/missing.py:608:41-51: Argument `Unknown | None` is not assignable to parameter `fill_value` with type `Literal['extrapolate'] | SequenceND[_CanArray[floating_co] | float] | _CanArrayND[floating_co] | numpy.bool[builtins.bool] | float | floating[Any] | integer[Any] | tuple[SequenceND[_CanArray[floating_co] | float] | _CanArrayND[floating_co] | numpy.bool[builtins.bool] | float | floating[Any] | integer[Any], SequenceND[_CanArray[floating_co] | float] | _CanArrayND[floating_co] | numpy.bool[builtins.bool] | float | floating[Any] | integer[Any]]` in function `scipy.interpolate._interpolate.interp1d.__init__` [bad-argument-type] ERROR pandas/core/missing.py:613:28-38: `<=` is not supported between `None` and `Literal[0]` [unsupported-operation] ERROR pandas/core/missing.py:617:53-58: Argument `Unknown | None` is not assignable to parameter `k` with type `Literal[1, 2, 3, 4, 5]` in function `scipy.interpolate._fitpack2.UnivariateSpline.__init__` [bad-argument-type] ERROR pandas/core/nanops.py:140:30-37: Expected a callable, got `None` [not-callable] ERROR pandas/core/nanops.py:1525:12-24: Object of class `int` has no attribute `astype` [missing-attribute] ERROR pandas/core/ops/array_ops.py:126:48-57: Argument `ExtensionArray | ndarray[tuple[int], dtype[object_]] | ndarray[tuple[int], dtype[Any]] | Unknown` is not assignable to parameter `right` with type `ndarray[tuple[Any, ...], dtype[object_]]` in function `pandas._libs.ops.vec_compare` [bad-argument-type] ERROR pandas/core/ops/array_ops.py:340:44-51: Argument `ndarray[tuple[Any, ...], dtype[Any]] | object` is not assignable to parameter `right` with type `ExtensionArray | Interval[Unknown] | Timedelta | Timestamp | bool | bytes | complex | complexfloating[Any, Unknown] | date | datetime | datetime64[date | int | None] | float | floating[Any] | int | integer[Any] | list[Unknown] | ndarray[tuple[Any, ...], dtype[Any]] | str | timedelta | timedelta64[int | timedelta | None]` in function `pandas.core.ops.invalid.invalid_comparison` [bad-argument-type] -ERROR pandas/core/ops/mask_ops.py:79:12-24: Returned type `tuple[ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | ndarray[tuple[Any, ...], dtype[Any]] | Unknown, ndarray[tuple[Any, ...], dtype[Any]] | Unknown | mask]` is not assignable to declared return type `tuple[ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]], ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]]]` [bad-return] +ERROR pandas/core/ops/mask_ops.py:79:12-24: Returned type `tuple[ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | ndarray[tuple[Any, ...], dtype[Any]] | Unknown, ndarray[tuple[Any, ...], dtype[Any]] | type[Unknown] | Unknown]` is not assignable to declared return type `tuple[ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]], ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]]]` [bad-return] ERROR pandas/core/resample.py:141:5-13: Class member `Resampler._grouper` overrides parent class `BaseGroupBy` in an inconsistent manner [bad-override] ERROR pandas/core/resample.py:341:28-51: No matching overload found for function `pandas.core.groupby.groupby.BaseGroupBy.pipe` called with arguments: (((Self@Resampler, ParamSpec(P)) -> T) | tuple[(...) -> T, str], *tuple[Any, ...], **dict[str, Any]) [no-matching-overload] -ERROR pandas/core/resample.py:442:45-49: Argument `Unknown | None` is not assignable to parameter `func` with type `((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[((...) -> Unknown) | str] | str] | list[((...) -> Unknown) | str] | str` in function `pandas.core.apply.ResamplerWindowApply.__init__` [bad-argument-type] +ERROR pandas/core/resample.py:442:45-49: Argument `Unknown | None` is not assignable to parameter `func` with type `((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[AggFuncTypeBase] | str] | list[AggFuncTypeBase] | str` in function `pandas.core.apply.ResamplerWindowApply.__init__` [bad-argument-type] ERROR pandas/core/resample.py:1048:55-66: `final_index` may be uninitialized [unbound-name] ERROR pandas/core/resample.py:1051:37-48: `final_index` may be uninitialized [unbound-name] ERROR pandas/core/resample.py:2062:5-7: Class member `DatetimeIndexResampler.ax` overrides parent class `Resampler` in an inconsistent manner [bad-override] ERROR pandas/core/resample.py:2110:9-18: Class member `DatetimeIndexResampler._upsample` overrides parent class `Resampler` in an inconsistent manner [bad-param-name-override] -ERROR pandas/core/resample.py:2264:34-2268:10: No matching overload found for function `_take_new_index` called with arguments: (NDFrame, ndarray[tuple[Any, ...], dtype[signedinteger[_32Bit | _64Bit]]], DatetimeIndex | PeriodIndex | TimedeltaIndex) [no-matching-overload] ERROR pandas/core/resample.py:2477:31-48: `NaTType | Timestamp` is not assignable to attribute `origin` with type `Literal['end', 'end_day', 'epoch', 'start', 'start_day'] | Timestamp` [bad-assignment] ERROR pandas/core/resample.py:2574:31-40: Argument `Unknown | None` is not assignable to parameter `freq` with type `BaseOffset | _NoDefault | str` in function `pandas.core.indexes.datetimes.DatetimeIndex.__new__` [bad-argument-type] ERROR pandas/core/resample.py:2581:13-22: Argument `Unknown | None` is not assignable to parameter `freq` with type `BaseOffset` in function `_get_timestamp_range_edges` [bad-argument-type] @@ -1214,14 +1226,18 @@ ERROR pandas/core/reshape/merge.py:2927:32-39: Argument `ExtensionArray | ndarra ERROR pandas/core/reshape/merge.py:2928:32-39: Argument `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `values` with type `ndarray[tuple[Any, ...], dtype[Any]]` in function `pandas._libs.hashtable.Factorizer.factorize` [bad-argument-type] ERROR pandas/core/reshape/pivot.py:403:30-42: `values_multi` may be uninitialized [unbound-name] ERROR pandas/core/reshape/pivot.py:592:25-34: Argument `list[Hashable | Unknown]` is not assignable to parameter `tuples` with type `Iterable[tuple[Hashable, ...]]` in function `pandas.core.indexes.multi.MultiIndex.from_tuples` [bad-argument-type] -ERROR pandas/core/reshape/tile.py:542:31-48: No matching overload found for function `pandas.core.array_algos.take.take_nd` called with arguments: (Categorical | IntervalIndex | Unknown, ndarray[tuple[Any, ...], dtype[signedinteger[_32Bit | _64Bit]]]) [no-matching-overload] +ERROR pandas/core/reshape/reshape.py:513:13-520:65: `DataFrame | Series` is not assignable to `DataFrame` (caused by inconsistent types when breaking cycles) [bad-assignment] +ERROR pandas/core/reshape/reshape.py:742:9-745:66: `DataFrame | Series` is not assignable to `DataFrame` (caused by inconsistent types when breaking cycles) [bad-assignment] +ERROR pandas/core/reshape/reshape.py:756:9-763:62: `DataFrame | Series` is not assignable to `DataFrame` (caused by inconsistent types when breaking cycles) [bad-assignment] +ERROR pandas/core/reshape/tile.py:542:31-48: No matching overload found for function `pandas.core.array_algos.take.take_nd` called with arguments: (Categorical | IntervalIndex | Unknown, ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]]) [no-matching-overload] ERROR pandas/core/series.py:353:5-12: Class member `Series.hasnans` overrides parent class `IndexOpsMixin` in an inconsistent manner [bad-override] ERROR pandas/core/series.py:358:5-9: Class member `Series._mgr` overrides parent class `NDFrame` in an inconsistent manner [bad-override] ERROR pandas/core/series.py:446:20-30: Argument `dtype[Any]` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type] ERROR pandas/core/series.py:939:9-20: Class member `Series.__getitem__` overrides parent class `NDFrame` in an inconsistent manner [bad-param-name-override] ERROR pandas/core/series.py:1561:26-54: No matching overload found for function `open` called with arguments: (PathLike[str] | WriteBuffer[str] | str, Literal['w'], encoding=Literal['utf-8']) [no-matching-overload] ERROR pandas/core/series.py:1740:9-16: Overload return type `dict[Unknown, Unknown]` is not assignable to implementation return type `type[dict[Unknown, Unknown]]` [inconsistent-overload] -ERROR pandas/core/series.py:4642:32-36: Argument `dict[str, Unknown] | Unknown` is not assignable to parameter `func` with type `((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[((...) -> Unknown) | str] | str] | list[((...) -> Unknown) | str] | str` in function `pandas.core.apply.SeriesApply.__init__` [bad-argument-type] +ERROR pandas/core/series.py:4642:32-36: Argument `dict[str, Unknown] | Unknown` is not assignable to parameter `func` with type `((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[AggFuncTypeBase] | str] | list[AggFuncTypeBase] | str` in function `pandas.core.apply.SeriesApply.__init__` [bad-argument-type] +ERROR pandas/core/series.py:5073:35-5078:14: No matching overload found for function `pandas.core.generic.NDFrame._rename` called with arguments: (((Any) -> Hashable) | ((...) -> object) | Hashable | Mapping[Any, Hashable] | None, inplace=bool, level=Hashable | None, errors=Literal['ignore', 'raise']) [no-matching-overload] ERROR pandas/core/series.py:5359:9-20: Class member `Series.rename_axis` overrides parent class `NDFrame` in an inconsistent manner [bad-override] ERROR pandas/core/series.py:6181:16-34: Returned type `NDFrame` is not assignable to declared return type `Series` [bad-return] ERROR pandas/core/series.py:6537:5-22: Class member `Series._info_axis_number` overrides parent class `NDFrame` in an inconsistent manner [bad-override] @@ -1233,7 +1249,7 @@ ERROR pandas/core/series.py:8026:16-68: Returned type `NDFrame` is not assignabl ERROR pandas/core/sorting.py:294:29-33: `lift` may be uninitialized [unbound-name] ERROR pandas/core/sorting.py:295:46-50: `lift` may be uninitialized [unbound-name] ERROR pandas/core/sorting.py:367:23-28: Argument `ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `object` with type `_NestedSequence[bytes | complex | str] | bytes | complex | str` in function `list.append` [bad-argument-type] -ERROR pandas/core/sorting.py:428:16-432:10: Returned type `Series | ndarray[tuple[Any, ...], dtype[signedinteger[_32Bit | _64Bit]]] | ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to declared return type `ndarray[tuple[Any, ...], dtype[signedinteger[_32Bit | _64Bit]]]` [bad-return] +ERROR pandas/core/sorting.py:428:16-432:10: Returned type `Series | ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]] | ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to declared return type `ndarray[tuple[Any, ...], dtype[signedinteger[_NBitIntP]]]` [bad-return] ERROR pandas/core/sorting.py:429:13-22: Unexpected keyword argument `ascending` in function `pandas.core.series.Series.argsort` [unexpected-keyword] ERROR pandas/core/sorting.py:431:13-24: Unexpected keyword argument `na_position` in function `pandas.core.series.Series.argsort` [unexpected-keyword] ERROR pandas/core/strings/accessor.py:215:27-37: `Index` is not assignable to attribute `_index` with type `None` [bad-assignment] @@ -1275,7 +1291,7 @@ ERROR pandas/core/window/numba_.py:257:18-46: Type `prange` is not iterable [not ERROR pandas/core/window/numba_.py:323:22-44: Type `prange` is not iterable [not-iterable] ERROR pandas/core/window/online.py:63:22-44: Type `prange` is not iterable [not-iterable] ERROR pandas/core/window/rolling.py:419:47-58: Argument `Unknown | None` is not assignable to parameter `window_size` with type `int` in function `pandas.core.indexers.objects.BaseIndexer.__init__` [bad-argument-type] -ERROR pandas/core/window/rolling.py:1288:45-49: Argument `Unknown | None` is not assignable to parameter `func` with type `((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[((...) -> Unknown) | str] | str] | list[((...) -> Unknown) | str] | str` in function `pandas.core.apply.ResamplerWindowApply.__init__` [bad-argument-type] +ERROR pandas/core/window/rolling.py:1288:45-49: Argument `Unknown | None` is not assignable to parameter `func` with type `((...) -> Unknown) | MutableMapping[Hashable, ((...) -> Unknown) | list[AggFuncTypeBase] | str] | list[AggFuncTypeBase] | str` in function `pandas.core.apply.ResamplerWindowApply.__init__` [bad-argument-type] ERROR pandas/core/window/rolling.py:1291:22-26: Expected a callable, got `None` [not-callable] ERROR pandas/core/window/rolling.py:1616:24-53: No matching overload found for function `pandas.core.common.pipe` called with arguments: (Self@RollingAndExpandingMixin, ((Self@RollingAndExpandingMixin, ParamSpec(P)) -> T) | tuple[(...) -> T, str], *tuple[Any, ...], **dict[str, Any]) [no-matching-overload] ERROR pandas/core/window/rolling.py:2004:37-79: `int | signedinteger[_64Bit]` is not assignable to attribute `_win_freq_i8` with type `int | None` [bad-assignment] @@ -1320,9 +1336,11 @@ ERROR pandas/io/clipboard/__init__.py:561:20-30: Could not find import of `Found ERROR pandas/io/clipboard/__init__.py:582:20-24: Could not find import of `qtpy` [missing-import] ERROR pandas/io/clipboard/__init__.py:589:28-33: Could not find import of `PyQt4` [missing-import] ERROR pandas/io/common.py:437:16-51: Expected a type form, got instance of `tuple[Any, ...]` [not-a-type] +ERROR pandas/io/common.py:770:39-776:18: No matching overload found for function `gzip.GzipFile.__init__` called with arguments: (fileobj=BaseBuffer, mode=str, **dict[str, Any]) [no-matching-overload] ERROR pandas/io/common.py:874:24-30: Argument `BZ2File | GzipFile | IO[bytes] | LZMAFile | _BytesTarFile | _BytesZipFile | Unknown` is not assignable to parameter `object` with type `BaseBuffer` in function `list.append` [bad-argument-type] ERROR pandas/io/common.py:902:54-60: Argument `BZ2File | BaseBuffer | GzipFile | IO[bytes] | IO[Any] | LZMAFile | _BytesTarFile | _BytesZipFile | Unknown` is not assignable to parameter `handle` with type `BaseBuffer | PathLike[str] | str` in function `_is_binary_mode` [bad-argument-type] ERROR pandas/io/common.py:909:33-39: Argument `BZ2File | BaseBuffer | GzipFile | IO[bytes] | IO[Any] | LZMAFile | _BytesTarFile | _BytesZipFile | Unknown` is not assignable to parameter `buffer` with type `BaseBuffer` in function `_IOWrapper.__init__` [bad-argument-type] +ERROR pandas/io/common.py:1150:13-1154:14: Argument `mmap` is not assignable to parameter `buffer` with type `BaseBuffer` in function `_IOWrapper.__init__` [bad-argument-type] ERROR pandas/io/common.py:1161:12-42: Returned type `tuple[_IOWrapper, Literal[True], list[_IOWrapper]]` is not assignable to declared return type `tuple[BaseBuffer | str, bool, list[BaseBuffer]]` [bad-return] ERROR pandas/io/excel/_base.py:493:24-34: Argument `int | list[IntStrT] | str | None` is not assignable to parameter `sheet_name` with type `int | list[int] | list[str] | str | None` in function `ExcelFile.parse` [bad-argument-type] ERROR pandas/io/excel/_base.py:496:23-32: Argument `Sequence[int] | int | str | None` is not assignable to parameter `index_col` with type `Sequence[int] | int | None` in function `ExcelFile.parse` [bad-argument-type] @@ -1345,7 +1363,6 @@ ERROR pandas/io/excel/_xlrd.py:79:9-23: Class member `XlrdReader.get_sheet_data` ERROR pandas/io/formats/excel.py:252:21-24: Argument `dict[str, dict[str, bool | float | str | None] | dict[str, bool | str | None] | dict[str, str | None] | dict[str, dict[str, str | None]] | Unknown]` is not assignable to parameter `d` with type `dict[str, str | None]` in function `remove_none` [bad-argument-type] ERROR pandas/io/formats/excel.py:253:16-19: Returned type `dict[str, dict[str, bool | float | str | None] | dict[str, bool | str | None] | dict[str, str | None] | dict[str, dict[str, str | None]] | Unknown]` is not assignable to declared return type `dict[str, dict[str, str]]` [bad-return] WARN pandas/io/formats/format.py:237:28-43: Redundant cast: `int` is the same type as `int` [redundant-cast] -ERROR pandas/io/formats/format.py:422:5-12: Class member `DataFrameFormatter.__doc__` overrides parent class `object` in an inconsistent manner [bad-override] ERROR pandas/io/formats/format.py:1052:1-16: Argument `(buf: PathLike[str] | WriteBuffer[str] | str | None, encoding: str | None = None) -> Generator[StringIO, None, None] | Generator[WriteBuffer[str], None, None]` is not assignable to parameter `func` with type `(buf: PathLike[str] | WriteBuffer[str] | str | None, encoding: str | None = None) -> Iterator[StringIO]` in function `contextlib.contextmanager` [bad-argument-type] ERROR pandas/io/formats/format.py:1081:19-20: Type of yielded value `TextIOWrapper[_WrappedBuffer]` is not assignable to declared return type `StringIO` [invalid-yield] ERROR pandas/io/formats/format.py:1159:9-15: Argument `DatetimeArray | ExtensionArray | TimedeltaArray | ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `values` with type `DatetimeArray` in function `_Datetime64Formatter.__init__` [bad-argument-type] @@ -1393,13 +1410,13 @@ ERROR pandas/io/html.py:639:9-18: Class member `_BeautifulSoupHtml5LibFrameParse ERROR pandas/io/html.py:731:9-18: Class member `_LxmlFrameParser._parse_td` overrides parent class `_HtmlFrameParser` in an inconsistent manner [bad-param-name-override] ERROR pandas/io/html.py:736:9-22: Class member `_LxmlFrameParser._parse_tables` overrides parent class `_HtmlFrameParser` in an inconsistent manner [bad-param-name-override] ERROR pandas/io/json/_json.py:955:16-19: `obj` may be uninitialized [unbound-name] -ERROR pandas/io/json/_json.py:1025:38-46: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `dtype` with type `ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool | complex | object | str] | None` in function `Parser.__init__` [bad-argument-type] +ERROR pandas/io/json/_json.py:1025:38-46: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `dtype` with type `ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool | complex | object | str] | None` in function `Parser.__init__` [bad-argument-type] ERROR pandas/io/json/_json.py:1025:38-46: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `convert_axes` with type `bool` in function `Parser.__init__` [bad-argument-type] ERROR pandas/io/json/_json.py:1025:38-46: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `convert_dates` with type `bool | list[str]` in function `Parser.__init__` [bad-argument-type] ERROR pandas/io/json/_json.py:1025:38-46: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `keep_default_dates` with type `bool` in function `Parser.__init__` [bad-argument-type] ERROR pandas/io/json/_json.py:1025:38-46: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `precise_float` with type `bool` in function `Parser.__init__` [bad-argument-type] ERROR pandas/io/json/_json.py:1025:38-46: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `dtype_backend` with type `Literal['numpy_nullable', 'pyarrow'] | _NoDefault` in function `Parser.__init__` [bad-argument-type] -ERROR pandas/io/json/_json.py:1029:39-47: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `dtype` with type `ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool | complex | object | str] | None` in function `Parser.__init__` [bad-argument-type] +ERROR pandas/io/json/_json.py:1029:39-47: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `dtype` with type `ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool | complex | object | str] | None` in function `Parser.__init__` [bad-argument-type] ERROR pandas/io/json/_json.py:1029:39-47: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `convert_axes` with type `bool` in function `Parser.__init__` [bad-argument-type] ERROR pandas/io/json/_json.py:1029:39-47: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `convert_dates` with type `bool | list[str]` in function `Parser.__init__` [bad-argument-type] ERROR pandas/io/json/_json.py:1029:39-47: Unpacked keyword argument `_NoDefault | bool | str | Unknown | None` is not assignable to parameter `keep_default_dates` with type `bool` in function `Parser.__init__` [bad-argument-type] @@ -1410,27 +1427,29 @@ ERROR pandas/io/json/_normalize.py:578:32-41: Argument `int` is not assignable t ERROR pandas/io/json/_table_schema.py:311:36-53: Object of class `Index` has no attribute `levels` [missing-attribute] ERROR pandas/io/parsers/arrow_parser_wrapper.py:184:30-57: `+` is not supported between `list[str]` and `range` [unsupported-operation] ERROR pandas/io/parsers/base_parser.py:432:20-21: Returned type `int | integer[Any]` is not assignable to declared return type `int` [bad-return] +ERROR pandas/io/parsers/base_parser.py:489:64-494:18: No matching overload found for function `pandas._libs.lib.maybe_convert_numeric` called with arguments: (Unknown, Unknown, Literal[False], convert_to_masked_nullable=bool | Unknown) [no-matching-overload] +ERROR pandas/io/parsers/base_parser.py:529:58-534:14: No matching overload found for function `pandas._libs.ops.maybe_convert_bool` called with arguments: (ndarray[tuple[Any, ...], dtype[Any]], true_values=Unknown, false_values=Unknown, convert_to_masked_nullable=bool | Unknown) [no-matching-overload] ERROR pandas/io/parsers/c_parser_wrapper.py:137:45-71: `set[int]` is not assignable to upper bound `Sequence[Hashable]` of type variable `SequenceT` [bad-specialization] ERROR pandas/io/parsers/c_parser_wrapper.py:147:45-150:18: `set[int]` is not assignable to upper bound `Sequence[Hashable]` of type variable `SequenceT` [bad-specialization] ERROR pandas/io/parsers/c_parser_wrapper.py:240:42-65: `MultiIndex | list[Hashable]` is not assignable to upper bound `Sequence[Hashable]` of type variable `SequenceT` [bad-specialization] -ERROR pandas/io/parsers/python_parser.py:142:25-26: `list[str]` is not assignable to attribute `data` with type `Iterator[list[str]] | list[list[Interval[Unknown] | Timedelta | Timestamp | bool | bytes | complex | complexfloating[Any, Unknown] | date | datetime | datetime64[date | int | None] | float | floating[Any] | int | integer[Any] | str | timedelta | timedelta64[int | timedelta | None]]]` [bad-assignment] +ERROR pandas/io/parsers/python_parser.py:142:25-26: `list[str]` is not assignable to attribute `data` with type `Iterator[list[str]] | list[list[Scalar]]` [bad-assignment] ERROR pandas/io/parsers/python_parser.py:172:14-24: Class member `PythonParser.orig_names` overrides parent class `ParserBase` in an inconsistent manner [bad-override] ERROR pandas/io/parsers/python_parser.py:428:48-83: Argument `set[Unknown] | Unknown` is not assignable to parameter `values` with type `ExtensionArray | Index | SequenceNotStr[Unknown] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range` in function `pandas.core.algorithms.isin` [bad-argument-type] ERROR pandas/io/parsers/python_parser.py:481:25-30: Cannot set item in `dict[Any, ndarray[tuple[Any, ...], dtype[Any]]]` [unsupported-operation] ERROR pandas/io/parsers/python_parser.py:528:25-36: Unexpected keyword argument `true_values` in function `pandas.core.arrays.base.ExtensionArray._from_sequence_of_strings` [unexpected-keyword] ERROR pandas/io/parsers/python_parser.py:529:25-37: Unexpected keyword argument `false_values` in function `pandas.core.arrays.base.ExtensionArray._from_sequence_of_strings` [unexpected-keyword] ERROR pandas/io/parsers/python_parser.py:530:25-36: Unexpected keyword argument `none_values` in function `pandas.core.arrays.base.ExtensionArray._from_sequence_of_strings` [unexpected-keyword] -ERROR pandas/io/parsers/python_parser.py:1310:62-70: Argument `list[list[str]]` is not assignable to parameter `new_rows` with type `list[list[Interval[Unknown] | Timedelta | Timestamp | bool | bytes | complex | complexfloating[Any, Unknown] | date | datetime | datetime64[date | int | None] | float | floating[Any] | int | integer[Any] | str | timedelta | timedelta64[int | timedelta | None]]]` in function `PythonParser._remove_skipped_rows` [bad-argument-type] -ERROR pandas/io/parsers/python_parser.py:1320:49-57: Argument `list[Interval[Unknown] | Timedelta | Timestamp | bool | bytes | complex | complexfloating[Any, Unknown] | date | datetime | datetime64[date | int | None] | float | floating[Any] | int | integer[Any] | str | timedelta | timedelta64[int | timedelta | None]]` is not assignable to parameter `object` with type `list[str]` in function `list.append` [bad-argument-type] -ERROR pandas/io/parsers/python_parser.py:1325:58-66: Argument `list[list[str]]` is not assignable to parameter `new_rows` with type `list[list[Interval[Unknown] | Timedelta | Timestamp | bool | bytes | complex | complexfloating[Any, Unknown] | date | datetime | datetime64[date | int | None] | float | floating[Any] | int | integer[Any] | str | timedelta | timedelta64[int | timedelta | None]]]` in function `PythonParser._remove_skipped_rows` [bad-argument-type] -ERROR pandas/io/parsers/readers.py:310:5-13: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: Literal[True], chunksize: int | None = ..., **kwds: Unpack[TypedDict[_read_shared[HashableT]]]) -> TextFileReader` accepts [inconsistent-overload] -ERROR pandas/io/parsers/readers.py:320:5-13: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: bool = ..., chunksize: int, **kwds: Unpack[TypedDict[_read_shared[HashableT]]]) -> TextFileReader` accepts [inconsistent-overload] -ERROR pandas/io/parsers/readers.py:330:5-13: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: Literal[False] = ..., chunksize: None = ..., **kwds: Unpack[TypedDict[_read_shared[HashableT]]]) -> DataFrame` accepts [inconsistent-overload] -ERROR pandas/io/parsers/readers.py:340:5-13: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: bool = ..., chunksize: int | None = ..., **kwds: Unpack[TypedDict[_read_shared[HashableT]]]) -> DataFrame | TextFileReader` accepts [inconsistent-overload] -ERROR pandas/io/parsers/readers.py:877:5-15: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: Literal[True], chunksize: int | None = ..., **kwds: Unpack[TypedDict[_read_shared[HashableT]]]) -> TextFileReader` accepts [inconsistent-overload] -ERROR pandas/io/parsers/readers.py:887:5-15: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: bool = ..., chunksize: int, **kwds: Unpack[TypedDict[_read_shared[HashableT]]]) -> TextFileReader` accepts [inconsistent-overload] -ERROR pandas/io/parsers/readers.py:897:5-15: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: Literal[False] = ..., chunksize: None = ..., **kwds: Unpack[TypedDict[_read_shared[HashableT]]]) -> DataFrame` accepts [inconsistent-overload] -ERROR pandas/io/parsers/readers.py:907:5-15: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: bool = ..., chunksize: int | None = ..., **kwds: Unpack[TypedDict[_read_shared[HashableT]]]) -> DataFrame | TextFileReader` accepts [inconsistent-overload] +ERROR pandas/io/parsers/python_parser.py:1310:62-70: Argument `list[list[str]]` is not assignable to parameter `new_rows` with type `list[list[Scalar]]` in function `PythonParser._remove_skipped_rows` [bad-argument-type] +ERROR pandas/io/parsers/python_parser.py:1320:49-57: Argument `list[Scalar]` is not assignable to parameter `object` with type `list[str]` in function `list.append` [bad-argument-type] +ERROR pandas/io/parsers/python_parser.py:1325:58-66: Argument `list[list[str]]` is not assignable to parameter `new_rows` with type `list[list[Scalar]]` in function `PythonParser._remove_skipped_rows` [bad-argument-type] +ERROR pandas/io/parsers/readers.py:310:5-13: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: Literal[True], chunksize: int | None = ..., **kwds: Unpack[_read_shared[HashableT]]) -> TextFileReader` accepts [inconsistent-overload] +ERROR pandas/io/parsers/readers.py:320:5-13: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: bool = ..., chunksize: int, **kwds: Unpack[_read_shared[HashableT]]) -> TextFileReader` accepts [inconsistent-overload] +ERROR pandas/io/parsers/readers.py:330:5-13: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: Literal[False] = ..., chunksize: None = ..., **kwds: Unpack[_read_shared[HashableT]]) -> DataFrame` accepts [inconsistent-overload] +ERROR pandas/io/parsers/readers.py:340:5-13: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: bool = ..., chunksize: int | None = ..., **kwds: Unpack[_read_shared[HashableT]]) -> DataFrame | TextFileReader` accepts [inconsistent-overload] +ERROR pandas/io/parsers/readers.py:877:5-15: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: Literal[True], chunksize: int | None = ..., **kwds: Unpack[_read_shared[HashableT]]) -> TextFileReader` accepts [inconsistent-overload] +ERROR pandas/io/parsers/readers.py:887:5-15: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: bool = ..., chunksize: int, **kwds: Unpack[_read_shared[HashableT]]) -> TextFileReader` accepts [inconsistent-overload] +ERROR pandas/io/parsers/readers.py:897:5-15: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: Literal[False] = ..., chunksize: None = ..., **kwds: Unpack[_read_shared[HashableT]]) -> DataFrame` accepts [inconsistent-overload] +ERROR pandas/io/parsers/readers.py:907:5-15: Implementation signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, sep: _NoDefault | str | None = _NoDefault.no_default, delimiter: _NoDefault | str | None = None, header: Literal['infer'] | Sequence[int] | int | None = 'infer', names: Sequence[Hashable] | _NoDefault | None = _NoDefault.no_default, index_col: Literal[False] | Hashable | Sequence[Hashable] | None = None, usecols: ((Unknown) -> bool) | ExtensionArray | Index | SequenceNotStr[Hashable] | Series | ndarray[tuple[Any, ...], dtype[Any]] | range | None = None, dtype: ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool | complex | object | str] | None = None, engine: Literal['c', 'pyarrow', 'python', 'python-fwf'] | None = None, converters: Mapping[HashableT, (...) -> Unknown] | None = None, true_values: list[Unknown] | None = None, false_values: list[Unknown] | None = None, skipinitialspace: bool = False, skiprows: ((Hashable) -> bool) | int | list[int] | None = None, skipfooter: int = 0, nrows: int | None = None, na_values: Hashable | Iterable[Hashable] | Mapping[Hashable, Iterable[Hashable]] | None = None, keep_default_na: bool = True, na_filter: bool = True, skip_blank_lines: bool = True, parse_dates: Sequence[Hashable] | bool | None = None, date_format: dict[Hashable, str] | str | None = None, dayfirst: bool = False, cache_dates: bool = True, iterator: bool = False, chunksize: int | None = None, compression: Literal['bz2', 'gzip', 'infer', 'tar', 'xz', 'zip', 'zstd'] | dict[str, Any] | None = 'infer', thousands: str | None = None, decimal: str = '.', lineterminator: str | None = None, quotechar: str = '"', quoting: int = 0, doublequote: bool = True, escapechar: str | None = None, comment: str | None = None, encoding: str | None = None, encoding_errors: str | None = 'strict', dialect: Dialect | str | None = None, on_bad_lines: str = 'error', low_memory: bool = True, memory_map: bool = False, float_precision: Literal['high', 'legacy', 'round_trip'] | None = None, storage_options: dict[str, Any] | None = None, dtype_backend: Literal['numpy_nullable', 'pyarrow'] | _NoDefault = _NoDefault.no_default) -> DataFrame | TextFileReader` does not accept all arguments that overload signature `(filepath_or_buffer: PathLike[str] | ReadCsvBuffer[bytes] | ReadCsvBuffer[str] | str, *, iterator: bool = ..., chunksize: int | None = ..., **kwds: Unpack[_read_shared[HashableT]]) -> DataFrame | TextFileReader` accepts [inconsistent-overload] ERROR pandas/io/pytables.py:140:39-44: Could not import `Block` from `pandas.core.internals` [missing-module-attribute] ERROR pandas/io/pytables.py:483:8-47: `<=` is not supported between `None` and `None` [unsupported-operation] ERROR pandas/io/pytables.py:487:11-31: `>` is not supported between `None` and `Literal[1]` [unsupported-operation] @@ -1476,8 +1495,8 @@ Class `object` has no class attribute `startswith` Object of class `ExtensionDtype` has no attribute `startswith` Object of class `Mapping` has no attribute `startswith` Object of class `dtype` has no attribute `startswith` [missing-attribute] -ERROR pandas/io/pytables.py:2702:48-53: Argument `ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool] | type[complex] | type[object] | type[str] | Unknown` is not assignable to parameter `datetime64_dtype` with type `str` in function `_set_tz` [bad-argument-type] -ERROR pandas/io/pytables.py:2742:45-64: No matching overload found for function `numpy.ndarray.astype` called with arguments: (ExtensionDtype | Mapping[Hashable, ExtensionDtype | dtype[Any] | str | type[bool | complex | object | str]] | dtype[Any] | str | type[bool] | type[complex] | type[object] | type[str] | Unknown, copy=Literal[False]) [no-matching-overload] +ERROR pandas/io/pytables.py:2702:48-53: Argument `ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool] | type[complex] | type[object] | type[str] | Unknown` is not assignable to parameter `datetime64_dtype` with type `str` in function `_set_tz` [bad-argument-type] +ERROR pandas/io/pytables.py:2742:45-64: No matching overload found for function `numpy.ndarray.astype` called with arguments: (ExtensionDtype | Mapping[Hashable, Dtype] | dtype[Any] | str | type[bool] | type[complex] | type[object] | type[str] | Unknown, copy=Literal[False]) [no-matching-overload] ERROR pandas/io/pytables.py:2749:17-26: Argument `Categorical | DatetimeArray | ndarray[tuple[Any, ...], dtype[Any]] | Unknown` is not assignable to parameter `data` with type `ndarray[tuple[Any, ...], dtype[Any]]` in function `_unconvert_string_array` [bad-argument-type] ERROR pandas/io/pytables.py:2841:20-31: Returned type `tuple[int, ...] | tuple[int, int, int]` is not assignable to declared return type `tuple[int, int, int]` [bad-return] ERROR pandas/io/pytables.py:3086:31-34: Argument `ndarray[tuple[int], dtype[float64]] | Unknown` is not assignable to parameter `values` with type `ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]]` in function `_set_tz` [bad-argument-type] @@ -1496,9 +1515,7 @@ ERROR pandas/io/pytables.py:4136:40-43: Argument `int | Unknown | None` is not a ERROR pandas/io/pytables.py:4383:23-37: `process_filter` may be uninitialized [unbound-name] ERROR pandas/io/pytables.py:4402:28-63: Cannot set item in `dict[str, int | str]` [unsupported-operation] ERROR pandas/io/pytables.py:4598:24-40: Object of class `bool` has no attribute `all` [missing-attribute] -ERROR pandas/io/pytables.py:4930:22-28: Class member `AppendableMultiSeriesTable.levels` overrides parent class `AppendableSeriesTable` in an inconsistent manner [bad-override] ERROR pandas/io/pytables.py:4945:5-11: Class member `GenericTable.levels` overrides parent class `AppendableFrameTable` in an inconsistent manner [bad-override] -ERROR pandas/io/pytables.py:5023:19-25: Class member `AppendableMultiFrameTable.levels` overrides parent class `AppendableFrameTable` in an inconsistent manner [bad-override] ERROR pandas/io/pytables.py:5205:19-35: Object of class `ndarray` has no attribute `to_numpy` [missing-attribute] ERROR pandas/io/pytables.py:5503:44-49: `ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to attribute `coordinates` with type `None` [bad-assignment] ERROR pandas/io/pytables.py:5506:39-46: No matching overload found for function `Selection.generate` called with arguments: (ndarray[tuple[Any, ...], dtype[Any]] | Unknown | None) [no-matching-overload] @@ -1639,4 +1656,4 @@ ERROR typings/numba.pyi:20:7-23: Module `numba.core.types` exists, but was not i ERROR typings/numba.pyi:21:12-28: Module `numba.core.types` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR typings/numba.pyi:24:21-35: No attribute `compiler` in module `numba` [missing-attribute] INFO Checking project configured at `/pyrefly.toml` - INFO 1,575 errors (615 suppressed) + INFO 1,592 errors (595 suppressed) diff --git a/scripts/ty_benchmark/snapshots/pandas_ty.txt b/scripts/ty_benchmark/snapshots/pandas_ty.txt index 0bf4dbf365..4f2361619e 100644 --- a/scripts/ty_benchmark/snapshots/pandas_ty.txt +++ b/scripts/ty_benchmark/snapshots/pandas_ty.txt @@ -36,14 +36,14 @@ pandas/core/_numba/kernels/var_.py:145:21: error[unresolved-reference] Name `pre pandas/core/algorithms.py:214:16: error[invalid-return-type] Return type does not match returned value: expected `ArrayLikeT@_reconstruct_data`, found `ExtensionArray` pandas/core/algorithms.py:469:16: warning[possibly-missing-attribute] Attribute `unique` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/algorithms.py:476:45: error[invalid-argument-type] Argument to function `_get_hashtable_algo` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `(ExtensionArray & ~Index) | (ndarray[tuple[Any, ...], dtype[Any]] & ~Index)` -pandas/core/algorithms.py:546:33: error[invalid-argument-type] Argument to bound method `isin` is incorrect: Expected `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | @Todo | ... omitted 4 union elements` -pandas/core/algorithms.py:551:30: warning[possibly-missing-attribute] Attribute `dtype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | @Todo | ... omitted 4 union elements` -pandas/core/algorithms.py:555:30: warning[possibly-missing-attribute] Attribute `dtype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | @Todo | ... omitted 4 union elements` -pandas/core/algorithms.py:556:34: warning[possibly-missing-attribute] Attribute `astype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | @Todo | ... omitted 4 union elements` -pandas/core/algorithms.py:558:21: warning[possibly-missing-attribute] Attribute `dtype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | @Todo | ... omitted 4 union elements` -pandas/core/algorithms.py:586:38: warning[possibly-missing-attribute] Attribute `dtype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | @Todo | ... omitted 4 union elements` -pandas/core/algorithms.py:587:18: warning[possibly-missing-attribute] Attribute `astype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | @Todo | ... omitted 4 union elements` -pandas/core/algorithms.py:591:27: error[invalid-argument-type] Argument to function `ismember` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | @Todo | ... omitted 5 union elements` +pandas/core/algorithms.py:546:33: error[invalid-argument-type] Argument to bound method `isin` is incorrect: Expected `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | ... omitted 3 union elements` +pandas/core/algorithms.py:551:30: warning[possibly-missing-attribute] Attribute `dtype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | ... omitted 3 union elements` +pandas/core/algorithms.py:555:30: warning[possibly-missing-attribute] Attribute `dtype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | ... omitted 3 union elements` +pandas/core/algorithms.py:556:34: warning[possibly-missing-attribute] Attribute `astype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | ... omitted 3 union elements` +pandas/core/algorithms.py:558:21: warning[possibly-missing-attribute] Attribute `dtype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | ... omitted 3 union elements` +pandas/core/algorithms.py:586:38: warning[possibly-missing-attribute] Attribute `dtype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | ... omitted 3 union elements` +pandas/core/algorithms.py:587:18: warning[possibly-missing-attribute] Attribute `astype` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | ... omitted 3 union elements` +pandas/core/algorithms.py:591:27: error[invalid-argument-type] Argument to function `ismember` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | ... omitted 5 union elements` pandas/core/algorithms.py:855:33: error[invalid-argument-type] Argument to function `_reconstruct_data` is incorrect: Argument type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Any | Index | Series` does not satisfy constraints (`ExtensionArray`, `ndarray[tuple[Any, ...], dtype[Any]]`) of type variable `ArrayLikeT` pandas/core/algorithms.py:930:54: error[invalid-argument-type] Argument to function `value_counts_arraylike` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/algorithms.py:1062:32: error[invalid-argument-type] Argument to function `_reconstruct_data` is incorrect: Argument type `Unknown | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | ... omitted 3 union elements` does not satisfy constraints (`ExtensionArray`, `ndarray[tuple[Any, ...], dtype[Any]]`) of type variable `ArrayLikeT` @@ -51,7 +51,6 @@ pandas/core/algorithms.py:1368:33: warning[possibly-missing-attribute] Attribute pandas/core/apply.py:197:50: error[invalid-argument-type] Argument expression after ** must be a mapping type: Found `Unknown | None` pandas/core/apply.py:379:57: error[invalid-argument-type] Argument to bound method `normalize_dictlike_arg` is incorrect: Expected `DataFrame | Series`, found `(Unknown & NDFrame) | Series | DataFrame | ... omitted 5 union elements` pandas/core/apply.py:2000:49: error[invalid-argument-type] Argument to function `relabel_result` is incorrect: Expected `dict[str, list[((...) -> Unknown) | str]]`, found `((...) -> Unknown) | str | list[((...) -> Unknown) | str] | MutableMapping[Hashable, ((...) -> Unknown) | str | list[((...) -> Unknown) | str]]` -pandas/core/array_algos/masked_accumulations.py:50:22: error[invalid-assignment] Object of type `iinfo[]` is not assignable to `iinfo[integer[Any]] | finfo[floating[Any]]` pandas/core/array_algos/quantile.py:145:12: error[no-matching-overload] No overload of function `quantile` matches arguments pandas/core/array_algos/quantile.py:218:16: error[no-matching-overload] No overload of function `quantile` matches arguments pandas/core/array_algos/take.py:96:43: error[invalid-argument-type] Argument to function `maybe_promote` is incorrect: Expected `dtype[Any]`, found `ExtensionDtype | dtype[Any]` @@ -203,7 +202,6 @@ pandas/core/arrays/arrow/array.py:1381:20: error[invalid-return-type] Return typ pandas/core/arrays/arrow/array.py:1409:16: error[invalid-return-type] Return type does not match returned value: expected `Self@fillna`, found `ArrowExtensionArray` pandas/core/arrays/arrow/array.py:1416:18: error[unresolved-attribute] Module `pyarrow.compute` has no member `is_in` pandas/core/arrays/arrow/array.py:1502:41: error[unresolved-attribute] Module `pyarrow.compute` has no member `round` -pandas/core/arrays/arrow/array.py:1749:22: error[unresolved-attribute] Object of type `ndarray[tuple[Any, ...], dtype[Any]]` has no attribute `to_numpy` pandas/core/arrays/arrow/array.py:1766:21: error[unresolved-attribute] Module `pyarrow.compute` has no member `unique` pandas/core/arrays/arrow/array.py:1920:23: error[unresolved-attribute] Module `pyarrow.compute` has no member `is_null` pandas/core/arrays/arrow/array.py:1921:16: error[unresolved-attribute] Module `pyarrow.compute` has no member `all` @@ -309,10 +307,12 @@ pandas/core/arrays/arrow/array.py:3162:18: error[unresolved-attribute] Module `p pandas/core/arrays/arrow/array.py:3197:22: error[unresolved-attribute] Module `pyarrow.compute` has no member `local_timestamp` pandas/core/arrays/arrow/array.py:3199:22: error[unresolved-attribute] Module `pyarrow.compute` has no member `assume_timezone` pandas/core/arrays/arrow/extension_types.py:171:5: error[unresolved-attribute] Unresolved attribute `_hotfix_installed` on type ``. -pandas/core/arrays/boolean.py:259:24: warning[possibly-missing-attribute] Attribute `shape` may be missing on object of type `@Todo | None` -pandas/core/arrays/boolean.py:262:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[ndarray[tuple[Any, ...], dtype[Any]], ndarray[tuple[Any, ...], dtype[Any]]]`, found `tuple[@Todo, @Todo | None]` +pandas/core/arrays/boolean.py:259:24: warning[possibly-missing-attribute] Attribute `shape` may be missing on object of type `Unknown | None | ndarray[tuple[Any, ...], dtype[bool[bool]]] | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/arrays/boolean.py:262:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[ndarray[tuple[Any, ...], dtype[Any]], ndarray[tuple[Any, ...], dtype[Any]]]`, found `tuple[@Todo | ndarray[tuple[int], dtype[Any]], Unknown | None | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | ndarray[tuple[Any, ...], dtype[Any]]]` pandas/core/arrays/boolean.py:385:9: error[invalid-method-override] Invalid override of method `_coerce_to_array`: Definition is incompatible with `BaseMaskedArray._coerce_to_array` -pandas/core/arrays/categorical.py:494:25: warning[possibly-missing-attribute] Attribute `_codes` may be missing on object of type `Unknown | RangeIndex | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/arrays/categorical.py:494:25: warning[possibly-missing-attribute] Attribute `_codes` may be missing on object of type `Unknown | RangeIndex | ndarray[tuple[Any, ...], dtype[Any]] | ExtensionArray` +pandas/core/arrays/categorical.py:700:18: warning[possibly-missing-attribute] Attribute `is_monotonic_increasing` may be missing on object of type `Index | Unknown | ndarray[tuple[Any, ...], dtype[bool[bool]]]` +pandas/core/arrays/categorical.py:703:26: warning[possibly-missing-attribute] Attribute `sort_values` may be missing on object of type `Index | Unknown | ndarray[tuple[Any, ...], dtype[bool[bool]]]` pandas/core/arrays/categorical.py:1397:21: error[no-matching-overload] No overload of function `find_common_type` matches arguments pandas/core/arrays/categorical.py:1655:9: error[invalid-method-override] Invalid override of method `_validate_scalar`: Definition is incompatible with `NDArrayBackedExtensionArray._validate_scalar` pandas/core/arrays/categorical.py:2229:9: error[invalid-method-override] Invalid override of method `_box_func`: Definition is incompatible with `NDArrayBackedExtensionArray._box_func` @@ -323,16 +323,19 @@ pandas/core/arrays/categorical.py:2989:9: error[invalid-method-override] Invalid pandas/core/arrays/categorical.py:2992:9: error[invalid-method-override] Invalid override of method `_delegate_property_set`: Definition is incompatible with `PandasDelegate._delegate_property_set` pandas/core/arrays/datetimelike.py:387:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__` pandas/core/arrays/datetimelike.py:565:18: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `(Unknown & ~str) | Period | Timestamp | Timedelta | NaTType` +pandas/core/arrays/datetimelike.py:1144:42: error[invalid-argument-type] Argument to bound method `_simple_new` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[datetime64[date | int | None]]]`, found `ndarray[tuple[Any, ...], str]` +pandas/core/arrays/datetimelike.py:1206:43: error[invalid-argument-type] Argument to bound method `_simple_new` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[timedelta64[timedelta | int | None]]]`, found `ndarray[tuple[Any, ...], str]` pandas/core/arrays/datetimelike.py:1315:20: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[int, ...], dtype[Any] | str]` pandas/core/arrays/datetimelike.py:1582:16: error[invalid-return-type] Return type does not match returned value: expected `Self@_quantile`, found `DatetimeLikeArrayMixin` +pandas/core/arrays/datetimelike.py:1771:47: error[invalid-argument-type] Argument to bound method `_simple_new` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[timedelta64[timedelta | int | None]]]`, found `ndarray[tuple[Any, ...], str]` pandas/core/arrays/datetimelike.py:2375:9: error[invalid-method-override] Invalid override of method `_concat_same_type`: Definition is incompatible with `NDArrayBacked._concat_same_type` pandas/core/arrays/datetimelike.py:2399:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `TimelikeOps` pandas/core/arrays/datetimelike.py:2458:16: error[invalid-return-type] Return type does not match returned value: expected `Self@take`, found `TimelikeOps` pandas/core/arrays/datetimelike.py:2476:36: error[invalid-argument-type] Argument to function `py_get_unit_from_dtype` is incorrect: Expected `dtype[Any]`, found `ExtensionDtype` pandas/core/arrays/datetimes.py:410:9: error[invalid-method-override] Invalid override of method `_generate_range`: Definition is incompatible with `TimelikeOps._generate_range` pandas/core/arrays/datetimes.py:483:62: warning[possibly-missing-attribute] Attribute `tz` may be missing on object of type `Timestamp | None` -pandas/core/arrays/datetimes.py:501:51: error[invalid-argument-type] Argument to bound method `tz_localize` is incorrect: Expected `bool | Literal["NaT", "raise"]`, found `Literal["NaT", "infer", "raise"] | @Todo` -pandas/core/arrays/datetimes.py:503:47: error[invalid-argument-type] Argument to bound method `tz_localize` is incorrect: Expected `bool | Literal["NaT", "raise"]`, found `Literal["NaT", "infer", "raise"] | @Todo` +pandas/core/arrays/datetimes.py:501:51: error[invalid-argument-type] Argument to bound method `tz_localize` is incorrect: Expected `bool | Literal["NaT", "raise"]`, found `Literal["NaT", "infer", "raise"] | ndarray[tuple[Any, ...], dtype[bool[bool]]]` +pandas/core/arrays/datetimes.py:503:47: error[invalid-argument-type] Argument to bound method `tz_localize` is incorrect: Expected `bool | Literal["NaT", "raise"]`, found `Literal["NaT", "infer", "raise"] | ndarray[tuple[Any, ...], dtype[bool[bool]]]` pandas/core/arrays/datetimes.py:511:32: warning[possibly-missing-attribute] Attribute `_value` may be missing on object of type `Timestamp | None` pandas/core/arrays/datetimes.py:511:45: warning[possibly-missing-attribute] Attribute `_value` may be missing on object of type `Timestamp | None` pandas/core/arrays/datetimes.py:512:19: warning[possibly-missing-attribute] Attribute `_value` may be missing on object of type `Timestamp | None` @@ -341,6 +344,8 @@ pandas/core/arrays/datetimes.py:524:32: error[invalid-argument-type] Argument to pandas/core/arrays/datetimes.py:561:45: error[invalid-argument-type] Argument to bound method `_from_value_and_reso` is incorrect: Expected `int`, found `datetime64[date | int | None]` pandas/core/arrays/datetimes.py:590:21: error[invalid-type-form] Variable of type `property` is not allowed in a type expression pandas/core/arrays/datetimes.py:639:25: error[invalid-type-form] Variable of type `property` is not allowed in a type expression +pandas/core/arrays/datetimes.py:1114:65: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], str], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], str], (key: str, /) -> ndarray[tuple[Any, ...], dtype[Any]], (key: list[str], /) -> ndarray[tuple[Any, ...], dtype[void]]]` cannot be called with key of type `Literal[0]` on object of type `ndarray[tuple[Any, ...], str]` +pandas/core/arrays/datetimes.py:1121:33: error[invalid-argument-type] Argument to bound method `_simple_new` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[datetime64[date | int | None]]]`, found `ndarray[tuple[Any, ...], str]` pandas/core/arrays/datetimes.py:2891:21: error[invalid-assignment] Object of type `Timestamp` is not assignable to `_TimestampNoneT1@_maybe_normalize_endpoints` pandas/core/arrays/datetimes.py:2894:19: error[invalid-assignment] Object of type `Timestamp` is not assignable to `_TimestampNoneT2@_maybe_normalize_endpoints` pandas/core/arrays/datetimes.py:2928:29: error[invalid-argument-type] Argument to bound method `tz_localize` is incorrect: Expected `bool | Literal["NaT", "raise"]`, found `Unknown | bool | None` @@ -352,13 +357,9 @@ pandas/core/arrays/interval.py:399:50: warning[possibly-missing-attribute] Attri pandas/core/arrays/interval.py:399:63: warning[possibly-missing-attribute] Attribute `unit` may be missing on object of type `Index | Unknown` pandas/core/arrays/interval.py:401:35: warning[possibly-missing-attribute] Attribute `_ensure_matching_resos` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Unknown` pandas/core/arrays/interval.py:831:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__` -pandas/core/arrays/interval.py:840:35: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Argument type `Unknown | ndarray[tuple[Any, ...], dtype[Any]]` does not satisfy constraints (`int`, `int | float`, `Timestamp`, `Timedelta`) of type variable `_OrderableT` -pandas/core/arrays/interval.py:840:35: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `int`, found `Unknown | ndarray[tuple[Any, ...], dtype[Any]]` -pandas/core/arrays/interval.py:1001:16: error[invalid-return-type] Return type does not match returned value: expected `Interval[Unknown] | int | float`, found `Self@min` -pandas/core/arrays/interval.py:1018:16: error[invalid-return-type] Return type does not match returned value: expected `Interval[Unknown] | int | float`, found `Self@max` pandas/core/arrays/interval.py:1127:9: error[invalid-method-override] Invalid override of method `_concat_same_type`: Definition is incompatible with `ExtensionArray._concat_same_type` -pandas/core/arrays/interval.py:1801:50: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Argument type `Period | Timestamp | Timedelta | NaTType | ndarray[tuple[Any, ...], dtype[Any]]` does not satisfy constraints (`int`, `int | float`, `Timestamp`, `Timedelta`) of type variable `_OrderableT` -pandas/core/arrays/interval.py:1801:50: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `int`, found `Period | Timestamp | Timedelta | NaTType | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/arrays/interval.py:1801:50: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Argument type `Period | Timestamp | Timedelta | NaTType | Any` does not satisfy constraints (`int`, `int | float`, `Timestamp`, `Timedelta`) of type variable `_OrderableT` +pandas/core/arrays/interval.py:1801:50: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `int`, found `Period | Timestamp | Timedelta | NaTType | Any` pandas/core/arrays/masked.py:185:30: error[invalid-assignment] Object of type `ndarray[tuple[int, ...], dtype[Any] | type]` is not assignable to `ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/arrays/masked.py:385:9: error[invalid-method-override] Invalid override of method `__contains__`: Definition is incompatible with `ExtensionArray.__contains__` pandas/core/arrays/masked.py:1036:9: error[invalid-method-override] Invalid override of method `_concat_same_type`: Definition is incompatible with `ExtensionArray._concat_same_type` @@ -371,7 +372,7 @@ pandas/core/arrays/period.py:917:17: error[unresolved-attribute] Object of type pandas/core/arrays/period.py:1033:9: error[invalid-method-override] Invalid override of method `_add_offset`: Definition is incompatible with `DatetimeLikeArrayMixin._add_offset` pandas/core/arrays/period.py:1370:12: error[unresolved-attribute] Object of type `BaseOffset` has no attribute `_period_dtype_code` pandas/core/arrays/period.py:1464:45: error[invalid-argument-type] Argument to function `freq_to_dtype_code` is incorrect: Expected `BaseOffset`, found `None` -pandas/core/arrays/period.py:1469:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[ndarray[tuple[Any, ...], dtype[Any]], BaseOffset]`, found `tuple[@Todo, BaseOffset | Unknown | None]` +pandas/core/arrays/period.py:1469:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[ndarray[tuple[Any, ...], dtype[Any]], BaseOffset]`, found `tuple[ndarray[tuple[Any, ...], dtype[Any]], BaseOffset | Unknown | None]` pandas/core/arrays/sparse/accessor.py:76:24: warning[possibly-missing-attribute] Attribute `array` may be missing on object of type `Unknown | None` pandas/core/arrays/sparse/accessor.py:240:13: error[invalid-argument-type] Argument to function `sparse_series_to_coo` is incorrect: Expected `Series`, found `Unknown | None` pandas/core/arrays/sparse/accessor.py:271:13: warning[possibly-missing-attribute] Attribute `array` may be missing on object of type `Unknown | None` @@ -385,15 +386,18 @@ pandas/core/arrays/sparse/accessor.py:430:34: warning[possibly-missing-attribute pandas/core/arrays/sparse/accessor.py:435:40: warning[possibly-missing-attribute] Attribute `items` may be missing on object of type `Unknown | None` pandas/core/arrays/sparse/accessor.py:446:67: warning[possibly-missing-attribute] Attribute `shape` may be missing on object of type `Unknown | None` pandas/core/arrays/sparse/accessor.py:464:62: warning[possibly-missing-attribute] Attribute `items` may be missing on object of type `Unknown | None` -pandas/core/arrays/sparse/accessor.py:465:16: error[invalid-return-type] Return type does not match returned value: expected `int | float`, found `floating[Any]` +pandas/core/arrays/sparse/array.py:844:34: error[invalid-argument-type] Argument to function `result_type` is incorrect: Expected `_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | ... omitted 12 union elements`, found `object` pandas/core/arrays/sparse/array.py:948:16: warning[possibly-missing-attribute] Attribute `any` may be missing on object of type `Unknown | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/arrays/sparse/array.py:949:17: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]], (key: str, /) -> ndarray[tuple[Any, ...], dtype[Any]], (key: list[str], /) -> ndarray[tuple[Any, ...], dtype[void]]]` cannot be called with key of type `Unknown | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` on object of type `ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]]` pandas/core/arrays/sparse/array.py:978:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__` -pandas/core/arrays/sparse/array.py:1078:42: error[invalid-argument-type] Argument to function `maybe_box_datetimelike` is incorrect: Expected `str | bytes | date | ... omitted 10 union elements`, found `ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/arrays/sparse/array.py:1188:9: error[invalid-method-override] Invalid override of method `searchsorted`: Definition is incompatible with `ExtensionArray.searchsorted` pandas/core/arrays/sparse/array.py:1205:9: error[invalid-method-override] Invalid override of method `_concat_same_type`: Definition is incompatible with `ExtensionArray._concat_same_type` +pandas/core/arrays/sparse/array.py:1933:19: warning[possibly-missing-attribute] Attribute `sp_index` may be missing on object of type `Unknown | ndarray[tuple[Any, ...], dtype[bool[bool]]]` pandas/core/arrays/string_.py:225:23: error[invalid-type-form] Invalid subscript of object of type `property` in type expression pandas/core/arrays/string_.py:548:16: error[invalid-return-type] Return type does not match returned value: expected `Self@view`, found `BaseStringArray` pandas/core/arrays/string_.py:689:9: error[invalid-method-override] Invalid override of method `_validate_scalar`: Definition is incompatible with `NumpyExtensionArray._validate_scalar` +pandas/core/arrays/string_.py:749:22: error[no-matching-overload] No overload of bound method `astype` matches arguments +pandas/core/arrays/string_.py:749:22: error[no-matching-overload] No overload of bound method `astype` matches arguments pandas/core/arrays/string_arrow.py:245:9: error[invalid-method-override] Invalid override of method `_convert_bool_result`: Definition is incompatible with `ArrowExtensionArray._convert_bool_result` pandas/core/arrays/string_arrow.py:291:18: error[unresolved-attribute] Module `pyarrow.compute` has no member `is_in` pandas/core/arrays/string_arrow.py:446:18: error[unresolved-attribute] Module `pyarrow.compute` has no member `count_substring_regex` @@ -401,7 +405,6 @@ pandas/core/arrays/string_arrow.py:493:23: error[unresolved-attribute] Module `p pandas/core/arrays/string_arrow.py:494:23: error[unresolved-attribute] Module `pyarrow.compute` has no member `or_kleene` pandas/core/arrays/string_arrow.py:494:41: error[unresolved-attribute] Module `pyarrow.compute` has no member `not_equal` pandas/core/arrays/string_arrow.py:496:23: error[unresolved-attribute] Module `pyarrow.compute` has no member `not_equal` -pandas/core/arrays/timedeltas.py:157:28: error[no-matching-overload] No overload of function `__new__` matches arguments pandas/core/arrays/timedeltas.py:188:47: error[invalid-argument-type] Argument to bound method `_from_value_and_reso` is incorrect: Expected `signedinteger[_64Bit]`, found `timedelta64[timedelta | int | None]` pandas/core/arrays/timedeltas.py:243:9: error[invalid-method-override] Invalid override of method `_from_sequence`: Definition is incompatible with `ExtensionArray._from_sequence` pandas/core/arrays/timedeltas.py:250:46: error[invalid-argument-type] Argument to function `astype_overflowsafe` is incorrect: Expected `dtype[Any]`, found `(Unknown & ~AlwaysTruthy & ~None) | dtype[Any] | ExtensionDtype` @@ -416,6 +419,7 @@ pandas/core/arrays/timedeltas.py:1160:45: error[invalid-argument-type] Argument pandas/core/arrays/timedeltas.py:1161:40: error[invalid-argument-type] Argument to function `astype_overflowsafe` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/base.py:1265:20: error[call-non-callable] Object of type `object` is not callable pandas/core/col.py:170:23: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__name__` +pandas/core/common.py:452:38: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `_SupportsArray[dtype[bool[bool] | integer[Any]]] | _NestedSequence[_SupportsArray[dtype[bool[bool] | integer[Any]]]] | int | ... omitted 3 union elements`, found `int | ndarray[tuple[Any, ...], dtype[Any]] | Generator | ... omitted 3 union elements` pandas/core/common.py:522:9: error[invalid-assignment] Invalid subscript assignment with key of type `object` and value of type `_T@pipe` on object of type `dict[str, Any]` pandas/core/common.py:523:16: error[call-non-callable] Object of type `object` is not callable pandas/core/computation/align.py:161:23: warning[possibly-missing-attribute] Attribute `value` may be missing on object of type `Unknown | list[Unknown]` @@ -429,18 +433,21 @@ pandas/core/computation/pytables.py:624:30: warning[possibly-missing-attribute] pandas/core/computation/pytables.py:631:27: warning[possibly-missing-attribute] Attribute `prune` may be missing on object of type `Unknown | None` pandas/core/construction.py:585:51: error[invalid-argument-type] Argument to function `construct_1d_arraylike_from_scalar` is incorrect: Expected `str | bytes | date | ... omitted 10 union elements`, found `object` pandas/core/construction.py:605:25: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Iterable[Unknown]`, found `~ExtensionArray & ~` +pandas/core/construction.py:616:26: error[no-matching-overload] No overload of function `maybe_convert_objects` matches arguments pandas/core/construction.py:658:21: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Iterable[Unknown]`, found `~ExtensionArray & ~` pandas/core/dtypes/cast.py:197:23: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsFloat | SupportsIndex`, found `str | bytes | date | ... omitted 12 union elements` pandas/core/dtypes/cast.py:199:21: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc`, found `str | bytes | date | ... omitted 12 union elements` pandas/core/dtypes/cast.py:344:23: error[unresolved-attribute] Object of type `ExtensionArray & ~ndarray[tuple[object, ...], dtype[object]]` has no attribute `iloc` +pandas/core/dtypes/cast.py:359:44: error[invalid-argument-type] Argument to function `allclose` is incorrect: Expected `_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | ... omitted 5 union elements`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/dtypes/cast.py:380:36: error[invalid-argument-type] Argument to function `allclose` is incorrect: Expected `_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | ... omitted 5 union elements`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/dtypes/cast.py:386:39: error[invalid-argument-type] Argument to function `array_equal` is incorrect: Expected `_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | ... omitted 5 union elements`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/dtypes/cast.py:407:16: error[invalid-argument-type] Argument to bound method `astype` is incorrect: Expected `Index`, found `NumpyIndexT@maybe_upcast_numeric_to_64bit` pandas/core/dtypes/cast.py:407:16: error[no-matching-overload] No overload of bound method `astype` matches arguments pandas/core/dtypes/cast.py:409:16: error[invalid-argument-type] Argument to bound method `astype` is incorrect: Expected `Index`, found `NumpyIndexT@maybe_upcast_numeric_to_64bit` pandas/core/dtypes/cast.py:409:16: error[no-matching-overload] No overload of bound method `astype` matches arguments pandas/core/dtypes/cast.py:411:16: error[invalid-argument-type] Argument to bound method `astype` is incorrect: Expected `Index`, found `NumpyIndexT@maybe_upcast_numeric_to_64bit` pandas/core/dtypes/cast.py:411:16: error[no-matching-overload] No overload of bound method `astype` matches arguments -pandas/core/dtypes/cast.py:445:21: error[no-matching-overload] No overload of function `__new__` matches arguments -pandas/core/dtypes/cast.py:728:23: error[no-matching-overload] No overload of function `__new__` matches arguments +pandas/core/dtypes/cast.py:500:42: error[invalid-argument-type] Argument to function `datetime_data` is incorrect: Expected `str | _SupportsDType[dtype[datetime64[date | int | None]]] | dtype[datetime64[date | int | None]] | dtype[timedelta64[timedelta | int | None]]`, found `Unknown | int | float` pandas/core/dtypes/cast.py:1527:26: error[no-matching-overload] No overload of bound method `astype` matches arguments pandas/core/dtypes/cast.py:1527:26: error[no-matching-overload] No overload of bound method `astype` matches arguments pandas/core/dtypes/dtypes.py:329:35: warning[possibly-missing-attribute] Attribute `dtype` may be missing on object of type `Unknown | None` @@ -450,6 +457,7 @@ pandas/core/dtypes/dtypes.py:452:34: error[unresolved-attribute] Object of type pandas/core/dtypes/dtypes.py:455:33: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `~None` pandas/core/dtypes/dtypes.py:472:37: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Iterable[Unknown]`, found `~None` pandas/core/dtypes/dtypes.py:806:43: error[invalid-argument-type] Argument to function `tz_standardize` is incorrect: Expected `tzinfo`, found `tzinfo | None` +pandas/core/dtypes/dtypes.py:972:24: error[no-matching-overload] No overload of function `amax` matches arguments pandas/core/dtypes/dtypes.py:1363:39: error[invalid-type-form] Invalid subscript of object of type `property` in type expression pandas/core/dtypes/dtypes.py:1398:23: error[invalid-type-form] Invalid subscript of object of type `property` in type expression pandas/core/dtypes/dtypes.py:1548:23: error[invalid-type-form] Invalid subscript of object of type `property` in type expression @@ -457,14 +465,16 @@ pandas/core/dtypes/inference.py:301:17: error[invalid-argument-type] Argument to pandas/core/dtypes/missing.py:392:12: error[unsupported-operator] Unary operator `~` is unsupported for type `~bool` pandas/core/frame.py:894:56: error[invalid-argument-type] Argument to function `construct_1d_arraylike_from_scalar` is incorrect: Expected `str | bytes | date | ... omitted 10 union elements`, found `(@Todo & ~BlockManager & ~None & ~Top[dict[Unknown, Unknown]] & ~ndarray[tuple[object, ...], dtype[object]] & ~Series & ~Index & ~ExtensionArray) | (list[Unknown] & ~BlockManager & ~ndarray[tuple[object, ...], dtype[object]] & ~Series & ~Index & ~ExtensionArray)` pandas/core/frame.py:900:21: error[invalid-argument-type] Argument to function `construct_2d_arraylike_from_scalar` is incorrect: Expected `str | bytes | date | ... omitted 10 union elements`, found `(@Todo & ~BlockManager & ~None & ~Top[dict[Unknown, Unknown]] & ~ndarray[tuple[object, ...], dtype[object]] & ~Series & ~Index & ~ExtensionArray) | (list[Unknown] & ~BlockManager & ~ndarray[tuple[object, ...], dtype[object]] & ~Series & ~Index & ~ExtensionArray)` +pandas/core/frame.py:2358:37: error[no-matching-overload] No overload of function `maybe_convert_objects` matches arguments pandas/core/frame.py:2378:21: warning[possibly-missing-attribute] Attribute `get_loc` may be missing on object of type `None | Index` pandas/core/frame.py:2399:23: warning[possibly-missing-attribute] Attribute `drop` may be missing on object of type `None | Index` pandas/core/frame.py:2401:37: error[invalid-argument-type] Argument to function `arrays_to_mgr` is incorrect: Expected `Index`, found `None | Index` -pandas/core/frame.py:2541:20: error[unsupported-operator] Operator `in` is not supported for types `Hashable` and `None`, in comparing `Hashable` with `Unknown | None` +pandas/core/frame.py:2541:20: error[unsupported-operator] Operator `in` is not supported between objects of type `Hashable` and `Unknown | None` pandas/core/frame.py:2542:37: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -pandas/core/frame.py:2543:22: error[unsupported-operator] Operator `in` is not supported for types `int` and `None`, in comparing `int` with `Unknown | None` +pandas/core/frame.py:2543:22: error[unsupported-operator] Operator `in` is not supported between objects of type `int` and `Unknown | None` pandas/core/frame.py:2544:37: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method pandas/core/frame.py:4106:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `NDFrame.__getitem__` +pandas/core/frame.py:4647:29: error[no-matching-overload] No overload of function `tile` matches arguments pandas/core/frame.py:5232:32: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `Iterable[Unknown]`, found `Unknown | None | tuple[Unknown & ~None] | tuple[()]` pandas/core/frame.py:5232:52: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `Iterable[Unknown]`, found `Unknown | None | tuple[Unknown & ~None] | tuple[()]` pandas/core/frame.py:7272:9: error[invalid-method-override] Invalid override of method `sort_values`: Definition is incompatible with `NDFrame.sort_values` @@ -479,8 +489,8 @@ pandas/core/frame.py:13843:22: error[no-matching-overload] No overload of bound pandas/core/generic.py:1070:55: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `Iterable[Unknown]`, found `(Mapping[Any, Hashable] & ~(() -> object)) | (((Any, /) -> Hashable) & ~(() -> object))` pandas/core/generic.py:3564:31: error[no-matching-overload] No overload of bound method `pop` matches arguments pandas/core/generic.py:3565:32: error[no-matching-overload] No overload of bound method `pop` matches arguments -pandas/core/generic.py:4217:24: error[invalid-return-type] Return type does not match returned value: expected `Self@xs`, found `Unknown | ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/generic.py:4592:13: error[invalid-assignment] Object of type `Unknown | str` is not assignable to `int | Literal["columns", "index", "rows"]` +pandas/core/generic.py:4669:24: error[unresolved-attribute] Object of type `ndarray[tuple[Any, ...], dtype[bool[bool]]]` has no attribute `to_numpy` pandas/core/generic.py:6196:21: error[invalid-assignment] Cannot assign to a subscript on an object of type `Self@__setattr__` pandas/core/generic.py:6523:16: warning[redundant-cast] Value is already of type `Self@astype` pandas/core/generic.py:7154:25: error[invalid-assignment] Cannot assign to a subscript on an object of type `Self@fillna` @@ -509,6 +519,7 @@ pandas/core/groupby/numba_.py:116:18: error[not-iterable] Object of type `prange pandas/core/groupby/numba_.py:118:22: error[not-iterable] Object of type `prange` is not iterable pandas/core/groupby/numba_.py:176:18: error[not-iterable] Object of type `prange` is not iterable pandas/core/groupby/numba_.py:178:22: error[not-iterable] Object of type `prange` is not iterable +pandas/core/indexers/utils.py:565:23: warning[possibly-missing-attribute] Attribute `to_numpy` may be missing on object of type `Unknown | ndarray[tuple[Any, ...], dtype[Unknown]]` pandas/core/indexes/accessors.py:91:9: error[invalid-method-override] Invalid override of method `_delegate_property_get`: Definition is incompatible with `PandasDelegate._delegate_property_get` pandas/core/indexes/accessors.py:175:9: error[invalid-method-override] Invalid override of method `_delegate_property_get`: Definition is incompatible with `PandasDelegate._delegate_property_get` pandas/core/indexes/base.py:428:11: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression @@ -516,6 +527,8 @@ pandas/core/indexes/base.py:440:24: error[invalid-type-form] Variable of type `A pandas/core/indexes/base.py:441:23: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression pandas/core/indexes/base.py:545:33: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Iterable[Unknown]`, found `(Unknown & ~range & ~) | None` pandas/core/indexes/base.py:562:29: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Iterable[Unknown]`, found `(Unknown & ~range & ~ & ~Top[list[Unknown]] & ~tuple[object, ...]) | None` +pandas/core/indexes/base.py:972:20: error[invalid-argument-type] Argument to function `ndim` is incorrect: Expected `_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | ... omitted 5 union elements`, found `object` +pandas/core/indexes/base.py:1359:42: error[invalid-argument-type] Argument to bound method `repeat` is incorrect: Expected `int | Sequence[int]`, found `ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]]` pandas/core/indexes/base.py:1831:16: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `Unknown | FrozenList | list[Unknown | None] | None` pandas/core/indexes/base.py:1833:75: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `Unknown | FrozenList | list[Unknown | None] | None` pandas/core/indexes/base.py:1839:16: error[invalid-return-type] Return type does not match returned value: expected `list[Hashable]`, found `Unknown | FrozenList | list[Unknown | None] | None` @@ -530,15 +543,15 @@ pandas/core/indexes/base.py:5019:10: error[invalid-argument-type] Argument to fu pandas/core/indexes/base.py:5299:23: error[unresolved-attribute] Object of type `~slice[object, object, object]` has no attribute `to_numpy` pandas/core/indexes/base.py:5310:18: error[no-matching-overload] No overload of bound method `__getitem__` matches arguments pandas/core/indexes/base.py:5310:18: error[no-matching-overload] No overload of bound method `__getitem__` matches arguments +pandas/core/indexes/base.py:5745:16: error[no-matching-overload] No overload of bound method `searchsorted` matches arguments pandas/core/indexes/base.py:6135:64: error[invalid-argument-type] Argument to bound method `get_indexer_non_unique` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `Unknown | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/indexes/base.py:6135:64: error[invalid-argument-type] Argument to bound method `get_indexer_non_unique` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `Unknown | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` -pandas/core/indexes/base.py:6464:16: error[no-matching-overload] No overload of bound method `__init__` matches arguments pandas/core/indexes/category.py:429:9: error[invalid-method-override] Invalid override of method `_maybe_cast_listlike_indexer`: Definition is incompatible with `Index._maybe_cast_listlike_indexer` pandas/core/indexes/datetimelike.py:139:10: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property` pandas/core/indexes/datetimelike.py:156:10: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property` pandas/core/indexes/datetimelike.py:200:42: warning[possibly-missing-attribute] Attribute `asi8` may be missing on object of type `(Any & Index) | CategoricalIndex | Self@equals` pandas/core/indexes/datetimelike.py:527:10: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property` -pandas/core/indexes/datetimelike.py:756:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[Self@_wrap_join_result, @Todo | None, @Todo | None]`, found `tuple[DatetimeTimedeltaMixin | Unknown, @Todo | None, @Todo | None]` +pandas/core/indexes/datetimelike.py:756:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[Self@_wrap_join_result, ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]] | None, ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]] | None]`, found `tuple[DatetimeTimedeltaMixin | Unknown, ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]] | None, ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]] | None]` pandas/core/indexes/datetimelike.py:815:45: error[invalid-argument-type] Argument to bound method `is_on_offset` is incorrect: Expected `datetime`, found `Timestamp | NaTType | Timedelta` pandas/core/indexes/datetimelike.py:823:16: error[invalid-return-type] Return type does not match returned value: expected `Self@delete`, found `DatetimeTimedeltaMixin` pandas/core/indexes/datetimelike.py:855:13: error[invalid-assignment] Object of type `BaseOffset | None` is not assignable to attribute `_freq` on type `DatetimeArray | TimedeltaArray` @@ -548,16 +561,17 @@ pandas/core/indexes/frozen.py:74:9: error[invalid-method-override] Invalid overr pandas/core/indexes/interval.py:670:43: warning[possibly-missing-attribute] Attribute `left` may be missing on object of type `Unknown | Index` pandas/core/indexes/interval.py:671:44: warning[possibly-missing-attribute] Attribute `right` may be missing on object of type `Unknown | Index` pandas/core/indexes/interval.py:686:50: warning[possibly-missing-attribute] Attribute `asi8` may be missing on object of type `(Unknown & ~Top[Interval[Unknown]]) | (Index & ~Top[Interval[Unknown]])` +pandas/core/indexes/interval.py:807:20: error[invalid-return-type] Return type does not match returned value: expected `int | slice[Any, Any, Any] | ndarray[tuple[Any, ...], dtype[Any]]`, found `Unknown | signedinteger[_64Bit]` pandas/core/indexes/interval.py:1375:36: error[invalid-argument-type] Argument to function `maybe_box_datetimelike` is incorrect: Expected `str | bytes | date | ... omitted 10 union elements`, found `Unknown | None` pandas/core/indexes/interval.py:1376:34: error[invalid-argument-type] Argument to function `maybe_box_datetimelike` is incorrect: Expected `str | bytes | date | ... omitted 10 union elements`, found `Unknown | None` pandas/core/indexes/interval.py:1397:20: error[no-matching-overload] No overload of function `to_offset` matches arguments -pandas/core/indexes/interval.py:1427:25: error[invalid-assignment] Object of type `object` is not assignable to `dtype[Any]` pandas/core/indexes/interval.py:1435:46: error[unsupported-operator] Operator `*` is unsupported between objects of type `Unknown | None | Literal[1, "D"]` and `float` pandas/core/indexes/interval.py:1440:32: error[unsupported-operator] Operator `-` is unsupported between objects of type `str | bytes | date | ... omitted 10 union elements` and `str | bytes | date | ... omitted 10 union elements` +pandas/core/indexes/interval.py:1446:22: error[no-matching-overload] No overload of function `linspace` matches arguments +pandas/core/indexes/multi.py:587:54: error[invalid-argument-type] Argument to function `tuples_to_object_array` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[object_]]`, found `(ndarray[tuple[object, ...], dtype[object]] & ~Index) | ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/indexes/multi.py:1589:9: error[invalid-method-override] Invalid override of method `_set_names`: Definition is incompatible with `Index._set_names` -pandas/core/indexes/multi.py:2256:40: error[unsupported-operator] Operator `>` is not supported for types `object` and `int`, in comparing `~None` with `Literal[0]` +pandas/core/indexes/multi.py:2256:40: error[unsupported-operator] Operator `>` is not supported between objects of type `~None` and `Literal[0]` pandas/core/indexes/multi.py:4158:9: error[invalid-method-override] Invalid override of method `_validate_fill_value`: Definition is incompatible with `Index._validate_fill_value` -pandas/core/indexes/multi.py:4484:9: error[no-matching-overload] No overload of function `tile` matches arguments pandas/core/indexes/period.py:243:29: error[invalid-argument-type] Argument to function `period_array` is incorrect: Expected `Sequence[Period | str | None] | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | Series`, found `Unknown | None` pandas/core/indexes/range.py:808:9: error[invalid-method-override] Invalid override of method `sort_values`: Definition is incompatible with `Index.sort_values` pandas/core/indexes/range.py:817:20: error[invalid-return-type] Return type does not match returned value: expected `Self@sort_values | tuple[Self@sort_values, ndarray[tuple[Any, ...], dtype[Any]] | RangeIndex]`, found `RangeIndex | tuple[RangeIndex, ndarray[tuple[Any, ...], dtype[Any]]]` @@ -566,8 +580,10 @@ pandas/core/indexes/range.py:1289:27: error[invalid-argument-type] Argument to f pandas/core/indexes/range.py:1305:23: error[unresolved-attribute] Object of type `~EllipsisType & ~slice[object, object, object]` has no attribute `to_numpy` pandas/core/indexing.py:1242:6: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property` pandas/core/indexing.py:1430:24: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Iterable[Unknown]`, found `object` -pandas/core/indexing.py:1447:45: error[unsupported-operator] Operator `>` is not supported for types `object` and `int`, in comparing `object` with `Literal[1]` +pandas/core/indexing.py:1447:45: error[unsupported-operator] Operator `>` is not supported between objects of type `object` and `Literal[1]` pandas/core/indexing.py:1593:6: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property` +pandas/core/indexing.py:1637:31: warning[possibly-missing-attribute] Attribute `_reduce` may be missing on object of type `Unknown | ndarray[tuple[Any, ...], dtype[Unknown]]` +pandas/core/indexing.py:1638:31: warning[possibly-missing-attribute] Attribute `_reduce` may be missing on object of type `Unknown | ndarray[tuple[Any, ...], dtype[Unknown]]` pandas/core/indexing.py:1785:36: error[invalid-argument-type] Argument to bound method `_validate_integer` is incorrect: Expected `int | integer[Any]`, found `object` pandas/core/indexing.py:2019:60: error[non-subscriptable] Cannot subscript object of type `Hashable` with no `__getitem__` method pandas/core/indexing.py:2033:45: error[invalid-argument-type] Argument to bound method `_setitem_single_column` is incorrect: Expected `int`, found `Hashable` @@ -576,25 +592,39 @@ pandas/core/indexing.py:2382:21: error[index-out-of-bounds] Index 1 is out of bo pandas/core/indexing.py:2384:49: error[index-out-of-bounds] Index 1 is out of bounds for tuple `tuple[(Unknown & slice[object, object, object]) | (Unknown & ndarray[tuple[object, ...], dtype[object]]) | (Unknown & Top[list[Unknown]]) | (Unknown & Index)]` with length 1 pandas/core/indexing.py:2557:6: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property` pandas/core/indexing.py:2607:6: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property` +pandas/core/interchange/utils.py:146:39: error[invalid-argument-type] Argument to function `datetime_data` is incorrect: Expected `str | _SupportsDType[dtype[datetime64[date | int | None]]] | dtype[datetime64[date | int | None]] | dtype[timedelta64[timedelta | int | None]]`, found `dtype[Any] | (ExtensionDtype & ~CategoricalDtype & ~StringDtype)` pandas/core/internals/api.py:113:57: error[invalid-argument-type] Argument to function `extract_pandas_array` is incorrect: Expected `int`, found `Unknown | None` -pandas/core/internals/construction.py:286:39: error[invalid-argument-type] Argument to function `_check_values_indices_shape_match` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `Unknown | ndarray[tuple[Any, ...], dtype[Any]] | ExtensionArray` +pandas/core/internals/api.py:133:13: error[invalid-argument-type] Argument to bound method `_simple_new` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[datetime64[date | int | None]]]`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/internals/blocks.py:509:22: error[no-matching-overload] No overload of function `maybe_convert_objects` matches arguments +pandas/core/internals/construction.py:243:22: warning[possibly-missing-attribute] Attribute `reshape` may be missing on object of type `Unknown | ndarray[tuple[int, int], dtype[Any]] | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/internals/construction.py:254:29: error[invalid-argument-type] Argument to function `_ensure_2d` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `Unknown | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/internals/construction.py:286:39: error[invalid-argument-type] Argument to function `_check_values_indices_shape_match` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `Unknown | ndarray[tuple[int, int], dtype[Any]] | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/internals/construction.py:992:27: error[no-matching-overload] No overload of function `maybe_convert_objects` matches arguments pandas/core/internals/construction.py:1021:46: error[invalid-argument-type] Argument to function `maybe_cast_to_datetime` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]] | list[Unknown]`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` -pandas/core/internals/managers.py:235:13: error[unresolved-attribute] Object of type `Self@blknos` has no attribute `_rebuild_blknos_and_blklocs` -pandas/core/internals/managers.py:246:13: error[unresolved-attribute] Object of type `Self@blklocs` has no attribute `_rebuild_blknos_and_blklocs` -pandas/core/internals/managers.py:1225:17: error[invalid-assignment] Invalid subscript assignment with key of type `Unknown | BlockPlacement` and value of type `ndarray[tuple[Any, ...], dtype[Any]]` on object of type `list[Unknown | None]` pandas/core/internals/managers.py:1656:9: error[invalid-method-override] Invalid override of method `_equal_values`: Definition is incompatible with `BaseBlockManager._equal_values` pandas/core/internals/managers.py:2231:9: error[invalid-method-override] Invalid override of method `_equal_values`: Definition is incompatible with `BaseBlockManager._equal_values` +pandas/core/internals/managers.py:2501:42: error[invalid-argument-type] Argument to bound method `_simple_new` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[datetime64[date | int | None]]]`, found `ndarray[tuple[int, ...], str]` +pandas/core/missing.py:153:12: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]]`, found `Unknown | (ExtensionArray & ndarray[tuple[object, ...], dtype[object]]) | ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/missing.py:608:19: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Literal["linear", "nearest", "nearest-up", "slinear", "zero", ... omitted 4 literals] | int`, found `Unknown | None | (str & ~Literal["polynomial"])` -pandas/core/missing.py:613:28: error[unsupported-operator] Operator `<=` is not supported for types `None` and `int`, in comparing `Unknown | None` with `Literal[0]` +pandas/core/missing.py:613:28: error[unsupported-operator] Operator `<=` is not supported between objects of type `Unknown | None` and `Literal[0]` pandas/core/missing.py:617:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Literal[1, 2, 3, 4, 5]`, found `Unknown | None` pandas/core/nanops.py:657:20: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[Any]] | datetime64[date | int | None] | timedelta64[timedelta | int | None] | NaTType`, found `signedinteger[_64Bit]` -pandas/core/nanops.py:908:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[int | float | ndarray[tuple[Any, ...], dtype[Any]], int | float | ndarray[tuple[Any, ...], dtype[Any]]]`, found `tuple[floating[Any] | @Todo | int | float | ndarray[tuple[Any, ...], dtype[Any]], Unknown | int | float]` -pandas/core/nanops.py:1525:12: warning[possibly-missing-attribute] Attribute `astype` may be missing on object of type `@Todo | int` +pandas/core/nanops.py:908:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[int | float | ndarray[tuple[Any, ...], dtype[Any]], int | float | ndarray[tuple[Any, ...], dtype[Any]]]`, found `tuple[floating[Any] | ndarray[tuple[Any, ...], dtype[floating[Any]]] | int | float | ndarray[tuple[Any, ...], dtype[Any]], Unknown | int | float]` +pandas/core/nanops.py:1297:12: error[invalid-return-type] Return type does not match returned value: expected `int | float`, found `ndarray[tuple[Any, ...], dtype[Any]] | Unknown` +pandas/core/nanops.py:1416:12: error[invalid-return-type] Return type does not match returned value: expected `int | float`, found `(Unknown & ~ndarray[tuple[object, ...], dtype[object]]) | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/nanops.py:1525:12: warning[possibly-missing-attribute] Attribute `astype` may be missing on object of type `Any | int` pandas/core/nanops.py:1561:30: error[no-matching-overload] No overload of bound method `astype` matches arguments pandas/core/nanops.py:1561:30: error[no-matching-overload] No overload of bound method `astype` matches arguments pandas/core/nanops.py:1563:30: error[no-matching-overload] No overload of bound method `astype` matches arguments pandas/core/nanops.py:1563:30: error[no-matching-overload] No overload of bound method `astype` matches arguments -pandas/core/ops/array_ops.py:340:44: error[invalid-argument-type] Argument to function `invalid_comparison` is incorrect: Expected `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | list[Unknown] | ... omitted 13 union elements`, found `~Top[list[Unknown]] | @Todo` +pandas/core/ops/array_ops.py:126:48: error[invalid-argument-type] Argument to function `vec_compare` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[object_]]`, found `@Todo | ndarray[tuple[int], dtype[Any]] | ndarray[tuple[int], Unknown] | ExtensionArray` +pandas/core/ops/array_ops.py:340:44: error[invalid-argument-type] Argument to function `invalid_comparison` is incorrect: Expected `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | list[Unknown] | ... omitted 13 union elements`, found `~Top[list[Unknown]] | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/ops/mask_ops.py:59:18: error[unsupported-operator] Operator `|` is unsupported between objects of type `ndarray[tuple[Any, ...], dtype[Any]] | (NAType & ndarray[tuple[object, ...], dtype[object]])` and `bool | ndarray[tuple[Any, ...], dtype[Any]] | NAType` +pandas/core/ops/mask_ops.py:122:18: error[unsupported-operator] Operator `^` is unsupported between objects of type `ndarray[tuple[Any, ...], dtype[Any]] | (NAType & ndarray[tuple[object, ...], dtype[object]])` and `bool | ndarray[tuple[Any, ...], dtype[Any]] | NAType` +pandas/core/ops/mask_ops.py:132:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]], ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]]]`, found `tuple[ndarray[tuple[Any, ...], dtype[Any]] | (NAType & ndarray[tuple[object, ...], dtype[object]]) | Unknown, ndarray[tuple[Any, ...], dtype[Any]] | Unknown]` +pandas/core/ops/mask_ops.py:172:18: error[unsupported-operator] Operator `&` is unsupported between objects of type `(NAType & ndarray[tuple[object, ...], dtype[object]]) | ndarray[tuple[Any, ...], dtype[Any]]` and `bool | NAType | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/ops/mask_ops.py:190:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]], ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]]]`, found `tuple[(NAType & ndarray[tuple[object, ...], dtype[object]]) | ndarray[tuple[Any, ...], dtype[Any]] | Unknown, Any | ndarray[tuple[Any, ...], dtype[Any]]]` +pandas/core/ops/mask_ops.py:194:32: error[no-matching-overload] No overload matches arguments pandas/core/resample.py:442:45: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `((...) -> Unknown) | str | list[((...) -> Unknown) | str] | MutableMapping[Hashable, ((...) -> Unknown) | str | list[((...) -> Unknown) | str]]`, found `Unknown | None` pandas/core/resample.py:2110:9: error[invalid-method-override] Invalid override of method `_upsample`: Definition is incompatible with `Resampler._upsample` pandas/core/resample.py:2242:9: error[invalid-method-override] Invalid override of method `_upsample`: Definition is incompatible with `Resampler._upsample` @@ -666,6 +696,7 @@ pandas/core/series.py:5652:30: error[invalid-type-form] Variable of type `Access pandas/core/series.py:5996:19: error[invalid-type-form] Invalid subscript of object of type `Accessor` in type expression pandas/core/series.py:6471:15: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression pandas/core/series.py:6535:19: error[invalid-type-form] Invalid subscript of object of type `Accessor` in type expression +pandas/core/sorting.py:428:16: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]]`, found `ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]] | Series | ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/sorting.py:429:13: error[unknown-argument] Argument `ascending` does not match any known parameter of bound method `argsort` pandas/core/sorting.py:431:13: error[unknown-argument] Argument `na_position` does not match any known parameter of bound method `argsort` pandas/core/strings/accessor.py:310:33: warning[possibly-missing-attribute] Submodule `compute` may not be available as an attribute on module `pyarrow` @@ -677,8 +708,14 @@ pandas/core/strings/accessor.py:396:30: warning[possibly-missing-attribute] Attr pandas/core/strings/accessor.py:1411:20: warning[possibly-missing-attribute] Attribute `flags` may be missing on object of type `str | Pattern[Unknown]` pandas/core/strings/accessor.py:1426:33: warning[possibly-missing-attribute] Attribute `flags` may be missing on object of type `str | Pattern[Unknown] | Pattern[str]` pandas/core/strings/accessor.py:1431:38: warning[possibly-missing-attribute] Attribute `flags` may be missing on object of type `str | Pattern[Unknown] | Pattern[str]` +pandas/core/strings/object_array.py:115:26: error[no-matching-overload] No overload of function `maybe_convert_objects` matches arguments +pandas/core/tools/datetimes.py:387:27: warning[possibly-missing-attribute] Attribute `_dt_tz_convert` may be missing on object of type `(Unknown & ~Top[list[Unknown]] & ~tuple[object, ...] & ~NumpyExtensionArray & ~Index) | (ndarray[tuple[Any, ...], dtype[Any]] & ~Index)` +pandas/core/tools/datetimes.py:389:27: warning[possibly-missing-attribute] Attribute `_dt_tz_localize` may be missing on object of type `(Unknown & ~Top[list[Unknown]] & ~tuple[object, ...] & ~NumpyExtensionArray & ~Index) | (ndarray[tuple[Any, ...], dtype[Any]] & ~Index)` pandas/core/tools/datetimes.py:393:35: error[invalid-argument-type] Argument to function `is_supported_dtype` is incorrect: Expected `dtype[Any]`, found `(Any & ~DatetimeTZDtype) | None` +pandas/core/tools/datetimes.py:452:41: error[invalid-argument-type] Argument to bound method `_simple_new` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[datetime64[date | int | None]]]`, found `ndarray[tuple[Any, ...], str]` pandas/core/tools/datetimes.py:1062:22: error[invalid-assignment] Object of type `bool` is not assignable to `Timestamp | NaTType | Series | Index` +pandas/core/tools/numeric.py:225:16: warning[possibly-missing-attribute] Attribute `isna` may be missing on object of type `(Unknown & ~BaseMaskedArray) | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/core/tools/numeric.py:226:18: warning[possibly-missing-attribute] Attribute `dropna` may be missing on object of type `(Unknown & ~BaseMaskedArray) | ndarray[tuple[Any, ...], dtype[Any]]` pandas/core/util/hashing.py:314:16: error[no-matching-overload] No overload of bound method `astype` matches arguments pandas/core/util/numba_.py:79:8: warning[possibly-missing-attribute] Submodule `extending` may not be available as an attribute on module `numba` pandas/core/util/numba_.py:82:22: error[unresolved-attribute] Object of type `(...) -> Unknown` has no attribute `__name__` @@ -690,12 +727,12 @@ pandas/core/window/numba_.py:229:18: error[not-iterable] Object of type `prange` pandas/core/window/numba_.py:257:18: error[not-iterable] Object of type `prange` is not iterable pandas/core/window/numba_.py:323:22: error[not-iterable] Object of type `prange` is not iterable pandas/core/window/online.py:63:22: error[not-iterable] Object of type `prange` is not iterable -pandas/core/window/rolling.py:167:44: error[unsupported-operator] Operator `>` is not supported for types `int` and `None`, in comparing `(Unknown & ~None) | int` with `Unknown | None` +pandas/core/window/rolling.py:167:44: error[unsupported-operator] Operator `>` is not supported between objects of type `(Unknown & ~None) | int` and `Unknown | None` pandas/core/window/rolling.py:419:35: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `int`, found `(Unknown & ~BaseIndexer) | None` -pandas/core/window/rolling.py:1139:43: error[unsupported-operator] Operator `<` is not supported for types `None` and `int`, in comparing `(Unknown & ~BaseIndexer) | None` with `Literal[0]` +pandas/core/window/rolling.py:1139:43: error[unsupported-operator] Operator `<` is not supported between objects of type `(Unknown & ~BaseIndexer) | None` and `Literal[0]` pandas/core/window/rolling.py:1288:45: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `((...) -> Unknown) | str | list[((...) -> Unknown) | str] | MutableMapping[Hashable, ((...) -> Unknown) | str | list[((...) -> Unknown) | str]]`, found `Unknown | None` pandas/core/window/rolling.py:1291:22: error[call-non-callable] Object of type `None` is not callable -pandas/core/window/rolling.py:2018:45: error[unsupported-operator] Operator `<` is not supported for types `None` and `int`, in comparing `(Unknown & ~BaseIndexer) | None` with `Literal[0]` +pandas/core/window/rolling.py:2018:45: error[unsupported-operator] Operator `<` is not supported between objects of type `(Unknown & ~BaseIndexer) | None` and `Literal[0]` pandas/core/window/rolling.py:3494:13: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `int | BaseIndexer`, found `(Unknown & BaseIndexer) | int | (Unknown & ~BaseIndexer) | None` pandas/io/clipboard/__init__.py:121:18: error[unresolved-reference] Name `Foundation` used when not defined pandas/io/clipboard/__init__.py:122:45: error[unresolved-reference] Name `Foundation` used when not defined @@ -754,7 +791,7 @@ pandas/io/excel/_base.py:520:12: error[invalid-return-type] Return type does not pandas/io/excel/_base.py:574:17: error[call-non-callable] Object of type `object` is not callable pandas/io/excel/_base.py:578:17: error[call-non-callable] Object of type `object` is not callable pandas/io/excel/_base.py:844:21: error[unsupported-operator] Operator `+=` is unsupported between objects of type `object` and `int` -pandas/io/excel/_base.py:846:20: error[unsupported-operator] Operator `>` is not supported for types `object` and `int` +pandas/io/excel/_base.py:846:20: error[unsupported-operator] Operator `>` is not supported between objects of type `object` and `int` pandas/io/excel/_base.py:852:17: error[invalid-assignment] Invalid subscript assignment with key of type `object` and value of type `list[Hashable]` on object of type `list[Unknown]` pandas/io/excel/_base.py:852:57: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> Unknown, (s: slice[Any, Any, Any], /) -> list[Unknown]]` cannot be called with key of type `object` on object of type `list[Unknown]` pandas/io/excel/_base.py:855:54: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> Unknown, (s: slice[Any, Any, Any], /) -> list[Unknown]]` cannot be called with key of type `object` on object of type `list[Unknown]` @@ -795,7 +832,6 @@ pandas/io/formats/style.py:2732:13: warning[possibly-missing-attribute] Attribut pandas/io/formats/style.py:2732:38: error[invalid-argument-type] Argument to bound method `extend` is incorrect: Expected `Iterable[CSSDict]`, found `dict[Any, list[CSSDict]] | list[CSSDict] | None` pandas/io/formats/style.py:4022:41: error[invalid-argument-type] Argument to function `_validate_apply_axis_arg` is incorrect: Expected `NDFrame | Sequence[Unknown] | ndarray[tuple[Any, ...], dtype[Any]]`, found `bytes | (date & Iterable[object]) | (timedelta & Iterable[object]) | ... omitted 12 union elements` pandas/io/formats/style.py:4025:42: error[invalid-argument-type] Argument to function `_validate_apply_axis_arg` is incorrect: Expected `NDFrame | Sequence[Unknown] | ndarray[tuple[Any, ...], dtype[Any]]`, found `bytes | (date & Iterable[object]) | (timedelta & Iterable[object]) | ... omitted 12 union elements` -pandas/io/formats/style.py:4234:20: error[invalid-assignment] Object of type `floating[Any]` is not assignable to `int | float` pandas/io/formats/style_render.py:1222:17: error[invalid-argument-type] Argument to function `_maybe_wrap_formatter` is incorrect: Expected `str | ((...) -> Unknown) | None`, found `object` pandas/io/formats/style_render.py:1402:25: error[invalid-assignment] Object of type `dict[int | Unknown, object]` is not assignable to `str | ((...) -> Unknown) | dict[Any, str | ((...) -> Unknown) | None] | None` pandas/io/formats/style_render.py:1409:17: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[Any, str | ((...) -> Unknown) | None] | str | ((...) -> Unknown) | None` @@ -844,12 +880,12 @@ pandas/io/parsers/python_parser.py:530:25: error[unknown-argument] Argument `non pandas/io/parsers/python_parser.py:736:48: error[invalid-argument-type] Argument to bound method `_handle_usecols` is incorrect: Expected `list[list[str | bytes | date | ... omitted 11 union elements]]`, found `list[Unknown | list[int]]` pandas/io/parsers/python_parser.py:736:57: error[invalid-argument-type] Argument to bound method `_handle_usecols` is incorrect: Expected `list[str | bytes | date | ... omitted 11 union elements]`, found `Unknown | list[int]` pandas/io/parsers/readers.py:1574:41: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `(@Todo & ~Literal[False] & ~_NoDefault) | None` -pandas/io/pytables.py:483:8: error[unsupported-operator] Operator `<=` is not supported for types `None` and `None`, in comparing `Unknown | None | int` with `Unknown | None | int` -pandas/io/pytables.py:487:11: error[unsupported-operator] Operator `>` is not supported for types `None` and `int`, in comparing `Unknown | None | int` with `Literal[1]` +pandas/io/pytables.py:483:8: error[unsupported-operator] Operator `<=` is not supported between two objects of type `Unknown | None | int` +pandas/io/pytables.py:487:11: error[unsupported-operator] Operator `>` is not supported between objects of type `Unknown | None | int` and `Literal[1]` pandas/io/pytables.py:639:30: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method pandas/io/pytables.py:702:20: error[invalid-return-type] Return type does not match returned value: expected `list[str]`, found `list[Unknown | None | str]` pandas/io/pytables.py:1941:55: error[invalid-argument-type] Argument to bound method `_create_storer` is incorrect: Expected `str`, found `Unknown | None` -pandas/io/pytables.py:2091:15: error[unsupported-operator] Operator `<` is not supported for types `None` and `None`, in comparing `Unknown | None | Literal[0]` with `Unknown | None | Literal[0]` +pandas/io/pytables.py:2091:15: error[unsupported-operator] Operator `<` is not supported between two objects of type `Unknown | None | Literal[0]` pandas/io/pytables.py:2092:24: error[unsupported-operator] Operator `+` is unsupported between objects of type `Unknown | None | Literal[0]` and `int | None` pandas/io/pytables.py:2092:50: error[invalid-argument-type] Argument to function `min` is incorrect: Argument type `Unknown | None | Literal[0]` does not satisfy upper bound `SupportsDunderLT[Any] | SupportsDunderGT[Any]` of type variable `SupportsRichComparisonT` pandas/io/pytables.py:2196:16: warning[possibly-missing-attribute] Attribute `itemsize` may be missing on object of type `Unknown | None` @@ -861,14 +897,14 @@ pandas/io/pytables.py:2341:45: warning[possibly-missing-attribute] Attribute `it pandas/io/pytables.py:2645:72: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Iterable[Unknown]`, found `Unknown | None` pandas/io/pytables.py:2700:12: warning[possibly-missing-attribute] Attribute `startswith` may be missing on object of type `(Unknown & ~None) | ExtensionDtype | str | ... omitted 3 union elements` pandas/io/pytables.py:2702:48: error[invalid-argument-type] Argument to function `_set_tz` is incorrect: Expected `str`, found `(Unknown & ~None) | ExtensionDtype | str | ... omitted 3 union elements` -pandas/io/pytables.py:2749:17: error[invalid-argument-type] Argument to function `_unconvert_string_array` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `DatetimeArray | @Todo | ndarray[tuple[Any, ...], Unknown]` +pandas/io/pytables.py:2742:29: error[no-matching-overload] No overload of bound method `astype` matches arguments +pandas/io/pytables.py:2749:17: error[invalid-argument-type] Argument to function `_unconvert_string_array` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `DatetimeArray | ndarray[tuple[Any, ...], dtype[Any]] | Unknown | ndarray[tuple[Any, ...], Unknown]` pandas/io/pytables.py:2841:20: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int, int]`, found `tuple[int, ...]` pandas/io/pytables.py:3118:35: error[invalid-argument-type] Argument to bound method `write_array` is incorrect: Expected `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | Series`, found `Unknown | None` pandas/io/pytables.py:3146:41: error[invalid-argument-type] Argument to bound method `write_array` is incorrect: Expected `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | Series`, found `Unknown | None` pandas/io/pytables.py:3184:16: error[non-subscriptable] Cannot subscript object of type `Node` with no `__getitem__` method pandas/io/pytables.py:3289:45: error[invalid-argument-type] Argument to bound method `write_array_empty` is incorrect: Expected `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | Series | Unknown` pandas/io/pytables.py:3333:41: error[invalid-argument-type] Argument to bound method `write_array_empty` is incorrect: Expected `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]`, found `(ExtensionArray & ~BaseStringArray) | (ndarray[tuple[Any, ...], dtype[Any]] & ~BaseStringArray) | (Index & ~BaseStringArray) | (Series & ~BaseStringArray) | (Unknown & ~BaseStringArray)` -pandas/io/pytables.py:3635:16: error[invalid-return-type] Return type does not match returned value: expected `int`, found `signedinteger[_64Bit]` pandas/io/pytables.py:3666:24: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `Unknown | None` pandas/io/pytables.py:3678:22: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc`, found `Unknown | None` pandas/io/pytables.py:4135:13: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> Index, (s: slice[Any, Any, Any], /) -> list[Index]]` cannot be called with key of type `int | Unknown | None` on object of type `list[Index]` @@ -876,6 +912,7 @@ pandas/io/pytables.py:4136:40: error[invalid-argument-type] Argument to bound me pandas/io/pytables.py:4824:26: error[no-matching-overload] No overload of bound method `reshape` matches arguments pandas/io/pytables.py:4824:26: error[no-matching-overload] No overload of bound method `reshape` matches arguments pandas/io/pytables.py:5205:19: warning[possibly-missing-attribute] Attribute `to_numpy` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` +pandas/io/pytables.py:5506:26: error[no-matching-overload] No overload of bound method `generate` matches arguments pandas/io/sas/sas7bdat.py:519:63: error[invalid-argument-type] Argument to bound method `_convert_header_text` is incorrect: Expected `bytes`, found `Unknown | str | bytes` pandas/io/sql.py:1036:20: warning[possibly-missing-attribute] Attribute `copy` may be missing on object of type `Unknown | None | DataFrame` pandas/io/sql.py:1045:38: warning[possibly-missing-attribute] Attribute `columns` may be missing on object of type `Unknown | DataFrame | None` @@ -899,6 +936,7 @@ pandas/io/sql.py:1346:25: error[invalid-assignment] Cannot assign to a subscript pandas/io/sql.py:1914:33: warning[possibly-missing-attribute] Attribute `items` may be missing on object of type `ExtensionDtype | str | dtype[Any] | ... omitted 4 union elements` pandas/io/sql.py:2548:31: warning[possibly-missing-attribute] Attribute `columns` may be missing on object of type `Unknown | None | DataFrame` pandas/io/sql.py:2866:33: warning[possibly-missing-attribute] Attribute `items` may be missing on object of type `ExtensionDtype | str | dtype[Any] | ... omitted 4 union elements` +pandas/io/stata.py:313:30: error[no-matching-overload] No overload of bound method `astype` matches arguments pandas/io/stata.py:2253:16: error[invalid-return-type] Return type does not match returned value: expected `AnyStr@_pad_bytes`, found `bytes` pandas/io/stata.py:2254:12: error[invalid-return-type] Return type does not match returned value: expected `AnyStr@_pad_bytes`, found `str` pandas/io/stata.py:2915:21: error[invalid-argument-type] Argument to function `isfile` is incorrect: Expected `int | str | bytes | PathLike[str] | PathLike[bytes]`, found `str | (Unknown & PathLike[object]) | PathLike[str] | (WriteBuffer[bytes] & PathLike[object])` @@ -920,8 +958,33 @@ pandas/plotting/_matplotlib/converter.py:182:21: warning[possibly-missing-attrib pandas/plotting/_matplotlib/converter.py:227:9: error[invalid-method-override] Invalid override of method `convert`: Definition is incompatible with `DateConverter.convert` pandas/plotting/_matplotlib/converter.py:236:16: error[no-matching-overload] No overload of function `to_offset` matches arguments pandas/plotting/_matplotlib/converter.py:291:9: error[invalid-method-override] Invalid override of method `convert`: Definition is incompatible with `DateConverter.convert` +pandas/plotting/_matplotlib/converter.py:784:5: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["val"]` and value of type `ndarray[tuple[int], dtype[signedinteger[Any]]]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:785:14: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["val"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:786:5: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["fmt"]` and value of type `Literal[""]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:788:16: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["maj"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:789:16: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["fmt"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:793:9: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["min"]` and value of type `Literal[True]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:810:9: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["fmt"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:811:9: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["min"]` and value of type `Literal[True]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:818:9: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["min"]` and value of type `Literal[True]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:827:9: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["min"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:837:9: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["min"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` pandas/plotting/_matplotlib/converter.py:841:12: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:854:5: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["val"]` and value of type `ndarray[tuple[int], dtype[signedinteger[Any]]]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:855:5: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["fmt"]` and value of type `Literal[""]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:856:14: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["val"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:857:16: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["maj"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:858:16: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["fmt"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:863:9: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["min"]` and value of type `Literal[True]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:876:9: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["min"]` and value of type `Literal[True]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:886:9: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["min"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` pandas/plotting/_matplotlib/converter.py:889:12: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:901:5: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["val"]` and value of type `ndarray[tuple[int], dtype[signedinteger[Any]]]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:902:5: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["fmt"]` and value of type `Literal[""]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:903:14: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["val"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:908:5: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["maj"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:909:5: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["min"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` +pandas/plotting/_matplotlib/converter.py:910:5: error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]] | tuple[ndarray[tuple[Any, ...], dtype[integer[Any] | bool[bool]]], ...], /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: SupportsIndex | tuple[SupportsIndex, ...], /) -> Any, (key: SupportsIndex | slice[Any, Any, Any] | EllipsisType | ... omitted 5 union elements, /) -> ndarray[tuple[Any, ...], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]], (key: str, /) -> ndarray[tuple[int], dtype[Any]], (key: list[str], /) -> ndarray[tuple[int], dtype[void]]]` cannot be called with key of type `Literal["fmt"]` on object of type `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` pandas/plotting/_matplotlib/converter.py:912:12: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[int], list[Unknown | tuple[str, ] | tuple[str, ] | tuple[str, str]]]` pandas/plotting/_matplotlib/converter.py:932:30: warning[possibly-missing-attribute] Submodule `ticker` may not be available as an attribute on module `matplotlib` pandas/plotting/_matplotlib/converter.py:1013:16: warning[possibly-missing-attribute] Submodule `transforms` may not be available as an attribute on module `matplotlib` @@ -933,6 +996,7 @@ pandas/plotting/_matplotlib/core.py:756:21: error[unresolved-attribute] Object o pandas/plotting/_matplotlib/core.py:1063:35: error[invalid-return-type] Function can implicitly return `None`, which is not assignable to return type `bool` pandas/plotting/_matplotlib/core.py:1240:32: warning[possibly-missing-attribute] Submodule `axes` may not be available as an attribute on module `matplotlib` pandas/plotting/_matplotlib/core.py:1383:21: warning[possibly-missing-attribute] Submodule `patches` may not be available as an attribute on module `matplotlib` +pandas/plotting/_matplotlib/core.py:1389:13: error[invalid-argument-type] Argument to bound method `scatter` is incorrect: Expected `int | float | _Buffer | ... omitted 5 union elements`, found `Unknown | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` pandas/plotting/_matplotlib/core.py:1457:39: error[invalid-argument-type] Argument to bound method `get_cmap` is incorrect: Expected `str | Colormap`, found `Unknown | None` pandas/plotting/_matplotlib/misc.py:131:22: warning[possibly-missing-attribute] Submodule `lines` may not be available as an attribute on module `matplotlib` pandas/plotting/_matplotlib/misc.py:192:18: warning[possibly-missing-attribute] Submodule `patches` may not be available as an attribute on module `matplotlib` @@ -964,4 +1028,4 @@ pandas/util/_exceptions.py:45:15: error[no-matching-overload] No overload of fun pandas/util/_print_versions.py:29:14: error[unresolved-import] Cannot resolve imported module `pandas._version_meson` pandas/util/_validators.py:388:33: error[invalid-argument-type] Argument to function `validate_bool_kwarg` is incorrect: Argument type `object` does not satisfy constraints (`bool`, `int`, `None`) of type variable `BoolishNoneT` typings/numba.pyi:24:21: error[unresolved-attribute] Module `numba` has no member `compiler` -Found 966 diagnostics +Found 1030 diagnostics diff --git a/scripts/ty_benchmark/snapshots/prefect_ty.txt b/scripts/ty_benchmark/snapshots/prefect_ty.txt index 5cf646f825..f61cddca96 100644 --- a/scripts/ty_benchmark/snapshots/prefect_ty.txt +++ b/scripts/ty_benchmark/snapshots/prefect_ty.txt @@ -46,6 +46,8 @@ src/prefect/server/models/block_types.py:200:12: error[unresolved-attribute] Obj src/prefect/server/models/block_types.py:221:12: error[unresolved-attribute] Object of type `Result[Any]` has no attribute `rowcount` src/prefect/server/models/concurrency_limits.py:153:12: error[unresolved-attribute] Object of type `Result[Any]` has no attribute `rowcount` src/prefect/server/models/concurrency_limits.py:165:12: error[unresolved-attribute] Object of type `Result[Any]` has no attribute `rowcount` +src/prefect/server/models/concurrency_limits_v2.py:16:12: error[invalid-return-type] Return type does not match returned value: expected `ColumnElement[int | float]`, found `greatest[int]` +src/prefect/server/models/concurrency_limits_v2.py:69:12: error[invalid-return-type] Return type does not match returned value: expected `ColumnElement[int | float]`, found `greatest[int]` src/prefect/server/models/concurrency_limits_v2.py:171:12: error[unresolved-attribute] Object of type `Result[Unknown]` has no attribute `rowcount` src/prefect/server/models/concurrency_limits_v2.py:192:12: error[unresolved-attribute] Object of type `Result[Any]` has no attribute `rowcount` src/prefect/server/models/concurrency_limits_v2.py:236:12: error[unresolved-attribute] Object of type `Result[Unknown]` has no attribute `rowcount` @@ -131,4 +133,4 @@ src/prefect/server/models/workers.py:672:12: warning[possibly-missing-attribute] src/prefect/server/models/workers.py:755:9: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["heartbeat_interval_seconds"]` and value of type `int` on object of type `dict[str, datetime | WorkerStatus]` src/prefect/server/models/workers.py:770:12: error[unresolved-attribute] Object of type `Result[Unknown]` has no attribute `rowcount` src/prefect/server/models/workers.py:799:12: error[unresolved-attribute] Object of type `Result[Any]` has no attribute `rowcount` -Found 133 diagnostics +Found 135 diagnostics diff --git a/scripts/ty_benchmark/snapshots/pytorch_Pyrefly.txt b/scripts/ty_benchmark/snapshots/pytorch_Pyrefly.txt index f61afc16b2..68aa42e827 100644 --- a/scripts/ty_benchmark/snapshots/pytorch_Pyrefly.txt +++ b/scripts/ty_benchmark/snapshots/pytorch_Pyrefly.txt @@ -607,6 +607,7 @@ ERROR torch/_dynamo/compiled_autograd.py:181:20-31: No attribute `isnan` in modu ERROR torch/_dynamo/compiled_autograd.py:192:20-31: No attribute `isnan` in module `torch` [missing-attribute] ERROR torch/_dynamo/compiled_autograd.py:420:13-34: Module `torch.fx.experimental` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_dynamo/compiled_autograd.py:420:13-50: Module `torch.fx.experimental.symbolic_shapes` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR torch/_dynamo/compiled_autograd.py:422:16-427:10: Returned type `tuple[str, list[Tensor], list[Unknown], list[float | int]]` is not assignable to declared return type `tuple[str, list[Tensor], list[IntLikeType], list[FloatLikeType]]` [bad-return] ERROR torch/_dynamo/compiled_autograd.py:473:12-33: No attribute `is_grad_enabled` in module `torch` [missing-attribute] ERROR torch/_dynamo/compiled_autograd.py:486:19-35: Module `torch._functorch` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_dynamo/compiled_autograd.py:486:19-49: Module `torch._functorch._aot_autograd` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] @@ -630,6 +631,7 @@ ERROR torch/_dynamo/compiled_autograd.py:1573:5-21: Module `torch._C._dynamo` ex ERROR torch/_dynamo/compiled_autograd.py:1574:5-21: Module `torch._C._dynamo` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_dynamo/compiled_autograd.py:1575:5-21: Module `torch._C._dynamo` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_dynamo/compiled_autograd.py:1597:64-87: No attribute `contiguous_format` in module `torch` [missing-attribute] +ERROR torch/_dynamo/comptime.py:234:9-235:27: `InstructionTranslatorBase | None` is not assignable to `InstructionTranslatorBase` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/_dynamo/convert_frame.py:289:27-48: No attribute `is_grad_enabled` in module `torch` [missing-attribute] ERROR torch/_dynamo/convert_frame.py:296:13-47: No attribute `_PreserveDispatchKeyGuard` in module `torch._C` [missing-attribute] ERROR torch/_dynamo/convert_frame.py:300:36-67: No attribute `is_inference_mode_enabled` in module `torch` [missing-attribute] @@ -643,6 +645,7 @@ ERROR torch/_dynamo/convert_frame.py:342:21-66: No attribute `_is_default_mobile ERROR torch/_dynamo/convert_frame.py:345:21-65: No attribute `_unset_default_mobile_cpu_allocator` in module `torch._C` [missing-attribute] ERROR torch/_dynamo/convert_frame.py:347:26-55: No attribute `DisableTorchFunction` in module `torch._C` [missing-attribute] ERROR torch/_dynamo/convert_frame.py:349:17-52: No attribute `_set_fp32_precision_setter` in module `torch._C` [missing-attribute] +ERROR torch/_dynamo/convert_frame.py:667:9-671:43: `FrameType | None` is not assignable to `FrameType` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/_dynamo/convert_frame.py:1034:23-69: `((...) -> Any) | GraphModule` is not assignable to variable `compiled_fn` with type `((...) -> Any) | None` [bad-assignment] ERROR torch/_dynamo/convert_frame.py:1035:57-68: Argument `((...) -> Any) | None` is not assignable to parameter `compiled_fn` with type `(...) -> Any` in function `GraphRuntimeEnv.forward_callable` [bad-argument-type] ERROR torch/_dynamo/convert_frame.py:1206:25-43: Argument `(gm: GraphModule, example_inputs: list[Tensor]) -> GraphModule` is not assignable to parameter `compiler_fn` with type `(GraphModule, list[Tensor]) -> CompiledFn` in function `compile_frame` [bad-argument-type] @@ -712,6 +715,7 @@ ERROR torch/_dynamo/device_interface.py:580:27-39: No attribute `device` in modu ERROR torch/_dynamo/eval_frame.py:210:49-81: Argument `WrapBackendDebug` is not assignable to parameter `compiler_fn` with type `(GraphModule, list[Tensor]) -> CompiledFn` in function `_create_wrapped_callback` [bad-argument-type] ERROR torch/_dynamo/eval_frame.py:316:49-61: Argument `WrapBackendDebug` is not assignable to parameter `compiler_fn` with type `(GraphModule, list[Tensor]) -> CompiledFn` in function `_create_wrapped_callback` [bad-argument-type] ERROR torch/_dynamo/eval_frame.py:357:12-28: Module `torch._C._dynamo` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR torch/_dynamo/eval_frame.py:401:39-44: Runtime checkable protocol `Sized` has an unsafe overlap with type `Module` [invalid-argument] ERROR torch/_dynamo/eval_frame.py:410:44-67: Argument `BoundMethod[Module, (...) -> Any]` is not assignable to parameter `fn` with type `(...) -> Any` in function `DisableContext.__call__` [bad-argument-type] ERROR torch/_dynamo/eval_frame.py:421:71-85: Argument `Module` is not assignable to parameter `fn` with type `(ParamSpec(@_)) -> @_` in function `torch._dynamo.external_utils.wrap_inline` [bad-argument-type] ERROR torch/_dynamo/eval_frame.py:527:9-20: Class member `OptimizedModule.__setattr__` overrides parent class `Module` in an inconsistent manner [bad-param-name-override] @@ -792,6 +796,7 @@ ERROR torch/_dynamo/guards.py:3507:15-32: Module `torch._dynamo.exc` exists, but ERROR torch/_dynamo/guards.py:3553:37-53: Module `torch._C._dynamo` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_dynamo/guards.py:3776:23-40: Module `torch._dynamo.exc` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_dynamo/guards.py:3788:23-40: Module `torch._dynamo.exc` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR torch/_dynamo/guards.py:3842:25-3844:20: Object of class `object` has no attribute `items` [missing-attribute] ERROR torch/_dynamo/guards.py:3855:21-34: Module `torch._guards` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_dynamo/logging.py:52:16-22: Could not find import of `triton` [missing-import] ERROR torch/_dynamo/output_graph.py:335:28-44: Module `torch._functorch` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] @@ -869,6 +874,7 @@ ERROR torch/_dynamo/polyfills/__init__.py:364:12-31: No attribute `_foreach_add_ ERROR torch/_dynamo/polyfills/__init__.py:368:12-30: No attribute `_foreach_pow` in module `torch` [missing-attribute] ERROR torch/_dynamo/polyfills/fx.py:4:22-39: Could not import `_fx_map_aggregate` from `torch._C` [missing-module-attribute] ERROR torch/_dynamo/polyfills/fx.py:4:41-52: Could not import `_fx_map_arg` from `torch._C` [missing-module-attribute] +ERROR torch/_dynamo/polyfills/os.py:17:1-64: Argument `(path: PathLike[AnyStr] | AnyStr) -> AnyStr` is not assignable to parameter with type `(path: str) -> str` [bad-argument-type] ERROR torch/_dynamo/polyfills/tensor.py:14:10-47: No attribute `DisableTorchFunctionSubclass` in module `torch._C` [missing-attribute] ERROR torch/_dynamo/repro/after_aot.py:42:5-63: Could not find import of `triton.runtime.autotuner` [missing-import] ERROR torch/_dynamo/repro/after_aot.py:43:5-47: Could not find import of `triton.runtime.jit` [missing-import] @@ -1024,6 +1030,7 @@ ERROR torch/_dynamo/utils.py:4445:9-32: No attribute `default_generator` in modu ERROR torch/_dynamo/utils.py:4496:35-73: No attribute `_disabled_torch_function_impl` in module `torch._C` [missing-attribute] ERROR torch/_dynamo/utils.py:4507:27-40: Module `torch._guards` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_dynamo/utils.py:4557:14-45: Module `torch._dynamo.compiled_autograd` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR torch/_dynamo/utils.py:4594:9-13: `args` cannot be annotated with `list[Any]`, it is already defined with type `tuple[Any, ...]` [redefinition] ERROR torch/_dynamo/utils.py:4612:8-39: Module `torch._dynamo.compiled_autograd` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_dynamo/utils.py:4690:17-35: Module `torch._C._autograd` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_dynamo/utils.py:4693:9-27: Module `torch._C._autograd` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] @@ -1277,7 +1284,6 @@ ERROR torch/_dynamo/variables/functions.py:628:18-44: Module `torch._dynamo.side ERROR torch/_dynamo/variables/functions.py:645:22-48: Module `torch._dynamo.side_effects` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_dynamo/variables/functions.py:1839:34-47: Module `torch._guards` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] WARN torch/_dynamo/variables/functions.py:1981:13-38: `torch.distributed.distributed_c10d._reduce_scatter_base` is deprecated [deprecated] -ERROR torch/_dynamo/variables/functions.py:2193:33-45: `(...) -> object` is not assignable to attribute `traceable_fn` with type `_F` [bad-assignment] ERROR torch/_dynamo/variables/functions.py:2446:9-17: Class member `DynamoTritonHOPifier.call_HOP` overrides parent class `TritonHOPifier` in an inconsistent manner [bad-param-name-override] ERROR torch/_dynamo/variables/higher_order_ops.py:98:24-57: Argument `list[bool] | None` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type] ERROR torch/_dynamo/variables/higher_order_ops.py:98:66-83: Argument `list[Any] | None` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type] @@ -1459,7 +1465,6 @@ ERROR torch/_dynamo/variables/misc.py:1046:16-47: Module `torch._dynamo.compiled ERROR torch/_dynamo/variables/misc.py:1083:9-22: Class member `LambdaVariable.call_function` overrides parent class `VariableTracker` in an inconsistent manner [bad-override] ERROR torch/_dynamo/variables/misc.py:1145:9-22: Class member `GetAttrVariable.call_function` overrides parent class `VariableTracker` in an inconsistent manner [bad-override] ERROR torch/_dynamo/variables/misc.py:1237:9-22: Class member `MethodWrapperVariable.call_function` overrides parent class `VariableTracker` in an inconsistent manner [bad-override] -ERROR torch/_dynamo/variables/misc.py:1272:29-61: `(self: type) -> MappingProxyType[str, Any]` is not subscriptable [unsupported-operation] ERROR torch/_dynamo/variables/misc.py:1367:42-52: `attr_value` may be uninitialized [unbound-name] ERROR torch/_dynamo/variables/misc.py:1403:20-35: Object of class `InstructionTranslator` has no attribute `side_effects` [missing-attribute] ERROR torch/_dynamo/variables/misc.py:1498:9-22: Class member `NumpyVariable.call_function` overrides parent class `VariableTracker` in an inconsistent manner [bad-override] @@ -2000,6 +2005,7 @@ ERROR torch/_export/db/examples/type_reflection_method.py:20:17-28: No attribute ERROR torch/_export/db/examples/unsupported_operator.py:15:17-28: No attribute `randn` in module `torch` [missing-attribute] ERROR torch/_export/db/examples/user_input_mutation.py:15:17-28: No attribute `randn` in module `torch` [missing-attribute] ERROR torch/_export/db/logging.py:43:33-40: Cannot index into `dict[type[TorchRuntimeError] | type[Unsupported] | type[UserError], str | None]` [bad-index] +ERROR torch/_export/non_strict_utils.py:102:9-105:27: `list[KeyEntry] | tuple[KeyEntry, ...]` is not assignable to `tuple[KeyEntry, ...]` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/_export/non_strict_utils.py:172:51-69: No attribute `ScriptObject` in module `torch` [missing-attribute] ERROR torch/_export/non_strict_utils.py:312:54-67: No attribute `maximum` in module `torch` [missing-attribute] ERROR torch/_export/non_strict_utils.py:321:39-52: No attribute `maximum` in module `torch` [missing-attribute] @@ -2019,7 +2025,7 @@ ERROR torch/_export/non_strict_utils.py:1035:20-32: No attribute `tensor` in mod ERROR torch/_export/non_strict_utils.py:1044:24-35: Module `torch._refs` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_export/non_strict_utils.py:1050:38-53: No attribute `unsqueeze` in module `torch` [missing-attribute] ERROR torch/_export/non_strict_utils.py:1052:34-46: No attribute `select` in module `torch` [missing-attribute] -ERROR torch/_export/non_strict_utils.py:1103:25-32: Index 0 out of range for tuple with 0 elements [bad-index] +ERROR torch/_export/non_strict_utils.py:1103:30-31: Index 0 out of range for tuple with 0 elements [bad-index] ERROR torch/_export/pass_base.py:123:29-45: No attribute `dequantize` in module `torch` [missing-attribute] ERROR torch/_export/pass_base.py:167:29-45: No attribute `dequantize` in module `torch` [missing-attribute] ERROR torch/_export/pass_base.py:341:21-32: No attribute `empty` in module `torch` [missing-attribute] @@ -2076,6 +2082,7 @@ ERROR torch/_export/passes/replace_set_grad_with_hop_pass.py:41:40-66: No attrib ERROR torch/_export/passes/replace_set_grad_with_hop_pass.py:44:41-62: No attribute `is_grad_enabled` in module `torch` [missing-attribute] ERROR torch/_export/passes/replace_view_ops_with_view_copy_ops_pass.py:18:24-47: No attribute `FunctionSchema` in module `torch._C` [missing-attribute] ERROR torch/_export/passes/replace_view_ops_with_view_copy_ops_pass.py:25:38-61: No attribute `FunctionSchema` in module `torch._C` [missing-attribute] +ERROR torch/_export/serde/dynamic_shapes.py:49:12-56:6: `dict[str, RootDim]` is not assignable to variable `dims` with type `dict[str, dict[str, int | list[str] | None]]` [bad-assignment] ERROR torch/_export/serde/serialize.py:134:5-16: No attribute `uint8` in module `torch` [missing-attribute] ERROR torch/_export/serde/serialize.py:135:5-15: No attribute `int8` in module `torch` [missing-attribute] ERROR torch/_export/serde/serialize.py:136:5-17: No attribute `uint16` in module `torch` [missing-attribute] @@ -2192,6 +2199,7 @@ ERROR torch/_export/serde/serialize.py:2558:29-47: Module `torch.utils._sympy` e ERROR torch/_export/serde/serialize.py:2558:29-57: Module `torch.utils._sympy.functions` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_export/serde/serialize.py:3101:51-85: No attribute `_get_max_operator_version` in module `torch._C` [missing-attribute] ERROR torch/_export/serde/serialize.py:3180:9-16: Class member `EnumEncoder.default` overrides parent class `JSONEncoder` in an inconsistent manner [bad-param-name-override] +ERROR torch/_export/serde/serialize.py:3640:5-14: `constants` cannot be annotated with `set[str]`, it is already defined with type `set[str] | None` [redefinition] ERROR torch/_export/serde/serialize.py:3865:31-51: No attribute `FunctionSchema` in module `torch` [missing-attribute] ERROR torch/_export/verifier.py:49:19-38: No attribute `memory_format` in module `torch` [missing-attribute] ERROR torch/_export/verifier.py:49:40-51: No attribute `dtype` in module `torch` [missing-attribute] @@ -2289,6 +2297,7 @@ ERROR torch/_functorch/_aot_autograd/graph_capture_wrappers.py:778:17-40: No att ERROR torch/_functorch/_aot_autograd/graph_capture_wrappers.py:778:41-61: No attribute `DispatchKey` in module `torch._C` [missing-attribute] ERROR torch/_functorch/_aot_autograd/graph_capture_wrappers.py:862:29-47: Module `torch.fx.traceback` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_functorch/_aot_autograd/graph_capture_wrappers.py:907:30-48: Module `torch.fx.traceback` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR torch/_functorch/_aot_autograd/graph_capture_wrappers.py:959:28-964:26: No matching overload found for function `zip.__new__` called with arguments: (type[zip[_T_co]], None, list[FxValue], None, list[InputAliasInfo]) [no-matching-overload] ERROR torch/_functorch/_aot_autograd/graph_capture_wrappers.py:971:29-47: Module `torch.fx.traceback` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_functorch/_aot_autograd/graph_capture_wrappers.py:1008:25-43: Module `torch.fx.traceback` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_functorch/_aot_autograd/graph_capture_wrappers.py:1074:25-58: No attribute `_ExcludeDispatchKeyGuard` in module `torch._C` [missing-attribute] @@ -2833,7 +2842,7 @@ ERROR torch/_higher_order_ops/triton_kernel_wrap.py:412:17-87: Could not find im ERROR torch/_higher_order_ops/triton_kernel_wrap.py:419:13-71: Could not find import of `triton._utils` [missing-import] ERROR torch/_higher_order_ops/triton_kernel_wrap.py:1019:16-32: Method `__call__` inherited from class `HigherOrderOperator` has no implementation and cannot be accessed via `super()` [missing-attribute] ERROR torch/_higher_order_ops/triton_kernel_wrap.py:1045:16-32: Method `__call__` inherited from class `HigherOrderOperator` has no implementation and cannot be accessed via `super()` [missing-attribute] -ERROR torch/_higher_order_ops/triton_kernel_wrap.py:1080:13-17: Argument `list[((dict[str, int]) -> tuple[int, ...]) | tuple[Expr | SymInt | int, ...]]` is not assignable to parameter `grids` with type `list[((dict[str, int]) -> tuple[int, ...]) | tuple[Expr | int, ...]]` in function `torch._inductor.codegen.wrapper.user_defined_kernel_grid_fn_code` [bad-argument-type] +ERROR torch/_higher_order_ops/triton_kernel_wrap.py:1080:13-17: Argument `list[TritonGridType]` is not assignable to parameter `grids` with type `list[TritonGrid]` in function `torch._inductor.codegen.wrapper.user_defined_kernel_grid_fn_code` [bad-argument-type] ERROR torch/_higher_order_ops/triton_kernel_wrap.py:1095:17-1098:18: Could not find import of `triton.tools.experimental_descriptor` [missing-import] ERROR torch/_higher_order_ops/triton_kernel_wrap.py:1115:17-76: Could not find import of `triton.tools.tensor_descriptor` [missing-import] ERROR torch/_higher_order_ops/triton_kernel_wrap.py:1140:5-20: Cannot index into `Autotuner` [bad-index] @@ -3119,6 +3128,7 @@ ERROR torch/_inductor/choices.py:107:37-48: No attribute `dtype` in module `torc ERROR torch/_inductor/choices.py:352:34-52: Module `torch.utils._sympy` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/choices.py:352:34-60: Module `torch.utils._sympy.numbers` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/choices.py:391:17-29: No attribute `device` in module `torch` [missing-attribute] +ERROR torch/_inductor/choices.py:502:25-513:26: Argument `() -> dict[str, float | list[str] | str | None]` is not assignable to parameter `row_fn` with type `() -> dict[str, float | str | None]` in function `torch._inductor.metrics.MetricTable.add_row` [bad-argument-type] ERROR torch/_inductor/codegen/common.py:183:13-25: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/codegen/common.py:186:12-23: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/codegen/common.py:186:26-37: No attribute `uint8` in module `torch` [missing-attribute] @@ -3818,7 +3828,7 @@ ERROR torch/_inductor/codegen/cpp_wrapper_gpu.py:750:60-71: No attribute `uint8` ERROR torch/_inductor/codegen/cpp_wrapper_mps.py:39:26-38: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/codegen/cpp_wrapper_mps.py:84:37-48: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/codegen/cuda/cuda_kernel.py:13:19-39: Could not import `dtype` from `torch` [missing-module-attribute] -ERROR torch/_inductor/codegen/cuda/cuda_kernel.py:303:66-83: Argument `Sequence[Expr | int]` is not assignable to parameter `*iterables` with type `Iterable[Expr]` in function `itertools.chain.__new__` [bad-argument-type] +ERROR torch/_inductor/codegen/cuda/cuda_kernel.py:303:66-83: Argument `Sequence[_IntLike]` is not assignable to parameter `*iterables` with type `Iterable[Expr]` in function `itertools.chain.__new__` [bad-argument-type] ERROR torch/_inductor/codegen/cuda/cuda_kernel.py:387:23-48: Argument `int` is not assignable to parameter `count` with type `Expr` in function `torch._inductor.codegen.common.WorkspaceArg.__init__` [bad-argument-type] ERROR torch/_inductor/codegen/cuda/cuda_kernel.py:483:16-19: Returned type `Expr` is not assignable to declared return type `str` [bad-return] ERROR torch/_inductor/codegen/cuda/cuda_kernel.py:502:50-56: Argument `Expr | int` is not assignable to parameter `left` with type `Expr` in function `torch._inductor.sizevars.SizeVarAllocator.statically_known_leq` [bad-argument-type] @@ -4134,6 +4144,7 @@ ERROR torch/_inductor/codegen/halide.py:566:9-14: Class member `HalideOverrides. ERROR torch/_inductor/codegen/halide.py:594:25-36: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/codegen/halide.py:720:35-46: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/codegen/halide.py:811:42-43: Argument `Literal[1]` is not assignable to parameter `divisor` with type `Expr` in function `torch._inductor.codegen.simd.IterationRangesRoot.lookup` [bad-argument-type] +ERROR torch/_inductor/codegen/halide.py:832:17-860:51: `int` is not assignable to `int` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/_inductor/codegen/halide.py:983:32-70: `list[tuple[list[Basic | Unknown], Expr | Unknown] | tuple[list[Symbol], Expr]]` is not assignable to variable `split_failed` with type `list[tuple[list[Symbol], Expr]]` [bad-assignment] ERROR torch/_inductor/codegen/halide.py:1133:22-35: No attribute `float16` in module `torch` [missing-attribute] ERROR torch/_inductor/codegen/halide.py:1133:37-51: No attribute `bfloat16` in module `torch` [missing-attribute] @@ -4352,7 +4363,6 @@ ERROR torch/_inductor/codegen/simd_kernel_features.py:357:46-52: Argument `list[ ERROR torch/_inductor/codegen/subgraph.py:97:44-56: Object of class `Expr` has no attribute `name` [missing-attribute] ERROR torch/_inductor/codegen/subgraph.py:98:56-68: Object of class `Expr` has no attribute `name` [missing-attribute] ERROR torch/_inductor/codegen/subgraph.py:373:31-42: No attribute `empty` in module `torch` [missing-attribute] -ERROR torch/_inductor/codegen/triton_combo_kernel.py:619:26-44: Class `NoneType` has no class attribute `grid_expr` [missing-attribute] ERROR torch/_inductor/codegen/triton_split_scan.py:92:16-37: Could not find import of `triton.language` [missing-import] ERROR torch/_inductor/codegen/triton_split_scan.py:130:55-61: Argument `int` is not assignable to parameter `index` with type `Expr` in function `torch._inductor.codegen.simd.SIMDKernel.index_to_str` [bad-argument-type] ERROR torch/_inductor/codegen/triton_utils.py:39:25-44: No attribute `float8_e4m3fn` in module `torch` [missing-attribute] @@ -4372,10 +4382,10 @@ ERROR torch/_inductor/codegen/wrapper.py:1148:19-32: Module `torch._guards` exis ERROR torch/_inductor/codegen/wrapper.py:1155:14-36: Module `torch._inductor.config` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/codegen/wrapper.py:1233:34-59: Could not import `_cuda_getCurrentRawStream` from `torch._C` [missing-module-attribute] ERROR torch/_inductor/codegen/wrapper.py:1289:28-32: Cannot index into `dict[str, str]` [bad-index] -ERROR torch/_inductor/codegen/wrapper.py:1323:54-70: Argument `Sequence[Expr | int]` is not assignable to parameter `shape` with type `Sequence[Expr]` in function `PythonWrapperCodegen.codegen_python_shape_tuple` [bad-argument-type] +ERROR torch/_inductor/codegen/wrapper.py:1323:54-70: Argument `Sequence[_IntLike]` is not assignable to parameter `shape` with type `Sequence[Expr]` in function `PythonWrapperCodegen.codegen_python_shape_tuple` [bad-argument-type] ERROR torch/_inductor/codegen/wrapper.py:1920:16-38: Module `torch._inductor.config` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/codegen/wrapper.py:1940:56-61: Argument `Expr | Symbol | TensorBox | TorchBindObject` is not assignable to parameter `value` with type `TensorBox` in function `PythonWrapperCodegen.codegen_input_symbol_assignment` [bad-argument-type] -ERROR torch/_inductor/codegen/wrapper.py:1946:45-83: Argument `list[Iterable[Expr] | Sequence[Expr | int]]` is not assignable to parameter `iterable` with type `Iterable[Iterable[Expr]]` in function `itertools.chain.from_iterable` [bad-argument-type] +ERROR torch/_inductor/codegen/wrapper.py:1946:45-83: Argument `list[Iterable[Expr] | Sequence[_IntLike]]` is not assignable to parameter `iterable` with type `Iterable[Iterable[Expr]]` in function `itertools.chain.from_iterable` [bad-argument-type] ERROR torch/_inductor/codegen/wrapper.py:2131:38-56: No attribute `ScriptObject` in module `torch` [missing-attribute] ERROR torch/_inductor/codegen/wrapper.py:2378:41-52: Argument `list[SymInt | int] | None` is not assignable to parameter `block_shape` with type `list[Expr] | None` in function `torch._inductor.codegen.common.TMADescriptorArg.__init__` [bad-argument-type] ERROR torch/_inductor/codegen/wrapper.py:2462:45-48: Cannot set item in `dict[Symbol, Symbol]` [unsupported-operation] @@ -4409,6 +4419,7 @@ ERROR torch/_inductor/comms.py:69:34-46: No attribute `median` in module `torch` ERROR torch/_inductor/comms.py:70:9-21: No attribute `tensor` in module `torch` [missing-attribute] ERROR torch/_inductor/comms.py:776:8-22: Module `importlib.util` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/comms.py:1614:8-22: Module `importlib.util` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR torch/_inductor/comms.py:2129:5-2160:39: `list[BaseSchedulerNode] | object` is not assignable to `list[BaseSchedulerNode]` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/_inductor/comms.py:2471:13-38: Module `torch._inductor.scheduler` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/comms.py:2472:13-38: Module `torch._inductor.scheduler` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/comms.py:2479:18-43: Module `torch._inductor.scheduler` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] @@ -4438,6 +4449,8 @@ ERROR torch/_inductor/compile_fx.py:1672:29-42: Module `torch._guards` exists, b ERROR torch/_inductor/compile_fx.py:1677:29-50: Module `torch._inductor.debug` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/compile_fx.py:1819:24-37: Module `torch._guards` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/compile_fx.py:1840:12-31: No attribute `empty_strided` in module `torch` [missing-attribute] +ERROR torch/_inductor/compile_fx.py:1864:5-22: `static_input_idxs` cannot be annotated with `OrderedSet[int]`, it is already defined with type `Sequence[int]` [redefinition] +ERROR torch/_inductor/compile_fx.py:1964:5-19: `config_patches` cannot be annotated with `dict[str, Any]`, it is already defined with type `dict[str, Any] | None` [redefinition] ERROR torch/_inductor/compile_fx.py:1993:29-42: Module `torch._guards` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/compile_fx.py:1996:9-22: Module `torch._guards` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/compile_fx.py:2062:23-36: Module `torch._guards` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] @@ -4479,15 +4492,20 @@ ERROR torch/_inductor/compile_worker/__main__.py:30:12-18: Could not find import ERROR torch/_inductor/compile_worker/subproc_pool.py:446:9-29: Module `multiprocessing.util` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/compile_worker/tracked_process_pool.py:81:24-42: Module `concurrent.futures` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/compile_worker/utils.py:42:5-31: No attribute `_initCrashHandler` in module `torch._C` [missing-attribute] +ERROR torch/_inductor/config.py:244:72-246:2: `str` is not assignable to `Literal['combined', 'intermediates', 'none', 'outputs']` [bad-assignment] ERROR torch/_inductor/config.py:291:16-41: Module `torch._inductor.scheduler` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/config.py:292:15-40: Module `torch._inductor.scheduler` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/config.py:301:16-41: Module `torch._inductor.scheduler` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/config.py:302:15-40: Module `torch._inductor.scheduler` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/config.py:393:20-45: Module `torch._inductor.scheduler` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/config.py:394:19-44: Module `torch._inductor.scheduler` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR torch/_inductor/config.py:543:68-545:10: `str` is not assignable to `Literal['DEFAULT', 'EXHAUSTIVE']` [bad-assignment] +ERROR torch/_inductor/config.py:550:68-552:10: `str` is not assignable to `Literal['DEFAULT', 'EXHAUSTIVE']` [bad-assignment] ERROR torch/_inductor/config.py:639:20-42: Module `torch._inductor.config` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/config.py:643:20-42: Module `torch._inductor.config` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/config.py:1040:9-37: Could not find import of `libfb.py` [missing-import] +ERROR torch/_inductor/config.py:1540:41-1542:6: `int` is not assignable to `Literal[0, 1, 2, 3]` [bad-assignment] +ERROR torch/_inductor/config.py:1666:69-1668:6: `str` is not assignable to `Literal['0', '1', '2', '3']` [bad-assignment] ERROR torch/_inductor/constant_folding.py:130:37-51: No attribute `bfloat16` in module `torch` [missing-attribute] ERROR torch/_inductor/constant_folding.py:192:9-17: Class member `ConstantFolder.run_node` overrides parent class `Interpreter` in an inconsistent manner [bad-param-name-override] ERROR torch/_inductor/constant_folding.py:242:17-26: No attribute `Tag` in module `torch` [missing-attribute] @@ -4540,6 +4558,7 @@ ERROR torch/_inductor/cudagraph_trees.py:1080:13-33: No attribute `_foreach_copy ERROR torch/_inductor/cudagraph_trees.py:1086:21-65: No attribute `_tensors_data_ptrs_at_indices_equal` in module `torch._C` [missing-attribute] ERROR torch/_inductor/cudagraph_trees.py:1384:43-76: No attribute `_cuda_getCheckpointState` in module `torch._C` [missing-attribute] ERROR torch/_inductor/cudagraph_trees.py:1438:13-40: No attribute `_add_cached_tensor` in module `torch._C` [missing-attribute] +ERROR torch/_inductor/cudagraph_trees.py:1474:9-1476:31: `CUDAGraphNode | Self@CUDAGraphNode | None` is not assignable to `Self@CUDAGraphNode` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/_inductor/cudagraph_trees.py:1629:17-47: No attribute `_remove_cached_tensor` in module `torch._C` [missing-attribute] ERROR torch/_inductor/cudagraph_trees.py:1670:16-61: No attribute `_construct_storage_from_data_pointer` in module `torch._C` [missing-attribute] ERROR torch/_inductor/cudagraph_trees.py:1697:50-65: No attribute `Generator` in module `torch` [missing-attribute] @@ -5495,16 +5514,19 @@ ERROR torch/_inductor/fx_passes/split_cat.py:506:13-24: No attribute `clamp` in ERROR torch/_inductor/fx_passes/split_cat.py:531:13-25: No attribute `detach` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:734:32-41: No attribute `cat` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:734:43-54: No attribute `stack` in module `torch` [missing-attribute] +ERROR torch/_inductor/fx_passes/split_cat.py:779:9-792:45: `list[int] | None` is not assignable to `None` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/_inductor/fx_passes/split_cat.py:807:34-46: No attribute `cumsum` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:807:47-59: No attribute `tensor` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:859:41-50: No attribute `cat` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:859:52-63: No attribute `stack` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:866:65-74: No attribute `cat` in module `torch` [missing-attribute] +ERROR torch/_inductor/fx_passes/split_cat.py:872:25-873:28: Cannot index into `Mapping[str, Unknown]` [bad-index] ERROR torch/_inductor/fx_passes/split_cat.py:888:41-52: No attribute `stack` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:941:34-46: No attribute `cumsum` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:941:47-59: No attribute `tensor` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:978:41-50: No attribute `cat` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:978:52-63: No attribute `stack` in module `torch` [missing-attribute] +ERROR torch/_inductor/fx_passes/split_cat.py:997:17-1074:22: `Mapping[str, Unknown] | Node | OpOverload[Ellipsis, Any] | Sequence[Unknown] | SymBool | SymFloat | SymInt | Tensor | bool | complex | float | int | range | slice[Any, Any, Any] | str | tuple[Unknown, ...] | Unknown | None` is not assignable to `None` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/_inductor/fx_passes/split_cat.py:1021:29-40: No attribute `stack` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:1044:29-44: No attribute `unflatten` in module `torch` [missing-attribute] ERROR torch/_inductor/fx_passes/split_cat.py:1054:29-42: No attribute `movedim` in module `torch` [missing-attribute] @@ -5721,7 +5743,7 @@ ERROR torch/_inductor/ir.py:409:32-44: No attribute `device` in module `torch` [ ERROR torch/_inductor/ir.py:429:29-41: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:464:50-53: Argument `Expr | int` is not assignable to parameter `left` with type `Expr` in function `torch._inductor.sizevars.SizeVarAllocator.statically_known_leq` [bad-argument-type] ERROR torch/_inductor/ir.py:489:50-52: Argument `SymInt | int` is not assignable to parameter `left` with type `Expr | int` in function `torch._inductor.sizevars.SizeVarAllocator.statically_known_equals` [bad-argument-type] -ERROR torch/_inductor/ir.py:494:38-45: Argument `Sequence[SymInt | int]` is not assignable to parameter `strides1` with type `Sequence[Expr | int]` in function `significant_strides_equal` [bad-argument-type] +ERROR torch/_inductor/ir.py:494:38-45: Argument `Sequence[SymInt | int]` is not assignable to parameter `strides1` with type `Sequence[_IntLike]` in function `significant_strides_equal` [bad-argument-type] ERROR torch/_inductor/ir.py:501:13-26: Cannot set item in `list[Expr]` [unsupported-operation] ERROR torch/_inductor/ir.py:613:21-42: Module `torch._inductor.debug` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/_inductor/ir.py:623:25-46: Module `torch._inductor.debug` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] @@ -5735,8 +5757,8 @@ ERROR torch/_inductor/ir.py:853:38-50: No attribute `device` in module `torch` [ ERROR torch/_inductor/ir.py:926:13-25: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:927:12-23: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:959:38-50: No attribute `device` in module `torch` [missing-attribute] -ERROR torch/_inductor/ir.py:966:16-27: Returned type `Sequence[Expr | int]` is not assignable to declared return type `Sequence[Expr]` [bad-return] -ERROR torch/_inductor/ir.py:969:16-27: Returned type `Sequence[Expr | int]` is not assignable to declared return type `Sequence[Expr]` [bad-return] +ERROR torch/_inductor/ir.py:966:16-27: Returned type `Sequence[_IntLike]` is not assignable to declared return type `Sequence[Expr]` [bad-return] +ERROR torch/_inductor/ir.py:969:16-27: Returned type `Sequence[_IntLike]` is not assignable to declared return type `Sequence[Expr]` [bad-return] ERROR torch/_inductor/ir.py:1051:42-54: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:1057:63-74: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:1093:42-54: No attribute `device` in module `torch` [missing-attribute] @@ -5744,12 +5766,12 @@ ERROR torch/_inductor/ir.py:1110:42-54: No attribute `device` in module `torch` ERROR torch/_inductor/ir.py:1134:21-46: Argument `Expr` is not assignable to parameter with type `Sequence[Expr]` [bad-argument-type] ERROR torch/_inductor/ir.py:1152:33-44: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:1219:16-27: No attribute `dtype` in module `torch` [missing-attribute] -ERROR torch/_inductor/ir.py:1234:16-37: Returned type `Sequence[Expr | int]` is not assignable to declared return type `Sequence[Expr]` [bad-return] +ERROR torch/_inductor/ir.py:1234:16-37: Returned type `Sequence[_IntLike]` is not assignable to declared return type `Sequence[Expr]` [bad-return] ERROR torch/_inductor/ir.py:1269:42-54: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:1286:17-29: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:1287:20-31: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:1288:20-31: No attribute `dtype` in module `torch` [missing-attribute] -ERROR torch/_inductor/ir.py:1297:67-73: Argument `Sequence[Expr | int]` is not assignable to parameter `it` with type `Iterable[Expr]` in function `torch._inductor.utils.sympy_product` [bad-argument-type] +ERROR torch/_inductor/ir.py:1297:67-73: Argument `Sequence[_IntLike]` is not assignable to parameter `it` with type `Iterable[Expr]` in function `torch._inductor.utils.sympy_product` [bad-argument-type] ERROR torch/_inductor/ir.py:1339:44-64: Argument `Integer | int` is not assignable to parameter with type `int` [bad-argument-type] ERROR torch/_inductor/ir.py:1339:44-64: Argument `Integer | int` is not assignable to parameter `reduction_numel_hint` with type `int` in function `inner_reduction_splits` [bad-argument-type] ERROR torch/_inductor/ir.py:1436:20-34: Argument `Sequence[Expr]` is not assignable to parameter `vars` with type `Sequence[Symbol]` in function `torch._inductor.sizevars.SizeVarAllocator.stride_hints` [bad-argument-type] @@ -5764,7 +5786,7 @@ ERROR torch/_inductor/ir.py:1451:39-49: Argument `Integer | int` is not assignab ERROR torch/_inductor/ir.py:1451:39-49: Argument `Integer | int` is not assignable to parameter `numel_hint` with type `int` in function `inner_reduction_splits` [bad-argument-type] ERROR torch/_inductor/ir.py:1459:20-31: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:1481:17-68: Argument `list[Expr]` is not assignable to parameter `stride` with type `Sequence[int] | None` in function `_fixed_indexer` [bad-argument-type] -ERROR torch/_inductor/ir.py:1490:50-56: Argument `list[Expr | int]` is not assignable to parameter with type `Sequence[Expr]` [bad-argument-type] +ERROR torch/_inductor/ir.py:1490:50-56: Argument `list[_IntLike]` is not assignable to parameter with type `Sequence[Expr]` [bad-argument-type] ERROR torch/_inductor/ir.py:1490:59-70: No attribute `int64` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:1502:17-29: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:1503:20-31: No attribute `dtype` in module `torch` [missing-attribute] @@ -5813,18 +5835,18 @@ ERROR torch/_inductor/ir.py:2269:17-29: No attribute `device` in module `torch` ERROR torch/_inductor/ir.py:2270:16-27: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:2326:13-29: Argument `list[Expr | Integer | int]` is not assignable to parameter `ranges` with type `list[Integer]` in function `WelfordReduction.create` [bad-argument-type] ERROR torch/_inductor/ir.py:2327:13-25: Argument `list[FloorDiv]` is not assignable to parameter `reduction_ranges` with type `list[Integer]` in function `WelfordReduction.create` [bad-argument-type] -ERROR torch/_inductor/ir.py:2353:13-20: Argument `list[Expr | int]` is not assignable to parameter `reduction_ranges` with type `list[Integer]` in function `WelfordReduction.create` [bad-argument-type] +ERROR torch/_inductor/ir.py:2353:13-20: Argument `list[_IntLike]` is not assignable to parameter `reduction_ranges` with type `list[Integer]` in function `WelfordReduction.create` [bad-argument-type] ERROR torch/_inductor/ir.py:2369:19-30: No attribute `dtype` in module `torch` [missing-attribute] -ERROR torch/_inductor/ir.py:2418:16-27: Returned type `Sequence[Expr | int]` is not assignable to declared return type `Sequence[Expr]` [bad-return] -ERROR torch/_inductor/ir.py:2433:52-55: Argument `Sequence[Expr | int]` is not assignable to parameter `index` with type `Sequence[Expr]` in function `torch._inductor.dependencies.extract_free_symbols` [bad-argument-type] +ERROR torch/_inductor/ir.py:2418:16-27: Returned type `Sequence[_IntLike]` is not assignable to declared return type `Sequence[Expr]` [bad-return] +ERROR torch/_inductor/ir.py:2433:52-55: Argument `Sequence[_IntLike]` is not assignable to parameter `index` with type `Sequence[Expr]` in function `torch._inductor.dependencies.extract_free_symbols` [bad-argument-type] ERROR torch/_inductor/ir.py:2438:17-29: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:2439:23-34: No attribute `dtype` in module `torch` [missing-attribute] -ERROR torch/_inductor/ir.py:2520:29-36: Argument `(index: Sequence[Expr], scan_index: Sequence[Expr]) -> list[Expr]` is not assignable to parameter `reindex` with type `(Sequence[Expr | int], Sequence[Expr | int]) -> Sequence[Expr | int]` in function `Scan.__init__` [bad-argument-type] -ERROR torch/_inductor/ir.py:2520:29-36: Argument `(index: Sequence[Expr], scan_index: Sequence[Expr]) -> list[Expr]` is not assignable to parameter `reindex` with type `(Sequence[Expr | int], Sequence[Expr | int]) -> Sequence[Expr | int]` in function `SplitScan.__init__` [bad-argument-type] +ERROR torch/_inductor/ir.py:2520:29-36: Argument `(index: Sequence[Expr], scan_index: Sequence[Expr]) -> list[Expr]` is not assignable to parameter `reindex` with type `(Sequence[_IntLike], Sequence[_IntLike]) -> Sequence[_IntLike]` in function `Scan.__init__` [bad-argument-type] +ERROR torch/_inductor/ir.py:2520:29-36: Argument `(index: Sequence[Expr], scan_index: Sequence[Expr]) -> list[Expr]` is not assignable to parameter `reindex` with type `(Sequence[_IntLike], Sequence[_IntLike]) -> Sequence[_IntLike]` in function `SplitScan.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:2537:17-29: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:2538:16-27: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:2577:19-30: No attribute `dtype` in module `torch` [missing-attribute] -ERROR torch/_inductor/ir.py:2625:16-27: Returned type `Sequence[Expr | int]` is not assignable to declared return type `Sequence[Expr]` [bad-return] +ERROR torch/_inductor/ir.py:2625:16-27: Returned type `Sequence[_IntLike]` is not assignable to declared return type `Sequence[Expr]` [bad-return] ERROR torch/_inductor/ir.py:2645:17-29: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:2646:23-34: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:2782:21-33: Argument `Sequence[Integer | int]` is not assignable to parameter `order` with type `Sequence[int]` in function `Buffer.freeze_layout_with_stride_order` [bad-argument-type] @@ -5833,10 +5855,10 @@ ERROR torch/_inductor/ir.py:2807:41-53: Argument `Sequence[Integer | int]` is no ERROR torch/_inductor/ir.py:2860:24-35: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:2866:38-50: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:2916:42-54: No attribute `device` in module `torch` [missing-attribute] -ERROR torch/_inductor/ir.py:2943:17-28: Cannot set item in `list[Expr | int]` [unsupported-operation] +ERROR torch/_inductor/ir.py:2943:17-28: Cannot set item in `list[_IntLike]` [unsupported-operation] ERROR torch/_inductor/ir.py:2945:17-28: Argument `Expr | None` is not assignable to parameter `size` with type `Expr` in function `torch._inductor.sizevars.SizeVarAllocator.is_size_one_or_false` [bad-argument-type] -ERROR torch/_inductor/ir.py:2978:21-31: No matching overload found for function `list.__init__` called with arguments: (Sequence[Expr | int]) [no-matching-overload] -ERROR torch/_inductor/ir.py:2985:40-48: Argument `Sequence[Expr | int]` is not assignable to parameter `size` with type `Sequence[Expr]` in function `ExpandView.__init__` [bad-argument-type] +ERROR torch/_inductor/ir.py:2978:21-31: No matching overload found for function `list.__init__` called with arguments: (Sequence[_IntLike]) [no-matching-overload] +ERROR torch/_inductor/ir.py:2985:40-48: Argument `Sequence[_IntLike]` is not assignable to parameter `size` with type `Sequence[Expr]` in function `ExpandView.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:3032:41-45: Argument `list[int]` is not assignable to parameter `dims` with type `list[Expr]` in function `PermuteView.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:3039:46-55: Argument `list[Expr]` is not assignable to parameter `dims` with type `Sequence[int]` in function `PermuteView._map_neg_dims` [bad-argument-type] ERROR torch/_inductor/ir.py:3043:17-24: Cannot index into `Sequence[Expr]` [bad-index] @@ -5845,11 +5867,11 @@ ERROR torch/_inductor/ir.py:3055:21-29: Cannot index into `Sequence[Expr]` [bad- ERROR torch/_inductor/ir.py:3123:16-33: Returned type `tuple[list[Expr], (index: Sequence[Expr]) -> tuple[Expr]]` is not assignable to declared return type `tuple[list[int], (Sequence[Expr]) -> tuple[Expr]]` [bad-return] ERROR torch/_inductor/ir.py:3198:61-73: Argument `(index: Any) -> tuple[int, ...]` is not assignable to parameter `reindex` with type `(Sequence[Expr]) -> Sequence[Expr]` in function `View.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:3214:51-59: Argument `list[Expr]` is not assignable to parameter `sizes` with type `Sequence[int]` in function `FlexibleLayout.contiguous_strides` [bad-argument-type] -ERROR torch/_inductor/ir.py:3248:52-60: Argument `Sequence[Expr | int]` is not assignable to parameter `old_size` with type `Sequence[Expr]` in function `View._dynamic_reshape_indexer` [bad-argument-type] -ERROR torch/_inductor/ir.py:3248:62-70: Argument `Sequence[Expr | int]` is not assignable to parameter `new_size` with type `Sequence[Expr]` in function `View._dynamic_reshape_indexer` [bad-argument-type] -ERROR torch/_inductor/ir.py:3251:35-43: Argument `Sequence[Expr | int]` is not assignable to parameter `it` with type `Iterable[Expr]` in function `torch._inductor.utils.sympy_product` [bad-argument-type] -ERROR torch/_inductor/ir.py:3252:53-61: Argument `Sequence[Expr | int]` is not assignable to parameter `old_size` with type `Sequence[Expr]` in function `View._dynamic_reshape_indexer` [bad-argument-type] -ERROR torch/_inductor/ir.py:3253:59-67: Argument `Sequence[Expr | int]` is not assignable to parameter `new_size` with type `Sequence[Expr]` in function `View._dynamic_reshape_indexer` [bad-argument-type] +ERROR torch/_inductor/ir.py:3248:52-60: Argument `Sequence[_IntLike]` is not assignable to parameter `old_size` with type `Sequence[Expr]` in function `View._dynamic_reshape_indexer` [bad-argument-type] +ERROR torch/_inductor/ir.py:3248:62-70: Argument `Sequence[_IntLike]` is not assignable to parameter `new_size` with type `Sequence[Expr]` in function `View._dynamic_reshape_indexer` [bad-argument-type] +ERROR torch/_inductor/ir.py:3251:35-43: Argument `Sequence[_IntLike]` is not assignable to parameter `it` with type `Iterable[Expr]` in function `torch._inductor.utils.sympy_product` [bad-argument-type] +ERROR torch/_inductor/ir.py:3252:53-61: Argument `Sequence[_IntLike]` is not assignable to parameter `old_size` with type `Sequence[Expr]` in function `View._dynamic_reshape_indexer` [bad-argument-type] +ERROR torch/_inductor/ir.py:3253:59-67: Argument `Sequence[_IntLike]` is not assignable to parameter `new_size` with type `Sequence[Expr]` in function `View._dynamic_reshape_indexer` [bad-argument-type] ERROR torch/_inductor/ir.py:3255:16-23: Returned type `(Sequence[Expr]) -> Sequence[Expr]` is not assignable to declared return type `(Sequence[_T]) -> Sequence[_V]` [bad-return] ERROR torch/_inductor/ir.py:3322:53-54: Argument `Literal[1]` is not assignable to parameter `right` with type `Expr` in function `torch._inductor.sizevars.SizeVarAllocator.check_equals` [bad-argument-type] ERROR torch/_inductor/ir.py:3327:53-54: Argument `Literal[1]` is not assignable to parameter `right` with type `Expr` in function `torch._inductor.sizevars.SizeVarAllocator.check_equals` [bad-argument-type] @@ -5903,8 +5925,8 @@ ERROR torch/_inductor/ir.py:4029:31-54: No attribute `contiguous_format` in modu ERROR torch/_inductor/ir.py:4083:42-51: Argument `Sequence[Expr]` is not assignable to parameter `sizes` with type `Sequence[int]` in function `FlexibleLayout.stride_ordered` [bad-argument-type] ERROR torch/_inductor/ir.py:4085:44-54: Argument `Sequence[Expr]` is not assignable to parameter `in_strides` with type `Sequence[int]` in function `Layout._pad_strides` [bad-argument-type] ERROR torch/_inductor/ir.py:4091:13-23: Argument `Sequence[Expr] | Sequence[int]` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] -ERROR torch/_inductor/ir.py:4101:44-54: Argument `Sequence[Expr | int]` is not assignable to parameter `in_strides` with type `Sequence[int]` in function `Layout._pad_strides` [bad-argument-type] -ERROR torch/_inductor/ir.py:4107:13-23: Argument `Sequence[Expr | int] | Sequence[int]` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] +ERROR torch/_inductor/ir.py:4101:44-54: Argument `Sequence[_IntLike]` is not assignable to parameter `in_strides` with type `Sequence[int]` in function `Layout._pad_strides` [bad-argument-type] +ERROR torch/_inductor/ir.py:4107:13-23: Argument `Sequence[_IntLike] | Sequence[int]` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:4113:37-72: `list[Expr]` is not assignable to `Sequence[int]` [bad-assignment] ERROR torch/_inductor/ir.py:4113:55-64: Argument `Sequence[Expr]` is not assignable to parameter `sizes` with type `Sequence[int]` in function `FlexibleLayout.fill_ordered` [bad-argument-type] ERROR torch/_inductor/ir.py:4120:13-23: Argument `Sequence[int]` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] @@ -5926,8 +5948,8 @@ ERROR torch/_inductor/ir.py:4444:9-38: Class member `Buffer.freeze_layout_with_s ERROR torch/_inductor/ir.py:4448:9-41: Class member `Buffer.freeze_layout_with_exact_strides` overrides parent class `IRNode` in an inconsistent manner [bad-override] ERROR torch/_inductor/ir.py:4539:31-43: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:4551:42-54: No attribute `device` in module `torch` [missing-attribute] -ERROR torch/_inductor/ir.py:4637:17-38: Argument `Sequence[Expr | int]` is not assignable to parameter `size` with type `Sequence[Expr]` in function `Layout.__init__` [bad-argument-type] -ERROR torch/_inductor/ir.py:4775:57-64: Argument `Sequence[Expr | int] | Sequence[Expr]` is not assignable to parameter `vars` with type `Sequence[Symbol]` in function `torch._inductor.sizevars.SizeVarAllocator.stride_hints` [bad-argument-type] +ERROR torch/_inductor/ir.py:4637:17-38: Argument `Sequence[_IntLike]` is not assignable to parameter `size` with type `Sequence[Expr]` in function `Layout.__init__` [bad-argument-type] +ERROR torch/_inductor/ir.py:4775:57-64: Argument `Sequence[_IntLike] | Sequence[Expr]` is not assignable to parameter `vars` with type `Sequence[Symbol]` in function `torch._inductor.sizevars.SizeVarAllocator.stride_hints` [bad-argument-type] ERROR torch/_inductor/ir.py:4928:22-38: `Sequence[Symbol] | Sequence[int]` is not assignable to variable `x_vars` with type `Sequence[Symbol]` [bad-assignment] ERROR torch/_inductor/ir.py:4928:31-37: Argument `Sequence[Symbol]` is not assignable to parameter with type `Sequence[int]` [bad-argument-type] ERROR torch/_inductor/ir.py:4934:70-78: Argument `list[int]` is not assignable to parameter `sizes` with type `Sequence[Expr]` in function `torch._inductor.codegen.common.index_prevent_reordering` [bad-argument-type] @@ -5966,12 +5988,12 @@ ERROR torch/_inductor/ir.py:6097:17-73: Argument `tuple[Expr | int, ...]` is not ERROR torch/_inductor/ir.py:6110:53-63: Argument `Sequence[Expr]` is not assignable to parameter `vars` with type `Sequence[Symbol]` in function `torch._inductor.sizevars.SizeVarAllocator.offset_var` [bad-argument-type] ERROR torch/_inductor/ir.py:6139:47-48: Argument `(Boolean & IRNode) | (Expr & IRNode) | (IRNode & int)` is not assignable to parameter `expr` with type `Expr` in function `ShapeAsConstantBuffer.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:6145:21-33: No attribute `tensor` in module `torch` [missing-attribute] -ERROR torch/_inductor/ir.py:6233:39-52: Argument `Sequence[Expr | int] | None` is not assignable to parameter `exact_strides` with type `Sequence[Integer | int] | None` in function `as_storage_and_layout` [bad-argument-type] -ERROR torch/_inductor/ir.py:6246:56-69: Argument `Sequence[Expr | int]` is not assignable to parameter `strides` with type `Sequence[SymInt | int]` in function `try_match_insignificant_strides` [bad-argument-type] +ERROR torch/_inductor/ir.py:6233:39-52: Argument `Sequence[_IntLike] | None` is not assignable to parameter `exact_strides` with type `Sequence[Integer | int] | None` in function `as_storage_and_layout` [bad-argument-type] +ERROR torch/_inductor/ir.py:6246:56-69: Argument `Sequence[_IntLike]` is not assignable to parameter `strides` with type `Sequence[SymInt | int]` in function `try_match_insignificant_strides` [bad-argument-type] ERROR torch/_inductor/ir.py:6320:21-45: Module `torch._inductor.lowering` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR torch/_inductor/ir.py:6332:27-40: Argument `Sequence[Expr | int] | None` is not assignable to parameter `exact_strides` with type `Sequence[Integer | int] | None` in function `as_storage_and_layout` [bad-argument-type] +ERROR torch/_inductor/ir.py:6332:27-40: Argument `Sequence[_IntLike] | None` is not assignable to parameter `exact_strides` with type `Sequence[Integer | int] | None` in function `as_storage_and_layout` [bad-argument-type] ERROR torch/_inductor/ir.py:6338:17-41: Module `torch._inductor.lowering` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] -ERROR torch/_inductor/ir.py:6340:55-68: Argument `Sequence[Expr | int]` is not assignable to parameter `strides` with type `Sequence[SymInt | int]` in function `try_match_insignificant_strides` [bad-argument-type] +ERROR torch/_inductor/ir.py:6340:55-68: Argument `Sequence[_IntLike]` is not assignable to parameter `strides` with type `Sequence[SymInt | int]` in function `try_match_insignificant_strides` [bad-argument-type] ERROR torch/_inductor/ir.py:6381:54-66: Argument `Sequence[Expr]` is not assignable to parameter `sizes` with type `Sequence[int]` in function `FlexibleLayout.contiguous_strides` [bad-argument-type] ERROR torch/_inductor/ir.py:6389:50-62: Argument `Sequence[Expr]` is not assignable to parameter `sizes` with type `Sequence[int]` in function `FlexibleLayout.contiguous_strides` [bad-argument-type] ERROR torch/_inductor/ir.py:6614:49-60: Argument `dict[Symbol, @_]` is not assignable to parameter `replacements` with type `dict[Expr, Any]` in function `torch._inductor.utils.sympy_subs` [bad-argument-type] @@ -5986,7 +6008,7 @@ ERROR torch/_inductor/ir.py:6928:28-40: Object of class `Expr` has no attribute ERROR torch/_inductor/ir.py:6958:9-55: Could not find import of `triton.runtime.autotuner` [missing-import] ERROR torch/_inductor/ir.py:7158:38-50: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:7431:40-52: No attribute `device` in module `torch` [missing-attribute] -ERROR torch/_inductor/ir.py:7465:17-23: Argument `Sequence[Expr | int] | None` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] +ERROR torch/_inductor/ir.py:7465:17-23: Argument `Sequence[_IntLike] | None` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:7507:50-62: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:7560:50-62: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:7599:37-49: No attribute `device` in module `torch` [missing-attribute] @@ -6017,7 +6039,8 @@ ERROR torch/_inductor/ir.py:8287:38-50: No attribute `device` in module `torch` ERROR torch/_inductor/ir.py:8346:38-50: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:8419:42-54: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:8464:24-35: No attribute `dtype` in module `torch` [missing-attribute] -ERROR torch/_inductor/ir.py:8724:32-51: Argument `Sequence[Expr | int]` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] +ERROR torch/_inductor/ir.py:8670:9-17: `operands` cannot be annotated with `list[IRNode]`, it is already defined with type `tuple[IRNode, ...]` [redefinition] +ERROR torch/_inductor/ir.py:8724:32-51: Argument `Sequence[_IntLike]` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:8858:26-86: Argument `list[Expr | int]` is not assignable to parameter `size` with type `Sequence[Expr]` in function `Layout.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:8859:28-8861:22: Argument `list[Expr | int]` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:8902:29-37: Argument `Expr` is not assignable to parameter `object` with type `ShapeAsConstantBuffer` in function `list.append` [bad-argument-type] @@ -6026,7 +6049,7 @@ ERROR torch/_inductor/ir.py:9112:51-54: Argument `Expr | int` is not assignable ERROR torch/_inductor/ir.py:9112:56-59: Argument `Expr | int` is not assignable to parameter `right` with type `Expr` in function `torch._inductor.sizevars.SizeVarAllocator.check_equals` [bad-argument-type] ERROR torch/_inductor/ir.py:9165:30-83: Argument `list[Expr | int]` is not assignable to parameter `size` with type `Sequence[Expr]` in function `Layout.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:9166:32-87: Argument `list[Expr | int]` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] -ERROR torch/_inductor/ir.py:9189:36-55: Argument `Sequence[Expr | int]` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] +ERROR torch/_inductor/ir.py:9189:36-55: Argument `Sequence[_IntLike]` is not assignable to parameter `stride` with type `Sequence[Expr] | None` in function `Layout.__init__` [bad-argument-type] ERROR torch/_inductor/ir.py:9280:36-54: No attribute `ScriptObject` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:9288:52-70: No attribute `ScriptObject` in module `torch` [missing-attribute] ERROR torch/_inductor/ir.py:9291:31-49: No attribute `ScriptObject` in module `torch` [missing-attribute] @@ -6034,7 +6057,7 @@ ERROR torch/_inductor/ir.py:9292:35-53: No attribute `ScriptObject` in module `t ERROR torch/_inductor/ir.py:9318:13-25: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/jagged_lowerings.py:52:13-25: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_inductor/jagged_lowerings.py:53:12-23: No attribute `dtype` in module `torch` [missing-attribute] -ERROR torch/_inductor/jagged_lowerings.py:60:24-65:14: Argument `tuple[str, Expr, Unknown, Expr | int]` is not assignable to parameter `boundaries` with type `tuple[str, Expr, Expr, Expr]` in function `torch._inductor.ops_handler.OpsHandler.bucketize` [bad-argument-type] +ERROR torch/_inductor/jagged_lowerings.py:60:24-65:14: Argument `tuple[str, Expr, Unknown, _IntLike]` is not assignable to parameter `boundaries` with type `tuple[str, Expr, Expr, Expr]` in function `torch._inductor.ops_handler.OpsHandler.bucketize` [bad-argument-type] ERROR torch/_inductor/jagged_lowerings.py:97:20-31: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_inductor/jagged_lowerings.py:101:9-23: Argument `int | Unknown` is not assignable to parameter `size` with type `Expr` in function `torch._inductor.ops_handler.OpsHandler.indirect_indexing` [bad-argument-type] ERROR torch/_inductor/jagged_lowerings.py:106:42-53: Argument `Expr | int` is not assignable to parameter `size` with type `Expr` in function `torch._inductor.ops_handler.OpsHandler.indirect_indexing` [bad-argument-type] @@ -6266,6 +6289,7 @@ ERROR torch/_inductor/lowering.py:1755:43-54: No attribute `uint8` in module `to ERROR torch/_inductor/lowering.py:2098:8-15: `<` is not supported between `Basic` and `Literal[0]` [unsupported-operation] ERROR torch/_inductor/lowering.py:2099:9-29: `+=` is not supported between `Basic` and `int` [unsupported-operation] ERROR torch/_inductor/lowering.py:2100:12-36: `<=` is not supported between `Literal[0]` and `Basic` [unsupported-operation] +ERROR torch/_inductor/lowering.py:2100:12-36: `<` is not supported between `Basic` and `int` [unsupported-operation] ERROR torch/_inductor/lowering.py:2155:19-39: No attribute `float8_e8m0fnu` in module `torch` [missing-attribute] ERROR torch/_inductor/lowering.py:2288:32-43: No attribute `int64` in module `torch` [missing-attribute] ERROR torch/_inductor/lowering.py:2307:57-68: No attribute `int32` in module `torch` [missing-attribute] @@ -6286,8 +6310,8 @@ ERROR torch/_inductor/lowering.py:2486:28-31: Argument `int` is not assignable t ERROR torch/_inductor/lowering.py:2486:33-44: No attribute `int64` in module `torch` [missing-attribute] ERROR torch/_inductor/lowering.py:2487:28-32: Argument `int` is not assignable to parameter `expr` with type `Expr` in function `torch._inductor.ops_handler.OpsHandler.index_expr` [bad-argument-type] ERROR torch/_inductor/lowering.py:2487:34-45: No attribute `int64` in module `torch` [missing-attribute] -ERROR torch/_inductor/lowering.py:2506:12-2511:6: Returned type `tuple[str, Expr, int | Unknown, Expr | int]` is not assignable to declared return type `tuple[str, Expr, Expr, Expr]` [bad-return] -ERROR torch/_inductor/lowering.py:2515:12-46: Returned type `tuple[str, Expr | int]` is not assignable to declared return type `tuple[str, Expr]` [bad-return] +ERROR torch/_inductor/lowering.py:2506:12-2511:6: Returned type `tuple[str, Expr, int | Unknown, _IntLike]` is not assignable to declared return type `tuple[str, Expr, Expr, Expr]` [bad-return] +ERROR torch/_inductor/lowering.py:2515:12-46: Returned type `tuple[str, _IntLike]` is not assignable to declared return type `tuple[str, Expr]` [bad-return] ERROR torch/_inductor/lowering.py:2551:19-30: No attribute `int32` in module `torch` [missing-attribute] ERROR torch/_inductor/lowering.py:2551:49-60: No attribute `int64` in module `torch` [missing-attribute] ERROR torch/_inductor/lowering.py:2644:19-30: No attribute `int32` in module `torch` [missing-attribute] @@ -6725,8 +6749,9 @@ ERROR torch/_inductor/runtime/triton_compat.py:35:9-55: Could not find import of ERROR torch/_inductor/runtime/triton_compat.py:50:9-52: Could not find import of `triton.language.extra` [missing-import] ERROR torch/_inductor/runtime/triton_compat.py:66:9-51: Could not find import of `triton.language.standard` [missing-import] ERROR torch/_inductor/runtime/triton_compat.py:86:9-33: Could not find import of `triton` [missing-import] -ERROR torch/_inductor/scheduler.py:132:35-64: Argument `Sequence[Expr | int]` is not assignable to parameter `it` with type `Iterable[Expr]` in function `torch._inductor.utils.sympy_product` [bad-argument-type] -ERROR torch/_inductor/scheduler.py:136:35-74: Argument `Sequence[Expr | int]` is not assignable to parameter `it` with type `Iterable[Expr]` in function `torch._inductor.utils.sympy_product` [bad-argument-type] +ERROR torch/_inductor/runtime/triton_compat.py:93:9-95:10: Could not find import of `triton.compiler.compiler` [missing-import] +ERROR torch/_inductor/scheduler.py:132:35-64: Argument `Sequence[_IntLike]` is not assignable to parameter `it` with type `Iterable[Expr]` in function `torch._inductor.utils.sympy_product` [bad-argument-type] +ERROR torch/_inductor/scheduler.py:136:35-74: Argument `Sequence[_IntLike]` is not assignable to parameter `it` with type `Iterable[Expr]` in function `torch._inductor.utils.sympy_product` [bad-argument-type] ERROR torch/_inductor/scheduler.py:147:25-31: Argument `Unknown | None` is not assignable to parameter `left` with type `Expr | int` in function `torch._inductor.sizevars.SizeVarAllocator.statically_known_equals` [bad-argument-type] ERROR torch/_inductor/scheduler.py:151:20-36: Returned type `tuple[Unknown, Unknown | None]` is not assignable to declared return type `tuple[Expr, Expr]` [bad-return] ERROR torch/_inductor/scheduler.py:462:38-50: No attribute `device` in module `torch` [missing-attribute] @@ -6949,6 +6974,8 @@ ERROR torch/_inductor/tiling_utils.py:206:41-50: Argument `dict[Symbol, int]` is ERROR torch/_inductor/tiling_utils.py:211:23-24: Cannot set item in `dict[Symbol, int]` [unsupported-operation] ERROR torch/_inductor/tiling_utils.py:214:35-44: Argument `dict[Symbol, int]` is not assignable to parameter `replacements` with type `dict[Expr, Any]` in function `torch._inductor.utils.sympy_subs` [bad-argument-type] ERROR torch/_inductor/tiling_utils.py:216:19-20: Cannot set item in `dict[Symbol, int]` [unsupported-operation] +ERROR torch/_inductor/tiling_utils.py:259:16-262:10: Returned type `tuple[tuple[Unknown, tuple[Unknown, ...]], tuple[Unknown, tuple[Unknown, ...]]]` is not assignable to declared return type `tuple[tuple[list[Symbol], list[Expr]], tuple[list[Symbol], list[Expr]]] | None` [bad-return] +ERROR torch/_inductor/tiling_utils.py:284:16-287:10: Returned type `tuple[tuple[Unknown, tuple[Unknown, ...]], tuple[Unknown, tuple[Unknown, ...]]]` is not assignable to declared return type `tuple[tuple[list[Symbol], list[Expr]], tuple[list[Symbol], list[Expr]]] | None` [bad-return] ERROR torch/_inductor/tiling_utils.py:300:44-60: `tuple[Expr, ...]` is not assignable to attribute `pointwise_numel` with type `Expr` [bad-assignment] ERROR torch/_inductor/tiling_utils.py:301:38-54: `tuple[Expr, ...]` is not assignable to attribute `red_numel` with type `Expr` [bad-assignment] ERROR torch/_inductor/tiling_utils.py:310:34-59: Module `torch._inductor.scheduler` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] @@ -7146,6 +7173,7 @@ ERROR torch/_jit_internal.py:1335:9-37: No attribute `_jit_set_emit_hooks` in mo ERROR torch/_jit_internal.py:1341:22-50: No attribute `_jit_get_emit_hooks` in module `torch._C` [missing-attribute] ERROR torch/_jit_internal.py:1342:9-37: No attribute `_jit_set_emit_hooks` in module `torch._C` [missing-attribute] ERROR torch/_jit_internal.py:1345:9-37: No attribute `_jit_set_emit_hooks` in module `torch._C` [missing-attribute] +ERROR torch/_lazy/closure.py:66:40-68:14: `Thread` is not assignable to attribute `_closure_event_loop` with type `None` [bad-assignment] ERROR torch/_lazy/extract_compiled_graph.py:106:28-40: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_lazy/extract_compiled_graph.py:107:20-32: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_lazy/extract_compiled_graph.py:112:29-41: No attribute `device` in module `torch` [missing-attribute] @@ -7223,6 +7251,7 @@ ERROR torch/_library/fake_impl.py:224:5-42: Module `torch.fx.experimental.symbol ERROR torch/_library/fake_profile.py:27:12-23: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_library/fake_profile.py:28:13-25: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_library/fake_profile.py:29:13-25: No attribute `layout` in module `torch` [missing-attribute] +ERROR torch/_library/fake_profile.py:61:13-63:58: `Literal[1] | SymInt` is not assignable to `int` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/_library/fake_profile.py:65:20-39: No attribute `empty_strided` in module `torch` [missing-attribute] ERROR torch/_library/fake_profile.py:277:20-32: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_library/infer_schema.py:9:19-25: Could not import `device` from `torch` [missing-module-attribute] @@ -10316,6 +10345,7 @@ ERROR torch/_prims/rng_prims.py:323:20-36: Method `__call__` inherited from clas ERROR torch/_prims_common/__init__.py:48:30-40: No attribute `Size` in module `torch` [missing-attribute] ERROR torch/_prims_common/__init__.py:68:40-52: No attribute `device` in module `torch` [missing-attribute] ERROR torch/_prims_common/__init__.py:73:5-17: No attribute `device` in module `torch` [missing-attribute] +ERROR torch/_prims_common/__init__.py:275:5-291:29: `SymInt | int` is not assignable to `int` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/_prims_common/__init__.py:380:5-28: No attribute `contiguous_format` in module `torch` [missing-attribute] ERROR torch/_prims_common/__init__.py:381:5-26: No attribute `preserve_format` in module `torch` [missing-attribute] ERROR torch/_prims_common/__init__.py:382:5-24: No attribute `channels_last` in module `torch` [missing-attribute] @@ -10985,14 +11015,14 @@ ERROR torch/_refs/linalg/__init__.py:165:30-39: No attribute `sum` in module `to ERROR torch/_refs/linalg/__init__.py:179:17-26: No attribute `abs` in module `torch` [missing-attribute] ERROR torch/_refs/linalg/__init__.py:189:17-26: No attribute `abs` in module `torch` [missing-attribute] ERROR torch/_refs/linalg/__init__.py:214:21-32: No attribute `dtype` in module `torch` [missing-attribute] -ERROR torch/_refs/linalg/__init__.py:228:19-25: Index 1 out of range for tuple with 1 elements [bad-index] -ERROR torch/_refs/linalg/__init__.py:230:79-85: Index 1 out of range for tuple with 1 elements [bad-index] -ERROR torch/_refs/linalg/__init__.py:252:51-57: Index 1 out of range for tuple with 1 elements [bad-index] +ERROR torch/_refs/linalg/__init__.py:228:23-24: Index 1 out of range for tuple with 1 elements [bad-index] +ERROR torch/_refs/linalg/__init__.py:230:83-84: Index 1 out of range for tuple with 1 elements [bad-index] +ERROR torch/_refs/linalg/__init__.py:252:55-56: Index 1 out of range for tuple with 1 elements [bad-index] ERROR torch/_refs/linalg/__init__.py:253:22-31: No attribute `sum` in module `torch` [missing-attribute] ERROR torch/_refs/linalg/__init__.py:256:42-57: No attribute `unsqueeze` in module `torch` [missing-attribute] ERROR torch/_refs/linalg/__init__.py:270:27-37: No attribute `amax` in module `torch` [missing-attribute] ERROR torch/_refs/linalg/__init__.py:270:56-66: No attribute `amin` in module `torch` [missing-attribute] -ERROR torch/_refs/linalg/__init__.py:276:51-57: Index 1 out of range for tuple with 1 elements [bad-index] +ERROR torch/_refs/linalg/__init__.py:276:55-56: Index 1 out of range for tuple with 1 elements [bad-index] ERROR torch/_refs/linalg/__init__.py:280:42-57: No attribute `unsqueeze` in module `torch` [missing-attribute] ERROR torch/_refs/linalg/__init__.py:302:21-32: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/_refs/nn/functional/__init__.py:94:50-63: No attribute `float32` in module `torch` [missing-attribute] @@ -12502,6 +12532,7 @@ ERROR torch/ao/nn/qat/modules/embedding_ops.py:57:44-82: No attribute `per_chann ERROR torch/ao/nn/qat/modules/embedding_ops.py:91:34-72: No attribute `per_channel_affine_float_qparams` in module `torch` [missing-attribute] ERROR torch/ao/nn/qat/modules/embedding_ops.py:176:44-82: No attribute `per_channel_affine_float_qparams` in module `torch` [missing-attribute] ERROR torch/ao/nn/qat/modules/embedding_ops.py:214:34-72: No attribute `per_channel_affine_float_qparams` in module `torch` [missing-attribute] +ERROR torch/ao/nn/quantizable/modules/activation.py:98:25-100:10: `Linear` is not assignable to attribute `out_proj` with type `NonDynamicallyQuantizableLinear` [bad-assignment] WARN torch/ao/nn/quantizable/modules/activation.py:190:20-49: `torch.ao.quantization.quantize.prepare` is deprecated [deprecated] ERROR torch/ao/nn/quantizable/modules/activation.py:400:35-46: No attribute `uint8` in module `torch` [missing-attribute] ERROR torch/ao/nn/quantizable/modules/activation.py:406:42-52: No attribute `bool` in module `torch` [missing-attribute] @@ -12655,6 +12686,7 @@ ERROR torch/ao/nn/quantized/modules/conv.py:435:9-24: Class member `Conv1d.set_w ERROR torch/ao/nn/quantized/modules/conv.py:567:9-24: Class member `Conv2d.set_weight_bias` overrides parent class `_ConvNd` in an inconsistent manner [bad-param-name-override] ERROR torch/ao/nn/quantized/modules/conv.py:698:9-24: Class member `Conv3d.set_weight_bias` overrides parent class `_ConvNd` in an inconsistent manner [bad-param-name-override] ERROR torch/ao/nn/quantized/modules/conv.py:815:45-56: No attribute `qint8` in module `torch` [missing-attribute] +ERROR torch/ao/nn/quantized/modules/conv.py:820:20-831:10: Missing argument `padding_mode` in function `_ConvTransposeNd.__init__` [missing-argument] ERROR torch/ao/nn/quantized/modules/conv.py:835:53-64: No attribute `float` in module `torch` [missing-attribute] ERROR torch/ao/nn/quantized/modules/conv.py:960:9-24: Class member `ConvTranspose1d.set_weight_bias` overrides parent class `_ConvTransposeNd` in an inconsistent manner [bad-param-name-override] ERROR torch/ao/nn/quantized/modules/conv.py:1083:9-24: Class member `ConvTranspose2d.set_weight_bias` overrides parent class `_ConvTransposeNd` in an inconsistent manner [bad-param-name-override] @@ -13115,12 +13147,6 @@ ERROR torch/ao/pruning/sparsifier/weight_norm_sparsifier.py:197:25-35: No attrib ERROR torch/ao/pruning/sparsifier/weight_norm_sparsifier.py:231:25-40: No attribute `ones_like` in module `torch` [missing-attribute] ERROR torch/ao/pruning/sparsifier/weight_norm_sparsifier.py:233:25-41: No attribute `zeros_like` in module `torch` [missing-attribute] ERROR torch/ao/pruning/sparsifier/weight_norm_sparsifier.py:249:31-47: No attribute `logical_or` in module `torch` [missing-attribute] - WARN torch/ao/quantization/__init__.py:33:23-24: `prepare` is deprecated [deprecated] - WARN torch/ao/quantization/__init__.py:33:23-24: `quantize` is deprecated [deprecated] - WARN torch/ao/quantization/__init__.py:33:23-24: `quantize_dynamic` is deprecated [deprecated] - WARN torch/ao/quantization/__init__.py:33:23-24: `prepare_qat` is deprecated [deprecated] - WARN torch/ao/quantization/__init__.py:33:23-24: `quantize_qat` is deprecated [deprecated] - WARN torch/ao/quantization/__init__.py:33:23-24: `convert` is deprecated [deprecated] ERROR torch/ao/quantization/__init__.py:217:16-27: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/ao/quantization/__init__.py:224:18-31: No attribute `qscheme` in module `torch` [missing-attribute] ERROR torch/ao/quantization/_correct_bias.py:147:30-40: No attribute `mean` in module `torch` [missing-attribute] @@ -13810,6 +13836,7 @@ ERROR torch/ao/quantization/fx/convert.py:448:27-52: No attribute `quantize_per_ ERROR torch/ao/quantization/fx/convert.py:482:23-56: No attribute `quantize_per_tensor_dynamic` in module `torch` [missing-attribute] ERROR torch/ao/quantization/fx/convert.py:500:19-32: No attribute `float16` in module `torch` [missing-attribute] ERROR torch/ao/quantization/fx/convert.py:513:28-39: Argument `((...) -> Unknown) | None` is not assignable to parameter `target` with type `((...) -> Any) | str` in function `torch.fx.graph.Graph.create_node` [bad-argument-type] +ERROR torch/ao/quantization/fx/convert.py:549:9-551:34: Returned type `Module | Tensor | bool` is not assignable to declared return type `bool` [bad-return] ERROR torch/ao/quantization/fx/convert.py:551:21-34: No attribute `float16` in module `torch` [missing-attribute] ERROR torch/ao/quantization/fx/convert.py:716:22-55: Module `torch.ao.quantization.quantize_fx` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] WARN torch/ao/quantization/fx/convert.py:751:35-45: `torch.ao.quantization.quantize_fx.convert_fx` is deprecated [deprecated] @@ -14016,6 +14043,7 @@ ERROR torch/ao/quantization/observer.py:1119:47-59: No attribute `tensor` in mod ERROR torch/ao/quantization/observer.py:1126:32-44: No attribute `tensor` in module `torch` [missing-attribute] ERROR torch/ao/quantization/observer.py:1143:17-26: No attribute `sum` in module `torch` [missing-attribute] ERROR torch/ao/quantization/observer.py:1144:16-28: No attribute `cumsum` in module `torch` [missing-attribute] +ERROR torch/ao/quantization/observer.py:1161:13-1162:26: `int` is not assignable to `int` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/ao/quantization/observer.py:1207:13-27: No attribute `linspace` in module `torch` [missing-attribute] ERROR torch/ao/quantization/observer.py:1215:36-50: No attribute `linspace` in module `torch` [missing-attribute] ERROR torch/ao/quantization/observer.py:1220:13-28: No attribute `bucketize` in module `torch` [missing-attribute] @@ -15318,6 +15346,11 @@ ERROR torch/distributed/_local_tensor/_c10d.py:275:14-31: No attribute `bitwise_ ERROR torch/distributed/_local_tensor/_c10d.py:277:14-30: No attribute `bitwise_or` in module `torch` [missing-attribute] ERROR torch/distributed/_local_tensor/_c10d.py:279:14-31: No attribute `bitwise_xor` in module `torch` [missing-attribute] ERROR torch/distributed/_local_tensor/_c10d.py:513:32-41: No attribute `cat` in module `torch` [missing-attribute] +ERROR torch/distributed/_pycute/layout.py:164:13-167:14: Argument `chain[Layout]` is not assignable to parameter `*layouts` with type `Layout | tuple[Layout, ...]` in function `make_layout` [bad-argument-type] +ERROR torch/distributed/_pycute/layout.py:205:13-208:14: Argument `chain[Layout | filter[CoordinateType]]` is not assignable to parameter `*layouts` with type `Layout | tuple[Layout, ...]` in function `make_layout` [bad-argument-type] +ERROR torch/distributed/_pycute/layout.py:235:13-238:14: Argument `chain[Layout]` is not assignable to parameter `*layouts` with type `Layout | tuple[Layout, ...]` in function `make_layout` [bad-argument-type] +ERROR torch/distributed/_pycute/layout.py:371:13-377:14: Argument `chain[Layout]` is not assignable to parameter `*layouts` with type `Layout | tuple[Layout, ...]` in function `make_layout` [bad-argument-type] +ERROR torch/distributed/_pycute/layout.py:396:13-402:14: Argument `chain[Layout]` is not assignable to parameter `*layouts` with type `Layout | tuple[Layout, ...]` in function `make_layout` [bad-argument-type] ERROR torch/distributed/_serialization.py:63:31-47: No attribute `frombuffer` in module `torch` [missing-attribute] ERROR torch/distributed/_serialization.py:65:31-42: No attribute `uint8` in module `torch` [missing-attribute] ERROR torch/distributed/_serialization.py:84:16-28: No attribute `tensor` in module `torch` [missing-attribute] @@ -15337,8 +15370,8 @@ ERROR torch/distributed/_shard/sharded_tensor/__init__.py:249:12-25: No attribut ERROR torch/distributed/_shard/sharded_tensor/__init__.py:252:19-42: No attribute `contiguous_format` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/__init__.py:305:12-25: No attribute `strided` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/__init__.py:308:19-42: No attribute `contiguous_format` in module `torch` [missing-attribute] -ERROR torch/distributed/_shard/sharded_tensor/_ops/_common.py:47:18-25: Index 0 out of range for tuple with 0 elements [bad-index] -ERROR torch/distributed/_shard/sharded_tensor/_ops/_common.py:97:14-21: Index 0 out of range for tuple with 0 elements [bad-index] +ERROR torch/distributed/_shard/sharded_tensor/_ops/_common.py:47:23-24: Index 0 out of range for tuple with 0 elements [bad-index] +ERROR torch/distributed/_shard/sharded_tensor/_ops/_common.py:97:19-20: Index 0 out of range for tuple with 0 elements [bad-index] ERROR torch/distributed/_shard/sharded_tensor/_ops/binary_cmp.py:11:25-35: No attribute `ones` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/_ops/binary_cmp.py:11:46-58: No attribute `device` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/_ops/binary_cmp.py:13:25-36: No attribute `zeros` in module `torch` [missing-attribute] @@ -15356,7 +15389,7 @@ ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:130:5-21: No attribut ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:131:5-20: No attribute `ones_like` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:132:5-20: No attribute `rand_like` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:133:5-21: No attribute `randn_like` in module `torch` [missing-attribute] -ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:153:14-21: Index 0 out of range for tuple with 0 elements [bad-index] +ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:153:19-20: Index 0 out of range for tuple with 0 elements [bad-index] ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:159:29-44: No attribute `full_like` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:160:29-45: No attribute `empty_like` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:161:29-45: No attribute `zeros_like` in module `torch` [missing-attribute] @@ -15364,13 +15397,13 @@ ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:162:29-44: No attribu ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:163:29-44: No attribute `rand_like` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/_ops/init.py:164:29-45: No attribute `randn_like` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/_ops/misc_ops.py:10:19-58: No attribute `_has_compatible_shallow_copy_type` in module `torch` [missing-attribute] -ERROR torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py:44:15-22: Index 0 out of range for tuple with 0 elements [bad-index] +ERROR torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py:44:20-21: Index 0 out of range for tuple with 0 elements [bad-index] ERROR torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py:48:10-22: No attribute `device` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py:52:15-27: No attribute `device` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py:54:15-27: No attribute `device` in module `torch` [missing-attribute] -ERROR torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py:61:12-19: Index 0 out of range for tuple with 0 elements [bad-index] +ERROR torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py:61:17-18: Index 0 out of range for tuple with 0 elements [bad-index] ERROR torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py:160:57-78: No attribute `preserve_format` in module `torch` [missing-attribute] -ERROR torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py:202:15-22: Index 0 out of range for tuple with 0 elements [bad-index] +ERROR torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py:202:20-21: Index 0 out of range for tuple with 0 elements [bad-index] ERROR torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py:218:10-47: No attribute `DisableTorchFunctionSubclass` in module `torch._C` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/api.py:85:9-37: No attribute `_log_api_usage_once` in module `torch._C` [missing-attribute] ERROR torch/distributed/_shard/sharded_tensor/api.py:98:21-44: No attribute `get_default_dtype` in module `torch` [missing-attribute] @@ -15446,7 +15479,7 @@ ERROR torch/distributed/_shard/sharding_spec/chunk_sharding_spec.py:78:23-33: No ERROR torch/distributed/_shard/sharding_spec/chunk_sharding_spec.py:126:27-50: No attribute `contiguous_format` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharding_spec/chunk_sharding_spec.py:166:39-62: No attribute `contiguous_format` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharding_spec/chunk_sharding_spec.py:175:32-43: No attribute `empty` in module `torch` [missing-attribute] -ERROR torch/distributed/_shard/sharding_spec/chunk_sharding_spec_ops/_common.py:62:14-21: Index 0 out of range for tuple with 0 elements [bad-index] +ERROR torch/distributed/_shard/sharding_spec/chunk_sharding_spec_ops/_common.py:62:19-20: Index 0 out of range for tuple with 0 elements [bad-index] WARN torch/distributed/_shard/sharding_spec/chunk_sharding_spec_ops/_common.py:75:16-53: `torch.distributed._shard.sharded_tensor.api.ShardedTensor._init_from_local_tensor` is deprecated [deprecated] ERROR torch/distributed/_shard/sharding_spec/chunk_sharding_spec_ops/_common.py:151:24-39: No attribute `transpose` in module `torch` [missing-attribute] ERROR torch/distributed/_shard/sharding_spec/chunk_sharding_spec_ops/_common.py:159:12-27: No attribute `transpose` in module `torch` [missing-attribute] @@ -15595,7 +15628,7 @@ ERROR torch/distributed/_tools/mem_tracker.py:376:35-47: No attribute `device` i ERROR torch/distributed/_tools/mem_tracker.py:377:30-42: No attribute `device` in module `torch` [missing-attribute] ERROR torch/distributed/_tools/mem_tracker.py:378:35-47: No attribute `device` in module `torch` [missing-attribute] ERROR torch/distributed/_tools/mem_tracker.py:550:15-27: No attribute `device` in module `torch` [missing-attribute] -ERROR torch/distributed/_tools/mem_tracker.py:923:19-26: Index 0 out of range for tuple with 0 elements [bad-index] +ERROR torch/distributed/_tools/mem_tracker.py:923:24-25: Index 0 out of range for tuple with 0 elements [bad-index] ERROR torch/distributed/_tools/memory_tracker.py:75:9-37: No attribute `_log_api_usage_once` in module `torch._C` [missing-attribute] ERROR torch/distributed/_tools/mod_tracker.py:91:16-47: No attribute `_current_graph_task_id` in module `torch._C` [missing-attribute] ERROR torch/distributed/_tools/runtime_estimator.py:128:23-34: No attribute `dtype` in module `torch` [missing-attribute] @@ -15682,6 +15715,7 @@ ERROR torch/distributed/benchmarks/benchmark_ddp_rpc.py:168:30-46: No attribute ERROR torch/distributed/benchmarks/benchmark_ddp_rpc.py:169:22-38: No attribute `LongTensor` in module `torch` [missing-attribute] ERROR torch/distributed/c10d_logger.py:66:28-43: Module `torch.cuda.nccl` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/distributed/checkpoint/_consolidate_hf_safetensors.py:138:32-43: No attribute `finfo` in module `torch` [missing-attribute] +ERROR torch/distributed/checkpoint/_consolidate_hf_safetensors.py:280:39-282:18: `None` is not subscriptable [unsupported-operation] ERROR torch/distributed/checkpoint/_experimental/checkpoint_reader.py:149:30-41: No attribute `empty` in module `torch` [missing-attribute] ERROR torch/distributed/checkpoint/_experimental/checkpoint_reader.py:154:30-46: No attribute `frombuffer` in module `torch` [missing-attribute] ERROR torch/distributed/checkpoint/_experimental/staging.py:158:40-52: No attribute `Stream` in module `torch` [missing-attribute] @@ -15838,6 +15872,7 @@ ERROR torch/distributed/collective_utils.py:323:16-31: No attribute `Generator` ERROR torch/distributed/collective_utils.py:340:8-22: Module `importlib.util` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/distributed/collective_utils.py:349:16-31: No attribute `Generator` in module `torch` [missing-attribute] ERROR torch/distributed/debug/_frontend.py:217:5-19: Class member `_IPv6HTTPServer.address_family` overrides parent class `ThreadingHTTPServer` in an inconsistent manner [bad-override] +ERROR torch/distributed/device_mesh.py:36:5-38:23: Object of class `ModuleType` has no attribute `init_device_mesh` [missing-attribute] ERROR torch/distributed/device_mesh.py:198:13-41: No attribute `_log_api_usage_once` in module `torch._C` [missing-attribute] ERROR torch/distributed/device_mesh.py:209:44-53: No attribute `int` in module `torch` [missing-attribute] ERROR torch/distributed/device_mesh.py:211:26-38: No attribute `tensor` in module `torch` [missing-attribute] @@ -16430,6 +16465,7 @@ ERROR torch/distributed/tensor/_dispatch.py:248:43-58: No attribute `Generator` ERROR torch/distributed/tensor/_dispatch.py:287:36-47: No attribute `zeros` in module `torch` [missing-attribute] ERROR torch/distributed/tensor/_dispatch.py:290:36-48: No attribute `tensor` in module `torch` [missing-attribute] ERROR torch/distributed/tensor/_dispatch.py:332:21-33: No attribute `tensor` in module `torch` [missing-attribute] +ERROR torch/distributed/tensor/_dispatch.py:536:13-548:22: Argument `OpSchema | None` is not assignable to parameter `schema` with type `OpSchema` in function `torch.distributed.tensor._op_schema.OpInfo.__init__` [bad-argument-type] ERROR torch/distributed/tensor/_dispatch.py:575:54-55: Argument `DTensorSpec | object | None` is not assignable to parameter `spec` with type `DTensorSpec | Sequence[DTensorSpec | None] | None` in function `OpDispatcher.wrap` [bad-argument-type] ERROR torch/distributed/tensor/_dtensor_spec.py:62:12-22: No attribute `Size` in module `torch` [missing-attribute] ERROR torch/distributed/tensor/_dtensor_spec.py:64:12-23: No attribute `dtype` in module `torch` [missing-attribute] @@ -16448,6 +16484,7 @@ ERROR torch/distributed/tensor/_ops/_math_ops.py:912:57-67: No attribute `Size` ERROR torch/distributed/tensor/_ops/_math_ops.py:1058:57-67: No attribute `Size` in module `torch` [missing-attribute] ERROR torch/distributed/tensor/_ops/_matrix_ops.py:114:20-30: No attribute `Size` in module `torch` [missing-attribute] ERROR torch/distributed/tensor/_ops/_matrix_ops.py:1095:31-41: No attribute `Size` in module `torch` [missing-attribute] +ERROR torch/distributed/tensor/_ops/_tensor_ops.py:1009:33-1013:22: Argument `tuple[DTensorSpec, *tuple[DTensorSpec | None, ...], DTensorSpec]` is not assignable to parameter `input_specs` with type `Sequence[DTensorSpec] | None` in function `torch.distributed.tensor._op_schema.OpSpec.__init__` [bad-argument-type] ERROR torch/distributed/tensor/_ops/_view_ops.py:482:5-23: No attribute `broadcast_to` in module `torch` [missing-attribute] ERROR torch/distributed/tensor/_ops/_view_ops.py:484:5-18: No attribute `flatten` in module `torch` [missing-attribute] ERROR torch/distributed/tensor/_ops/_view_ops.py:485:5-18: No attribute `movedim` in module `torch` [missing-attribute] @@ -16554,8 +16591,8 @@ ERROR torch/distributed/tensor/examples/flex_attention_cp.py:70:9-19: No attribu ERROR torch/distributed/tensor/examples/flex_attention_cp.py:149:16-27: No attribute `randn` in module `torch` [missing-attribute] ERROR torch/distributed/tensor/examples/torchrec_sharding_example.py:52:62-72: No attribute `Size` in module `torch` [missing-attribute] ERROR torch/distributed/tensor/examples/torchrec_sharding_example.py:67:25-35: No attribute `Size` in module `torch` [missing-attribute] -ERROR torch/distributed/tensor/examples/torchrec_sharding_example.py:95:30-37: Index 0 out of range for tuple with 0 elements [bad-index] -ERROR torch/distributed/tensor/examples/torchrec_sharding_example.py:98:56-63: Index 0 out of range for tuple with 0 elements [bad-index] +ERROR torch/distributed/tensor/examples/torchrec_sharding_example.py:95:35-36: Index 0 out of range for tuple with 0 elements [bad-index] +ERROR torch/distributed/tensor/examples/torchrec_sharding_example.py:98:61-62: Index 0 out of range for tuple with 0 elements [bad-index] ERROR torch/distributed/tensor/examples/torchrec_sharding_example.py:113:35-45: No attribute `Size` in module `torch` [missing-attribute] ERROR torch/distributed/tensor/examples/torchrec_sharding_example.py:117:37-47: No attribute `Size` in module `torch` [missing-attribute] ERROR torch/distributed/tensor/examples/torchrec_sharding_example.py:131:14-26: No attribute `device` in module `torch` [missing-attribute] @@ -17235,6 +17272,7 @@ ERROR torch/export/_trace.py:196:9-25: Module `torch._functorch` exists, but was ERROR torch/export/_trace.py:196:9-32: Module `torch._functorch.config` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/export/_trace.py:200:16-32: Module `torch._functorch` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/export/_trace.py:200:16-39: Module `torch._functorch.config` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] +ERROR torch/export/_trace.py:663:20-28: `dup_name` may be uninitialized [unbound-name] ERROR torch/export/_trace.py:828:16-32: Module `torch._functorch` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/export/_trace.py:828:16-39: Module `torch._functorch.config` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/export/_trace.py:829:16-29: Module `torch._export` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] @@ -17447,6 +17485,7 @@ ERROR torch/fx/experimental/proxy_tensor.py:1787:17-48: Object of class `_ProxyT ERROR torch/fx/experimental/proxy_tensor.py:1998:17-48: No attribute `is_autocast_cache_enabled` in module `torch` [missing-attribute] ERROR torch/fx/experimental/proxy_tensor.py:1999:5-37: No attribute `set_autocast_cache_enabled` in module `torch` [missing-attribute] ERROR torch/fx/experimental/proxy_tensor.py:2003:9-41: No attribute `set_autocast_cache_enabled` in module `torch` [missing-attribute] +ERROR torch/fx/experimental/proxy_tensor.py:2128:24-2135:18: Returned type `dict[str, _ModuleStackTracer.__init__.AttrProxy | None]` is not assignable to declared return type `dict[str, _ModuleStackTracer.__init__.AttrProxy]` [bad-return] ERROR torch/fx/experimental/proxy_tensor.py:2215:13-2222:33: `Module | _AttrProxy` is not assignable to `Module` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/fx/experimental/proxy_tensor.py:2334:47-60: Module `torch._decomp` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import] ERROR torch/fx/experimental/proxy_tensor.py:2537:36-54: No attribute `ScriptObject` in module `torch` [missing-attribute] @@ -17480,6 +17519,7 @@ ERROR torch/fx/experimental/symbolic_shapes.py:810:16-812:10: Returned type `boo ERROR torch/fx/experimental/symbolic_shapes.py:864:48-52: Argument `list[Basic | Unknown] | list[Basic]` is not assignable to parameter `args` with type `list[Expr]` in function `_sympy_from_args` [bad-argument-type] ERROR torch/fx/experimental/symbolic_shapes.py:940:26-41: No attribute `Generator` in module `torch` [missing-attribute] ERROR torch/fx/experimental/symbolic_shapes.py:958:40-50: No attribute `Size` in module `torch` [missing-attribute] +ERROR torch/fx/experimental/symbolic_shapes.py:1199:21-1205:14: No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[Symbol, tuple[KeyEntry, ...]]) [no-matching-overload] ERROR torch/fx/experimental/symbolic_shapes.py:1211:21-62: No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[Symbol, tuple[KeyEntry, ...]]) [no-matching-overload] ERROR torch/fx/experimental/symbolic_shapes.py:1219:17-1225:10: No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[Symbol, tuple[KeyEntry, ...]]) [no-matching-overload] ERROR torch/fx/experimental/symbolic_shapes.py:1227:13-29: No attribute `sparse_csr` in module `torch` [missing-attribute] @@ -17653,11 +17693,12 @@ ERROR torch/fx/passes/split_module.py:329:31-57: No attribute `_set_grad_enabled ERROR torch/fx/passes/split_module.py:422:28-38: Cannot index into `set[int]` [bad-index] ERROR torch/fx/passes/split_module.py:424:22-33: Cannot index into `set[int]` [bad-index] ERROR torch/fx/passes/split_module.py:524:22-34: Cannot index into `set[int]` [bad-index] +ERROR torch/fx/passes/splitter_base.py:72:45-74:2: `str` is not assignable to `Literal['0', '1', '2', '3']` [bad-assignment] ERROR torch/fx/proxy.py:19:22-56: Could not import `_fx_map_aggregate` from `torch._C` [missing-module-attribute] ERROR torch/fx/proxy.py:19:58-80: Could not import `_fx_map_arg` from `torch._C` [missing-module-attribute] ERROR torch/fx/proxy.py:173:41-47: Argument `((...) -> Any) | str` is not assignable to parameter `target` with type `(...) -> Unknown` in function `torch.fx.operator_schemas.check_for_mutable_operation` [bad-argument-type] ERROR torch/fx/proxy.py:296:55-59: Default `None` is not assignable to parameter `proxy_factory_fn` with type `(Node) -> Proxy` [bad-function-definition] -ERROR torch/fx/proxy.py:313:47-52: Argument `tuple[*Sequence[Unknown]]` is not assignable to parameter `args` with type `tuple[Mapping[str, Unknown] | Node | OpOverload[Ellipsis, Any] | Sequence[Unknown] | SymBool | SymFloat | SymInt | Tensor | bool | complex | float | int | range | slice[Any, Any, Any] | str | tuple[Unknown, ...] | Unknown | None, ...]` in function `TracerBase.create_node` [bad-argument-type] +ERROR torch/fx/proxy.py:313:47-52: Argument `tuple[*Sequence[Unknown]]` is not assignable to parameter `args` with type `tuple[Argument, ...]` in function `TracerBase.create_node` [bad-argument-type] ERROR torch/fx/proxy.py:407:25-411:14: No matching overload found for function `range.__new__` called with arguments: (type[range], Mapping[str, Unknown] | Node | OpOverload[Ellipsis, Any] | Sequence[Unknown] | SymBool | SymFloat | SymInt | Tensor | bool | complex | float | int | range | slice[Any, Any, Any] | str | tuple[Unknown, ...] | Unknown | None, Mapping[str, Unknown] | Node | OpOverload[Ellipsis, Any] | Sequence[Unknown] | SymBool | SymFloat | SymInt | Tensor | bool | complex | float | int | range | slice[Any, Any, Any] | str | tuple[Unknown, ...] | Unknown | None, Mapping[str, Unknown] | Node | OpOverload[Ellipsis, Any] | Sequence[Unknown] | SymBool | SymFloat | SymInt | Tensor | bool | complex | float | int | range | slice[Any, Any, Any] | str | tuple[Unknown, ...] | Unknown | None) [no-matching-overload] ERROR torch/fx/proxy.py:560:16-25: Returned type `Proxy` is not assignable to declared return type `dict[Unknown, Unknown]` [bad-return] ERROR torch/fx/proxy.py:658:36-57: No attribute `ScriptMethod` in module `torch._C` [missing-attribute] @@ -17861,6 +17902,7 @@ ERROR torch/jit/frontend.py:156:29-49: No attribute `ErrorReport` in module `tor ERROR torch/jit/frontend.py:272:14-34: No attribute `ErrorReport` in module `torch._C` [missing-attribute] ERROR torch/jit/frontend.py:435:29-56: No attribute `parse_type_comment` in module `torch._C` [missing-attribute] ERROR torch/jit/frontend.py:436:16-53: No attribute `merge_type_from_type_comment` in module `torch._C` [missing-attribute] +ERROR torch/jit/frontend.py:1038:9-1058:56: `BinOp | UnaryOp | None` is not assignable to `None` (caused by inconsistent types when breaking cycles) [bad-assignment] ERROR torch/jit/generate_bytecode.py:3:22-50: Could not import `_compile_graph_to_code_table` from `torch._C` [missing-module-attribute] ERROR torch/jit/generate_bytecode.py:3:52-77: Could not import `_generate_upgraders_graph` from `torch._C` [missing-module-attribute] ERROR torch/jit/mobile/__init__.py:47:22-57: No attribute `_load_for_lite_interpreter` in module `torch._C` [missing-attribute] @@ -18074,6 +18116,7 @@ ERROR torch/masked/_ops.py:1630:17-27: No attribute `ones` in module `torch` [mi ERROR torch/masked/_ops.py:1630:47-58: No attribute `int64` in module `torch` [missing-attribute] ERROR torch/masked/_ops.py:1644:23-35: No attribute `divide` in module `torch` [missing-attribute] ERROR torch/masked/_ops.py:1645:13-27: No attribute `subtract` in module `torch` [missing-attribute] +ERROR torch/masked/_ops.py:1650:24-1656:14: No matching overload found for function `sum` called with arguments: (Unknown, int | list[int] | tuple[int, ...] | None, keepdim=bool | None, dtype=Unknown, mask=Tensor) [no-matching-overload] ERROR torch/masked/_ops.py:1666:21-35: No attribute `subtract` in module `torch` [missing-attribute] ERROR torch/masked/_ops.py:1667:21-34: No attribute `maximum` in module `torch` [missing-attribute] ERROR torch/masked/_ops.py:1668:18-30: No attribute `divide` in module `torch` [missing-attribute] @@ -18640,7 +18683,7 @@ ERROR torch/nn/utils/_expanded_weights/expanded_weights_impl.py:22:5-19: No attr ERROR torch/nn/utils/_expanded_weights/expanded_weights_impl.py:26:5-15: No attribute `lstm` in module `torch` [missing-attribute] ERROR torch/nn/utils/_expanded_weights/expanded_weights_impl.py:30:5-14: No attribute `gru` in module `torch` [missing-attribute] ERROR torch/nn/utils/_expanded_weights/expanded_weights_impl.py:127:9-27: Class member `ExpandedWeight.__torch_function__` overrides parent class `Tensor` in an inconsistent manner [bad-param-name-override] -ERROR torch/nn/utils/_expanded_weights/expanded_weights_impl.py:135:17-24: Index 2 out of range for tuple with 0 elements [bad-index] +ERROR torch/nn/utils/_expanded_weights/expanded_weights_impl.py:135:22-23: Index 2 out of range for tuple with 0 elements [bad-index] ERROR torch/nn/utils/_expanded_weights/expanded_weights_impl.py:143:20-51: No attribute `_cudnn_rnn_flatten_weight` in module `torch` [missing-attribute] ERROR torch/nn/utils/_expanded_weights/expanded_weights_utils.py:134:28-39: No attribute `zeros` in module `torch` [missing-attribute] ERROR torch/nn/utils/_expanded_weights/group_norm_expanded_weights.py:35:13-36: No attribute `native_group_norm` in module `torch` [missing-attribute] @@ -18856,6 +18899,7 @@ ERROR torch/onnx/_internal/exporter/_reporting.py:14:5-30: Could not find import ERROR torch/onnx/_internal/exporter/_schemas.py:13:8-12: Could not find import of `onnx` [missing-import] ERROR torch/onnx/_internal/exporter/_schemas.py:15:8-18: Could not find import of `onnxscript` [missing-import] ERROR torch/onnx/_internal/exporter/_schemas.py:16:1-26: Could not find import of `onnxscript` [missing-import] +ERROR torch/onnx/_internal/exporter/_schemas.py:410:17-415:18: Argument `AttributeParameter` is not assignable to parameter `object` with type `Parameter` in function `list.append` [bad-argument-type] ERROR torch/onnx/_internal/exporter/_schemas.py:545:56-73: Cannot index into `dict[str, TypeConstraintParam]` [bad-index] ERROR torch/onnx/_internal/exporter/_tensors.py:6:8-18: Could not find import of `onnxscript` [missing-import] ERROR torch/onnx/_internal/exporter/_tensors.py:7:1-26: Could not find import of `onnxscript` [missing-import] @@ -19037,6 +19081,7 @@ ERROR torch/onnx/_internal/torchscript_exporter/symbolic_helper.py:269:32-40: No ERROR torch/onnx/_internal/torchscript_exporter/symbolic_helper.py:269:51-59: No attribute `Value` in module `torch._C` [missing-attribute] ERROR torch/onnx/_internal/torchscript_exporter/symbolic_helper.py:280:43-51: No attribute `Value` in module `torch._C` [missing-attribute] ERROR torch/onnx/_internal/torchscript_exporter/symbolic_helper.py:280:62-70: No attribute `Value` in module `torch._C` [missing-attribute] +ERROR torch/onnx/_internal/torchscript_exporter/symbolic_helper.py:365:20-368:14: `list[Unknown]` is not assignable to variable `args` with type `Args[_P]` [bad-assignment] ERROR torch/onnx/_internal/torchscript_exporter/symbolic_helper.py:442:51-63: No attribute `tensor` in module `torch` [missing-attribute] ERROR torch/onnx/_internal/torchscript_exporter/symbolic_helper.py:446:56-68: No attribute `tensor` in module `torch` [missing-attribute] ERROR torch/onnx/_internal/torchscript_exporter/symbolic_helper.py:541:25-33: No attribute `Value` in module `torch._C` [missing-attribute] @@ -20300,6 +20345,7 @@ ERROR torch/optim/optimizer.py:381:9-37: No attribute `_log_api_usage_once` in m ERROR torch/optim/optimizer.py:546:20-32: No attribute `device` in module `torch` [missing-attribute] ERROR torch/optim/optimizer.py:546:34-45: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/optim/optimizer.py:792:39-52: No attribute `float32` in module `torch` [missing-attribute] +ERROR torch/optim/optimizer.py:981:35-985:18: Cannot instantiate `Iterable` because it is a protocol [bad-instantiation] ERROR torch/optim/optimizer.py:1045:25-37: No attribute `device` in module `torch` [missing-attribute] ERROR torch/optim/optimizer.py:1045:51-62: No attribute `dtype` in module `torch` [missing-attribute] ERROR torch/optim/optimizer.py:1080:25-45: No attribute `_foreach_zero_` in module `torch` [missing-attribute] @@ -20545,6 +20591,10 @@ ERROR torch/quantization/_quantized_conversions.py:113:12-28: No attribute `empt ERROR torch/quantization/_quantized_conversions.py:114:18-28: No attribute `int8` in module `torch` [missing-attribute] ERROR torch/quantization/_quantized_conversions.py:115:23-32: No attribute `int` in module `torch` [missing-attribute] ERROR torch/quantization/_quantized_conversions.py:120:20-34: No attribute `quint4x2` in module `torch` [missing-attribute] +ERROR torch/quantization/_quantized_conversions.py:125:22-32: `type[Unknown]` is not subscriptable [unsupported-operation] +ERROR torch/quantization/_quantized_conversions.py:126:22-32: `type[Unknown]` is not subscriptable [unsupported-operation] +ERROR torch/quantization/_quantized_conversions.py:127:22-32: `type[Unknown]` is not subscriptable [unsupported-operation] +ERROR torch/quantization/_quantized_conversions.py:128:22-32: `type[Unknown]` is not subscriptable [unsupported-operation] ERROR torch/quantization/_quantized_conversions.py:130:18-32: No attribute `quint4x2` in module `torch` [missing-attribute] ERROR torch/quantization/_quantized_conversions.py:134:41-52: No attribute `uint8` in module `torch` [missing-attribute] WARN torch/quantization/quantize.py:22:5-12: `convert` is deprecated [deprecated] @@ -21336,6 +21386,7 @@ ERROR torch/utils/_python_dispatch.py:885:31-69: No attribute `_meta_in_tls_disp ERROR torch/utils/_python_dispatch.py:886:17-59: No attribute `_set_meta_in_tls_dispatch_include` in module `torch._C` [missing-attribute] ERROR torch/utils/_python_dispatch.py:890:21-63: No attribute `_set_meta_in_tls_dispatch_include` in module `torch._C` [missing-attribute] ERROR torch/utils/_pytree.py:111:9-16: Class member `EnumEncoder.default` overrides parent class `JSONEncoder` in an inconsistent manner [bad-param-name-override] +ERROR torch/utils/_pytree.py:1012:43-1022:2: No matching overload found for function `frozenset.__new__` called with arguments: (type[frozenset[type]], set[((typename: str, field_names: Iterable[str] | str, *, rename: bool = False, module: str | None = None, defaults: Iterable[Any] | None = None) -> type[tuple[Any, ...]]) | type[OrderedDict] | type[defaultdict] | type[deque] | type[dict] | type[list] | type[tuple]]) [no-matching-overload] ERROR torch/utils/_strobelight/examples/cli_function_profiler_example.py:22:20-30: No attribute `rand` in module `torch` [missing-attribute] ERROR torch/utils/_strobelight/examples/cli_function_profiler_example.py:22:38-48: No attribute `rand` in module `torch` [missing-attribute] ERROR torch/utils/_strobelight/examples/cli_function_profiler_example.py:22:56-66: No attribute `rand` in module `torch` [missing-attribute] @@ -21422,6 +21473,7 @@ ERROR torch/utils/_sympy/singleton_int.py:12:5-17: Class member `SingletonInt._o ERROR torch/utils/_sympy/solve.py:147:13-38: Object of class `Basic` has no attribute `is_positive` [missing-attribute] ERROR torch/utils/_sympy/value_ranges.py:276:31-278:14: No matching overload found for function `ValueRanges.__init__` called with arguments: (Max, Min) [no-matching-overload] ERROR torch/utils/_sympy/value_ranges.py:307:31-309:14: No matching overload found for function `ValueRanges.__init__` called with arguments: (Min, Max) [no-matching-overload] +ERROR torch/utils/_sympy/value_ranges.py:421:27-424:10: No matching overload found for function `ValueRanges.__init__` called with arguments: (Boolean | Expr, Boolean | Expr) [no-matching-overload] ERROR torch/utils/_sympy/value_ranges.py:459:25-35: No attribute `bool` in module `torch` [missing-attribute] ERROR torch/utils/_sympy/value_ranges.py:472:25-35: No attribute `bool` in module `torch` [missing-attribute] ERROR torch/utils/_sympy/value_ranges.py:476:20-35: Object of class `BooleanAtom` has no attribute `is_finite` @@ -21599,6 +21651,7 @@ ERROR torch/utils/data/_utils/collate.py:304:12-24: No attribute `tensor` in mod ERROR torch/utils/data/_utils/collate.py:304:38-51: No attribute `float64` in module `torch` [missing-attribute] ERROR torch/utils/data/_utils/collate.py:312:12-24: No attribute `tensor` in module `torch` [missing-attribute] ERROR torch/utils/data/_utils/pin_memory.py:21:5-26: No attribute `set_num_threads` in module `torch` [missing-attribute] +ERROR torch/utils/data/_utils/pin_memory.py:72:34-75:18: Cannot instantiate `Mapping` because the following members are abstract: `__len__`, `__iter__` [bad-instantiation] ERROR torch/utils/data/_utils/signal_handling.py:40:5-31: Could not import `_error_if_any_worker_fails` from `torch._C` [missing-module-attribute] ERROR torch/utils/data/_utils/signal_handling.py:41:5-24: Could not import `_remove_worker_pids` from `torch._C` [missing-module-attribute] ERROR torch/utils/data/_utils/signal_handling.py:42:5-21: Could not import `_set_worker_pids` from `torch._C` [missing-module-attribute] @@ -21613,7 +21666,6 @@ ERROR torch/utils/data/dataloader.py:650:26-41: No attribute `Generator` in modu ERROR torch/utils/data/dataloader.py:706:13-24: No attribute `empty` in module `torch` [missing-attribute] ERROR torch/utils/data/dataloader.py:706:35-46: No attribute `int64` in module `torch` [missing-attribute] ERROR torch/utils/data/dataloader.py:723:26-41: No attribute `Generator` in module `torch` [missing-attribute] -ERROR torch/utils/data/datapipes/datapipe.py:422:16-41: Returned type `_T_co` is not assignable to declared return type `_T_co` [bad-return] ERROR torch/utils/data/datapipes/datapipe.py:426:9-20: Class member `_MapDataPipeSerializationWrapper.__getitem__` overrides parent class `MapDataPipe` in an inconsistent manner [bad-param-name-override] WARN torch/utils/data/datapipes/gen_pyi.py:64:30-47: `materialize_lines` is deprecated [deprecated] ERROR torch/utils/data/datapipes/iter/callable.py:79:9-37: No attribute `_log_api_usage_once` in module `torch._C` [missing-attribute] @@ -21817,4 +21869,4 @@ ERROR torch/xpu/streams.py:103:13-35: No attribute `_XpuEventBase` in module `to ERROR torch/xpu/streams.py:167:32-47: Object of class `Event` has no attribute `sycl_event` [missing-attribute] ERROR torch/xpu/streams.py:170:12-27: Object of class `Event` has no attribute `sycl_event` [missing-attribute] INFO Checking project configured at `/pyrefly.toml` - INFO 21,682 errors (6,437 suppressed) + INFO 21,740 errors (6,368 suppressed) diff --git a/scripts/ty_benchmark/snapshots/pytorch_ty.txt b/scripts/ty_benchmark/snapshots/pytorch_ty.txt index 2e07525401..ec1f705e83 100644 --- a/scripts/ty_benchmark/snapshots/pytorch_ty.txt +++ b/scripts/ty_benchmark/snapshots/pytorch_ty.txt @@ -743,9 +743,9 @@ torch/_dynamo/eval_frame.py:1739:9: error[unresolved-attribute] Module `torch._C torch/_dynamo/eval_frame.py:1954:9: error[unresolved-attribute] Module `torch._C` has no member `_log_api_usage_once` torch/_dynamo/eval_frame.py:2228:22: warning[possibly-missing-attribute] Submodule `traceback` may not be available as an attribute on module `torch.fx` torch/_dynamo/external_utils.py:103:59: error[unresolved-attribute] Module `torch` has no member `as_tensor` -torch/_dynamo/functional_export.py:372:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `Module`, in comparing `Literal["dynamo_flat_name_to_original_fqn"]` with `Unknown | Tensor | Module` +torch/_dynamo/functional_export.py:372:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["dynamo_flat_name_to_original_fqn"]` and `Unknown | Tensor | Module` torch/_dynamo/functional_export.py:374:70: error[non-subscriptable] Cannot subscript object of type `Module` with no `__getitem__` method -torch/_dynamo/functional_export.py:379:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `Module`, in comparing `Literal["dynamo_compile_id"]` with `Unknown | Tensor | Module` +torch/_dynamo/functional_export.py:379:16: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["dynamo_compile_id"]` and `Unknown | Tensor | Module` torch/_dynamo/functional_export.py:381:55: error[non-subscriptable] Cannot subscript object of type `Module` with no `__getitem__` method torch/_dynamo/functional_export.py:512:13: error[unresolved-attribute] Cannot assign object of type `int` to attribute `num_inputs` on type `Self@__init__` with custom `__setattr__` method. torch/_dynamo/functional_export.py:513:13: error[unresolved-attribute] Cannot assign object of type `None` to attribute `gm_inputs` on type `Self@__init__` with custom `__setattr__` method. @@ -930,7 +930,7 @@ torch/_dynamo/symbolic_convert.py:921:28: error[invalid-argument-type] Argument torch/_dynamo/symbolic_convert.py:1004:9: error[unresolved-attribute] Unresolved attribute `dispatch_table` on type `type`. torch/_dynamo/symbolic_convert.py:1292:17: error[missing-argument] No argument provided for required parameter `self` of function `is_non_empty_graph` torch/_dynamo/symbolic_convert.py:1602:28: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `InstructionTranslatorBase`, found `Unknown | InstructionTranslatorBase | None` -torch/_dynamo/symbolic_convert.py:1654:42: error[unsupported-operator] Operator `in` is not supported for types `str` and `object`, in comparing `Literal["Data-dependent"]` with `object` +torch/_dynamo/symbolic_convert.py:1654:42: error[unsupported-operator] Operator `in` is not supported between objects of type `Literal["Data-dependent"]` and `object` torch/_dynamo/symbolic_convert.py:1843:21: warning[possibly-missing-attribute] Submodule `package` may not be available as an attribute on module `torch` torch/_dynamo/symbolic_convert.py:1988:17: error[invalid-argument-type] Argument is incorrect: Expected `str`, found `str | None` torch/_dynamo/symbolic_convert.py:2228:60: error[invalid-argument-type] Argument to function `get_dynamo_observed_exception` is incorrect: Expected `type[Exception]`, found `Unknown | type` @@ -1004,7 +1004,6 @@ torch/_dynamo/utils.py:865:25: error[unresolved-attribute] Module `torch` has no torch/_dynamo/utils.py:865:38: error[unresolved-attribute] Module `torch` has no member `short` torch/_dynamo/utils.py:866:5: error[unresolved-attribute] Module `torch` has no member `BoolTensor` torch/_dynamo/utils.py:866:24: error[unresolved-attribute] Module `torch` has no member `bool` -torch/_dynamo/utils.py:1038:68: error[invalid-type-arguments] Too many type arguments to class `tuple`: expected 1, got 2 torch/_dynamo/utils.py:1665:18: error[unresolved-import] Cannot resolve imported module `torch._inductor.fb.remote_cache` torch/_dynamo/utils.py:1680:22: warning[possibly-missing-attribute] Submodule `_guards` may not be available as an attribute on module `torch` torch/_dynamo/utils.py:1901:36: warning[possibly-missing-attribute] Submodule `_guards` may not be available as an attribute on module `torch` @@ -1708,12 +1707,12 @@ torch/_dynamo/variables/user_defined.py:1298:37: error[invalid-argument-type] Ar torch/_dynamo/variables/user_defined.py:1317:14: warning[possibly-missing-attribute] Submodule `_dynamo` may not be available as an attribute on module `torch._C` torch/_dynamo/variables/user_defined.py:1334:56: error[invalid-argument-type] Argument to bound method `__getattribute__` is incorrect: Expected `str`, found `object` torch/_dynamo/variables/user_defined.py:1334:68: error[too-many-positional-arguments] Too many positional arguments to bound method `__getattribute__`: expected 2, got 3 -torch/_dynamo/variables/user_defined.py:1402:25: error[unsupported-operator] Operator `not in` is not supported for types `Unknown` and `object` +torch/_dynamo/variables/user_defined.py:1402:25: error[unsupported-operator] Operator `not in` is not supported between objects of type `Unknown` and `object` torch/_dynamo/variables/user_defined.py:1478:32: error[unresolved-attribute] Object of type `object` has no attribute `_parameters` torch/_dynamo/variables/user_defined.py:1479:32: error[unresolved-attribute] Object of type `object` has no attribute `_buffers` torch/_dynamo/variables/user_defined.py:1480:32: error[unresolved-attribute] Object of type `object` has no attribute `_modules` torch/_dynamo/variables/user_defined.py:1504:40: error[unresolved-attribute] Object of type `Self@var_getattr` has no attribute `get_nn_module_stack_source` -torch/_dynamo/variables/user_defined.py:1532:17: error[unsupported-operator] Operator `not in` is not supported for types `Unknown` and `object`, in comparing `Unknown & ~Literal["__dict__"] & ~Literal["__class__"]` with `object` +torch/_dynamo/variables/user_defined.py:1532:17: error[unsupported-operator] Operator `not in` is not supported between objects of type `Unknown & ~Literal["__dict__"] & ~Literal["__class__"]` and `object` torch/_dynamo/variables/user_defined.py:1551:20: warning[possibly-missing-attribute] Attribute `items` may be missing on object of type `Unknown | None | TupleVariable` torch/_dynamo/variables/user_defined.py:1573:17: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `((...) -> Any) | None`, found `None | AttrSource` torch/_dynamo/variables/user_defined.py:1689:57: error[invalid-argument-type] Argument is incorrect: Expected `Source`, found `Unknown | Source | None` @@ -2108,7 +2107,6 @@ torch/_export/serde/serialize.py:2558:29: warning[possibly-missing-attribute] Su torch/_export/serde/serialize.py:3101:51: error[unresolved-attribute] Module `torch._C` has no member `_get_max_operator_version` torch/_export/serde/serialize.py:3180:9: error[invalid-method-override] Invalid override of method `default`: Definition is incompatible with `JSONEncoder.default` torch/_export/serde/serialize.py:3865:31: error[unresolved-attribute] Module `torch` has no member `FunctionSchema` -torch/_export/serde/union.py:49:12: error[call-non-callable] Object of type `` is not callable torch/_export/verifier.py:49:19: error[unresolved-attribute] Module `torch` has no member `memory_format` torch/_export/verifier.py:49:40: error[unresolved-attribute] Module `torch` has no member `dtype` torch/_export/verifier.py:49:53: error[unresolved-attribute] Module `torch` has no member `device` @@ -2175,7 +2173,7 @@ torch/_functorch/_aot_autograd/collect_metadata_analysis.py:842:37: error[unreso torch/_functorch/_aot_autograd/frontend_utils.py:50:30: error[unresolved-attribute] Module `torch` has no member `ScriptObject` torch/_functorch/_aot_autograd/frontend_utils.py:71:35: warning[possibly-missing-attribute] Submodule `_guards` may not be available as an attribute on module `torch` torch/_functorch/_aot_autograd/frontend_utils.py:116:26: warning[possibly-missing-attribute] Submodule `_guards` may not be available as an attribute on module `torch` -torch/_functorch/_aot_autograd/frontend_utils.py:156:16: error[unsupported-operator] Operator `in` is not supported for types `str` and `Module`, in comparing `str` with `Tensor | Module` +torch/_functorch/_aot_autograd/frontend_utils.py:156:16: error[unsupported-operator] Operator `in` is not supported between objects of type `str` and `Tensor | Module` torch/_functorch/_aot_autograd/frontend_utils.py:157:18: error[non-subscriptable] Cannot subscript object of type `Module` with no `__getitem__` method torch/_functorch/_aot_autograd/functional_utils.py:75:12: error[unresolved-attribute] Module `torch` has no member `_from_functional_tensor` torch/_functorch/_aot_autograd/functional_utils.py:119:16: error[unresolved-attribute] Module `torch` has no member `_functionalize_are_all_mutations_hidden_from_autograd` @@ -2623,10 +2621,10 @@ torch/_higher_order_ops/invoke_subgraph.py:536:28: error[invalid-assignment] Obj torch/_higher_order_ops/local_map.py:16:22: error[unresolved-import] Module `torch._C` has no member `DispatchKey` torch/_higher_order_ops/local_map.py:59:16: error[unresolved-attribute] Module `torch` has no member `empty_strided` torch/_higher_order_ops/local_map.py:124:9: warning[possibly-missing-attribute] Submodule `tensor` may not be available as an attribute on module `torch.distributed` -torch/_higher_order_ops/local_map.py:135:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[Tensor, int, SymInt, None]`, found `tuple[@Todo, @Todo]` +torch/_higher_order_ops/local_map.py:135:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[Tensor, int, SymInt, None]`, found `tuple[@Todo(StarredExpression), @Todo(StarredExpression)]` torch/_higher_order_ops/local_map.py:140:13: warning[possibly-missing-attribute] Submodule `tensor` may not be available as an attribute on module `torch.distributed` torch/_higher_order_ops/local_map.py:156:9: warning[possibly-missing-attribute] Submodule `tensor` may not be available as an attribute on module `torch.distributed` -torch/_higher_order_ops/local_map.py:158:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[Tensor, int, SymInt, None]`, found `tuple[@Todo, @Todo]` +torch/_higher_order_ops/local_map.py:158:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[Tensor, int, SymInt, None]`, found `tuple[@Todo(StarredExpression), @Todo(StarredExpression)]` torch/_higher_order_ops/local_map.py:172:9: warning[possibly-missing-attribute] Submodule `tensor` may not be available as an attribute on module `torch.distributed` torch/_higher_order_ops/local_map.py:407:14: error[unresolved-attribute] Module `torch._C` has no member `_AutoDispatchBelowAutograd` torch/_higher_order_ops/local_map.py:434:14: error[unresolved-attribute] Module `torch._C` has no member `_AutoDispatchBelowAutograd` @@ -2711,10 +2709,10 @@ torch/_higher_order_ops/triton_kernel_wrap.py:398:22: error[unresolved-import] C torch/_higher_order_ops/triton_kernel_wrap.py:412:22: error[unresolved-import] Cannot resolve imported module `triton.runtime.jit` torch/_higher_order_ops/triton_kernel_wrap.py:419:18: error[unresolved-import] Cannot resolve imported module `triton._utils` torch/_higher_order_ops/triton_kernel_wrap.py:434:37: error[non-subscriptable] Cannot subscript object of type `(...) -> Unknown` with no `__getitem__` method -torch/_higher_order_ops/triton_kernel_wrap.py:790:13: error[invalid-assignment] Invalid subscript assignment with key of type `tuple[str, @Todo]` and value of type `None` on object of type `dict[tuple[Any], Any]` -torch/_higher_order_ops/triton_kernel_wrap.py:791:13: error[invalid-assignment] Invalid subscript assignment with key of type `tuple[str, @Todo]` and value of type `Any` on object of type `dict[tuple[Any], Any]` -torch/_higher_order_ops/triton_kernel_wrap.py:792:12: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[tuple[Any], Any].__getitem__(key: tuple[Any], /) -> Any` cannot be called with key of type `tuple[str, @Todo]` on object of type `dict[tuple[Any], Any]` -torch/_higher_order_ops/triton_kernel_wrap.py:794:16: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[tuple[Any], Any].__getitem__(key: tuple[Any], /) -> Any` cannot be called with key of type `tuple[str, @Todo]` on object of type `dict[tuple[Any], Any]` +torch/_higher_order_ops/triton_kernel_wrap.py:790:13: error[invalid-assignment] Invalid subscript assignment with key of type `tuple[str, @Todo(StarredExpression)]` and value of type `None` on object of type `dict[tuple[Any], Any]` +torch/_higher_order_ops/triton_kernel_wrap.py:791:13: error[invalid-assignment] Invalid subscript assignment with key of type `tuple[str, @Todo(StarredExpression)]` and value of type `Any` on object of type `dict[tuple[Any], Any]` +torch/_higher_order_ops/triton_kernel_wrap.py:792:12: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[tuple[Any], Any].__getitem__(key: tuple[Any], /) -> Any` cannot be called with key of type `tuple[str, @Todo(StarredExpression)]` on object of type `dict[tuple[Any], Any]` +torch/_higher_order_ops/triton_kernel_wrap.py:794:16: error[invalid-argument-type] Method `__getitem__` of type `bound method dict[tuple[Any], Any].__getitem__(key: tuple[Any], /) -> Any` cannot be called with key of type `tuple[str, @Todo(StarredExpression)]` on object of type `dict[tuple[Any], Any]` torch/_higher_order_ops/triton_kernel_wrap.py:973:16: warning[possibly-missing-attribute] Attribute `fn` may be missing on object of type `Unknown | Autotuner | JITFunction` torch/_higher_order_ops/triton_kernel_wrap.py:1077:13: warning[possibly-missing-attribute] Attribute `fn` may be missing on object of type `Unknown | Autotuner | JITFunction` torch/_higher_order_ops/triton_kernel_wrap.py:1079:13: warning[possibly-missing-attribute] Attribute `configs` may be missing on object of type `Unknown | Autotuner | JITFunction` @@ -2779,7 +2777,7 @@ torch/_higher_order_ops/while_loop.py:783:20: error[unresolved-attribute] Module torch/_higher_order_ops/while_loop.py:783:42: error[unresolved-attribute] Module `torch` has no member `int64` torch/_higher_order_ops/while_loop.py:786:13: error[unresolved-attribute] Module `torch` has no member `zeros_like` torch/_higher_order_ops/while_loop.py:796:13: error[unresolved-attribute] Module `torch` has no member `cat` -torch/_higher_order_ops/while_loop.py:887:17: error[invalid-argument-type] Argument to bound method `__call__` is incorrect: Expected `tuple[Tensor | int | float]`, found `tuple[Unknown, @Todo, @Todo]` +torch/_higher_order_ops/while_loop.py:887:17: error[invalid-argument-type] Argument to bound method `__call__` is incorrect: Expected `tuple[Tensor | int | float]`, found `tuple[Unknown, @Todo(StarredExpression), @Todo(StarredExpression)]` torch/_higher_order_ops/wrap.py:9:22: error[unresolved-import] Module `torch._C` has no member `DispatchKey` torch/_higher_order_ops/wrap.py:88:20: error[unresolved-attribute] Module `torch` has no member `is_grad_enabled` torch/_higher_order_ops/wrap.py:291:28: error[unresolved-attribute] Module `torch._C` has no member `DispatchKey` @@ -4283,7 +4281,7 @@ torch/_inductor/codegen/mps.py:52:5: error[unresolved-attribute] Module `torch` torch/_inductor/codegen/mps.py:77:12: error[unresolved-attribute] Object of type `Expr` has no attribute `is_integer` torch/_inductor/codegen/mps.py:86:16: error[unresolved-attribute] Object of type `Expr` has no attribute `is_integer` torch/_inductor/codegen/mps.py:120:12: error[unresolved-attribute] Object of type `Basic` has no attribute `is_integer` -torch/_inductor/codegen/mps.py:122:20: error[unsupported-operator] Operator `<` is not supported for types `Basic` and `int`, in comparing `Basic` with `Literal[0]` +torch/_inductor/codegen/mps.py:122:20: error[unsupported-operator] Operator `<` is not supported between objects of type `Basic` and `Literal[0]` torch/_inductor/codegen/mps.py:127:82: error[unsupported-operator] Unary operator `-` is unsupported for type `Basic` torch/_inductor/codegen/mps.py:145:12: error[unresolved-attribute] Object of type `Expr` has no attribute `is_integer` torch/_inductor/codegen/mps.py:177:16: error[unresolved-attribute] Module `torch` has no member `dtype` @@ -5875,11 +5873,11 @@ torch/_inductor/fx_passes/serialized_patterns/_sfdp_pattern_9.py:203:84: error[u torch/_inductor/fx_passes/serialized_patterns/_sfdp_pattern_9.py:218:84: error[unresolved-attribute] Module `torch` has no member `contiguous_format` torch/_inductor/fx_passes/split_cat.py:129:23: error[unresolved-attribute] Module `torch` has no member `unbind` torch/_inductor/fx_passes/split_cat.py:268:25: error[unresolved-attribute] Module `torch` has no member `unbind` -torch/_inductor/fx_passes/split_cat.py:294:8: error[unsupported-operator] Operator `<` is not supported for types `Sequence[Divergent]` and `int`, in comparing `(Any & ~None) | Sequence[Divergent] | Mapping[str, Divergent] | ... omitted 12 union elements` with `Literal[0]` +torch/_inductor/fx_passes/split_cat.py:294:8: error[unsupported-operator] Operator `<` is not supported between objects of type `(Any & ~None) | Sequence[Divergent] | Mapping[str, Divergent] | ... omitted 12 union elements` and `Literal[0]` torch/_inductor/fx_passes/split_cat.py:298:13: error[unresolved-attribute] Module `torch` has no member `unbind` torch/_inductor/fx_passes/split_cat.py:309:26: error[unresolved-attribute] Module `torch` has no member `cat` torch/_inductor/fx_passes/split_cat.py:309:37: error[unresolved-attribute] Module `torch` has no member `concat` -torch/_inductor/fx_passes/split_cat.py:344:8: error[unsupported-operator] Operator `<` is not supported for types `Sequence[Divergent]` and `int`, in comparing `(Any & ~None) | Sequence[Divergent] | Mapping[str, Divergent] | ... omitted 12 union elements` with `Literal[0]` +torch/_inductor/fx_passes/split_cat.py:344:8: error[unsupported-operator] Operator `<` is not supported between objects of type `(Any & ~None) | Sequence[Divergent] | Mapping[str, Divergent] | ... omitted 12 union elements` and `Literal[0]` torch/_inductor/fx_passes/split_cat.py:353:32: error[unresolved-attribute] Module `torch` has no member `cat` torch/_inductor/fx_passes/split_cat.py:359:13: error[unresolved-attribute] Module `torch` has no member `cat` torch/_inductor/fx_passes/split_cat.py:370:25: error[unresolved-attribute] Module `torch` has no member `stack` @@ -5939,7 +5937,7 @@ torch/_inductor/fx_passes/split_cat.py:1502:9: error[unresolved-attribute] Modul torch/_inductor/fx_passes/split_cat.py:1521:31: error[unresolved-attribute] Module `torch` has no member `cat` torch/_inductor/fx_passes/split_cat.py:1609:9: error[unresolved-attribute] Module `torch` has no member `cat` torch/_inductor/fx_passes/split_cat.py:1626:31: error[unresolved-attribute] Module `torch` has no member `cat` -torch/_inductor/fx_passes/split_cat.py:1974:8: error[unsupported-operator] Operator `<` is not supported for types `Sequence[Divergent]` and `int`, in comparing `(Any & ~None) | Sequence[Divergent] | Mapping[str, Divergent] | ... omitted 12 union elements` with `Literal[0]` +torch/_inductor/fx_passes/split_cat.py:1974:8: error[unsupported-operator] Operator `<` is not supported between objects of type `(Any & ~None) | Sequence[Divergent] | Mapping[str, Divergent] | ... omitted 12 union elements` and `Literal[0]` torch/_inductor/fx_passes/split_cat.py:2142:16: error[unresolved-attribute] Module `torch` has no member `Size` torch/_inductor/fx_passes/split_cat.py:2154:17: error[unresolved-attribute] Module `torch` has no member `permute` torch/_inductor/fx_passes/split_cat.py:2157:50: error[unresolved-attribute] Module `torch` has no member `permute` @@ -6063,7 +6061,7 @@ torch/_inductor/index_propagation.py:156:23: error[unresolved-attribute] Module torch/_inductor/index_propagation.py:174:23: error[unresolved-attribute] Module `torch` has no member `promote_types` torch/_inductor/index_propagation.py:179:23: error[unresolved-attribute] Module `torch` has no member `promote_types` torch/_inductor/index_propagation.py:234:57: error[unresolved-attribute] Module `torch` has no member `dtype` -torch/_inductor/index_propagation.py:336:70: error[invalid-argument-type] Argument to function `statically_known_true` is incorrect: Expected `tuple[tuple[Symbol, ValueRanges[Any]]] | None`, found `tuple[@Todo, @Todo]` +torch/_inductor/index_propagation.py:336:70: error[invalid-argument-type] Argument to function `statically_known_true` is incorrect: Expected `tuple[tuple[Symbol, ValueRanges[Any]]] | None`, found `tuple[@Todo(StarredExpression), @Todo(StarredExpression)]` torch/_inductor/index_propagation.py:338:9: error[invalid-method-override] Invalid override of method `indirect_indexing`: Definition is incompatible with `OpsHandler.indirect_indexing` torch/_inductor/inductor_prims.py:25:29: error[unresolved-attribute] Module `torch` has no member `Tag` torch/_inductor/inductor_prims.py:59:12: error[unresolved-attribute] Module `torch` has no member `amax` @@ -6196,7 +6194,7 @@ torch/_inductor/ir.py:2418:16: error[invalid-return-type] Return type does not m torch/_inductor/ir.py:2433:52: error[invalid-argument-type] Argument to function `extract_free_symbols` is incorrect: Expected `Sequence[Expr]`, found `Sequence[int | Expr]` torch/_inductor/ir.py:2438:17: error[unresolved-attribute] Module `torch` has no member `device` torch/_inductor/ir.py:2439:23: error[unresolved-attribute] Module `torch` has no member `dtype` -torch/_inductor/ir.py:2492:62: error[unsupported-operator] Operator `>=` is not supported for types `None` and `str`, in comparing `Unknown | None` with `Literal["3.3.0"]` +torch/_inductor/ir.py:2492:62: error[unsupported-operator] Operator `>=` is not supported between objects of type `Unknown | None` and `Literal["3.3.0"]` torch/_inductor/ir.py:2537:17: error[unresolved-attribute] Module `torch` has no member `device` torch/_inductor/ir.py:2538:16: error[unresolved-attribute] Module `torch` has no member `dtype` torch/_inductor/ir.py:2577:19: error[unresolved-attribute] Module `torch` has no member `dtype` @@ -6671,10 +6669,10 @@ torch/_inductor/lowering.py:1739:43: error[unresolved-attribute] Module `torch` torch/_inductor/lowering.py:1755:31: error[unresolved-attribute] Module `torch` has no member `int8` torch/_inductor/lowering.py:1755:43: error[unresolved-attribute] Module `torch` has no member `uint8` torch/_inductor/lowering.py:1883:5: warning[deprecated] The function `check` is deprecated: `torch._prims_common.check` is deprecated and will be removed in the future. Please use `torch._check*` functions instead. -torch/_inductor/lowering.py:2098:8: error[unsupported-operator] Operator `<` is not supported for types `Basic` and `int`, in comparing `Unknown | Basic` with `Literal[0]` +torch/_inductor/lowering.py:2098:8: error[unsupported-operator] Operator `<` is not supported between objects of type `Unknown | Basic` and `Literal[0]` torch/_inductor/lowering.py:2099:9: error[unsupported-operator] Operator `+=` is unsupported between objects of type `Basic` and `Unknown | int` -torch/_inductor/lowering.py:2100:12: error[unsupported-operator] Operator `<=` is not supported for types `int` and `Basic`, in comparing `Literal[0]` with `Unknown | Basic` -torch/_inductor/lowering.py:2100:17: error[unsupported-operator] Operator `<` is not supported for types `Basic` and `int`, in comparing `Unknown | Basic` with `Unknown | int` +torch/_inductor/lowering.py:2100:12: error[unsupported-operator] Operator `<=` is not supported between objects of type `Literal[0]` and `Unknown | Basic` +torch/_inductor/lowering.py:2100:17: error[unsupported-operator] Operator `<` is not supported between objects of type `Unknown | Basic` and `Unknown | int` torch/_inductor/lowering.py:2155:19: error[unresolved-attribute] Module `torch` has no member `float8_e8m0fnu` torch/_inductor/lowering.py:2288:32: error[unresolved-attribute] Module `torch` has no member `int64` torch/_inductor/lowering.py:2307:57: error[unresolved-attribute] Module `torch` has no member `int32` @@ -7227,9 +7225,9 @@ torch/_inductor/scheduler.py:3474:33: warning[possibly-missing-attribute] Submod torch/_inductor/scheduler.py:3481:21: warning[possibly-missing-attribute] Submodule `ir` may not be available as an attribute on module `torch._inductor` torch/_inductor/scheduler.py:3607:14: error[unresolved-import] Cannot resolve imported module `triton.compiler.errors` torch/_inductor/scheduler.py:3667:33: warning[possibly-missing-attribute] Submodule `select_algorithm` may not be available as an attribute on module `torch._inductor` -torch/_inductor/scheduler.py:3672:29: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `tuple[Any, LambdaFuture | None, ModuleType]`, found `tuple[ChoiceCaller & Unknown, @Todo]` +torch/_inductor/scheduler.py:3672:29: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `tuple[Any, LambdaFuture | None, ModuleType]`, found `tuple[ChoiceCaller & Unknown, @Todo(StarredExpression)]` torch/_inductor/scheduler.py:3722:43: warning[possibly-missing-attribute] Submodule `ir` may not be available as an attribute on module `torch._inductor` -torch/_inductor/scheduler.py:3745:43: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `tuple[Any, LambdaFuture | None, ModuleType]`, found `tuple[ChoiceCaller & Unknown, @Todo]` +torch/_inductor/scheduler.py:3745:43: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `tuple[Any, LambdaFuture | None, ModuleType]`, found `tuple[ChoiceCaller & Unknown, @Todo(StarredExpression)]` torch/_inductor/scheduler.py:4203:49: error[invalid-argument-type] Argument to bound method `statically_known_gt` is incorrect: Expected `Expr`, found `int` torch/_inductor/scheduler.py:4628:32: error[unresolved-attribute] Module `torch` has no member `dtype` torch/_inductor/scheduler.py:5158:31: warning[possibly-missing-attribute] Attribute `data` may be missing on object of type `(TensorBox & ~TorchBindObject & ~GeneratorState) | (Expr & ~TorchBindObject & ~GeneratorState)` @@ -7678,10 +7676,10 @@ torch/_library/infer_schema.py:63:18: error[unresolved-attribute] Object of type torch/_library/infer_schema.py:132:37: error[unresolved-attribute] Module `torch._C` has no member `ScriptObject` torch/_library/infer_schema.py:185:50: error[unresolved-attribute] Module `torch` has no member `device` torch/_library/infer_schema.py:187:44: error[unresolved-attribute] Module `torch` has no member `dtype` -torch/_library/infer_schema.py:222:80: error[invalid-assignment] Object of type `list[tuple[type | _SpecialForm | GenericAlias, str] | tuple[types.UnionType, str]]` is not assignable to `list[tuple[type | _SpecialForm | GenericAlias, str]]` -torch/_library/infer_schema.py:244:46: error[invalid-argument-type] Argument to function `derived_seq_types` is incorrect: Expected `type | _SpecialForm`, found `types.UnionType` -torch/_library/infer_schema.py:248:13: error[invalid-argument-type] Argument to bound method `extend` is incorrect: Expected `Iterable[tuple[type | _SpecialForm | GenericAlias, str]]`, found `GeneratorType[tuple[types.UnionType, str], None, None]` -torch/_library/infer_schema.py:256:82: error[invalid-assignment] Object of type `list[tuple[type | _SpecialForm, str, bool, bool, bool] | tuple[types.UnionType, str, bool, bool, bool] | tuple[, str, bool, bool, bool]]` is not assignable to `list[tuple[type | _SpecialForm, str, bool, bool, bool]]` +torch/_library/infer_schema.py:222:80: error[invalid-assignment] Object of type `list[tuple[type | _SpecialForm | GenericAlias, str] | tuple[, str]]` is not assignable to `list[tuple[type | _SpecialForm | GenericAlias, str]]` +torch/_library/infer_schema.py:244:46: error[invalid-argument-type] Argument to function `derived_seq_types` is incorrect: Expected `type | _SpecialForm`, found `` +torch/_library/infer_schema.py:248:13: error[invalid-argument-type] Argument to bound method `extend` is incorrect: Expected `Iterable[tuple[type | _SpecialForm | GenericAlias, str]]`, found `GeneratorType[tuple[, str], None, None]` +torch/_library/infer_schema.py:256:82: error[invalid-assignment] Object of type `list[tuple[type | _SpecialForm, str, bool, bool, bool] | tuple[, str, bool, bool, bool] | tuple[, str, bool, bool, bool]]` is not assignable to `list[tuple[type | _SpecialForm, str, bool, bool, bool]]` torch/_library/opaque_object.py:23:36: error[unresolved-attribute] Module `torch._C` has no member `ScriptObject` torch/_library/opaque_object.py:26:41: error[unresolved-attribute] Module `torch._C` has no member `ScriptObject` torch/_library/opaque_object.py:84:12: error[unresolved-attribute] Module `torch._C` has no member `_make_opaque_object` @@ -9892,10 +9890,10 @@ torch/_numpy/_funcs_impl.py:329:9: error[unresolved-attribute] Module `torch` ha torch/_numpy/_funcs_impl.py:346:12: error[unresolved-attribute] Module `torch` has no member `logspace` torch/_numpy/_funcs_impl.py:375:18: error[unresolved-attribute] Module `torch` has no member `float64` torch/_numpy/_funcs_impl.py:375:35: warning[possibly-missing-attribute] Attribute `is_complex` may be missing on object of type `(DTypeLike@arange & ~None) | Divergent` -torch/_numpy/_funcs_impl.py:381:9: error[unsupported-operator] Operator `>` is not supported for types `typing.TypeVar` and `Literal[0]`, in comparing `typing.TypeVar | (int & ~Literal[0]) | float | complex | None` with `Literal[0]` -torch/_numpy/_funcs_impl.py:381:22: error[unsupported-operator] Operator `>` is not supported for types `typing.TypeVar` and `typing.TypeVar`, in comparing `typing.TypeVar | int | float | complex` with `typing.TypeVar | int | float | complex | None` -torch/_numpy/_funcs_impl.py:381:40: error[unsupported-operator] Operator `<` is not supported for types `typing.TypeVar` and `Literal[0]`, in comparing `typing.TypeVar | (int & ~Literal[0]) | float | complex | None` with `Literal[0]` -torch/_numpy/_funcs_impl.py:381:53: error[unsupported-operator] Operator `<` is not supported for types `typing.TypeVar` and `typing.TypeVar`, in comparing `typing.TypeVar | int | float | complex` with `typing.TypeVar | int | float | complex | None` +torch/_numpy/_funcs_impl.py:381:9: error[unsupported-operator] Operator `>` is not supported between objects of type `(Unknown & ~Literal[0]) | (int & ~Literal[0]) | float | complex | None` and `Literal[0]` +torch/_numpy/_funcs_impl.py:381:22: error[unsupported-operator] Operator `>` is not supported between objects of type `(Unknown & ~None) | int | float | complex` and `Unknown | int | float | complex | None` +torch/_numpy/_funcs_impl.py:381:40: error[unsupported-operator] Operator `<` is not supported between objects of type `(Unknown & ~Literal[0]) | (int & ~Literal[0]) | float | complex | None` and `Literal[0]` +torch/_numpy/_funcs_impl.py:381:53: error[unsupported-operator] Operator `<` is not supported between objects of type `(Unknown & ~None) | int | float | complex` and `Unknown | int | float | complex | None` torch/_numpy/_funcs_impl.py:383:16: error[unresolved-attribute] Module `torch` has no member `empty` torch/_numpy/_funcs_impl.py:385:14: error[unresolved-attribute] Module `torch` has no member `arange` torch/_numpy/_funcs_impl.py:402:12: error[unresolved-attribute] Module `torch` has no member `empty` @@ -16236,8 +16234,6 @@ torch/distributed/_symmetric_memory/_nvshmem_triton.py:1206:38: warning[possibly torch/distributed/_tools/fake_collectives.py:14:1: warning[possibly-missing-attribute] Member `batch_isend_irecv` may be missing on module `torch.distributed` torch/distributed/_tools/fsdp2_mem_tracker.py:107:31: error[unresolved-attribute] Module `torch` has no member `device` torch/distributed/_tools/fsdp2_mem_tracker.py:109:38: error[unresolved-attribute] Module `torch` has no member `device` -torch/distributed/_tools/fsdp2_mem_tracker.py:449:51: error[invalid-argument-type] Argument to bound method `register_step_pre_hook` is incorrect: Expected `(typing.Self, tuple[Any, ...], dict[str, Any], /) -> tuple[tuple[Any, ...], dict[str, Any]] | None`, found `def _opt_step_pre_hook(optimizer: Optimizer, args: Any, kwargs: Any) -> None` -torch/distributed/_tools/fsdp2_mem_tracker.py:450:52: error[invalid-argument-type] Argument to bound method `register_step_post_hook` is incorrect: Expected `(typing.Self, tuple[Any, ...], dict[str, Any], /) -> None`, found `def _opt_step_post_hook(optimizer: Optimizer, args: Any, kwargs: Any) -> None` torch/distributed/_tools/fsdp2_mem_tracker.py:538:19: error[non-subscriptable] Cannot subscript object of type `EllipsisType` with no `__getitem__` method torch/distributed/_tools/fsdp2_mem_tracker.py:555:29: error[non-subscriptable] Cannot subscript object of type `EllipsisType` with no `__getitem__` method torch/distributed/_tools/fsdp2_mem_tracker.py:566:28: error[non-subscriptable] Cannot subscript object of type `EllipsisType` with no `__getitem__` method @@ -16463,7 +16459,7 @@ torch/distributed/checkpoint/_async_process_executor.py:262:17: warning[possibly torch/distributed/checkpoint/_async_process_executor.py:262:49: warning[possibly-missing-attribute] Member `Backend` may be missing on module `torch.distributed` torch/distributed/checkpoint/_async_process_executor.py:263:13: warning[possibly-missing-attribute] Member `barrier` may be missing on module `torch.distributed` torch/distributed/checkpoint/_async_process_executor.py:333:33: warning[possibly-missing-attribute] Member `ProcessGroup` may be missing on module `torch.distributed` -torch/distributed/checkpoint/_async_process_executor.py:366:13: error[invalid-argument-type] Argument to bound method `save` is incorrect: Expected `dict[str, typing.TypeVar | Any]`, found `object` +torch/distributed/checkpoint/_async_process_executor.py:366:13: error[invalid-argument-type] Argument to bound method `save` is incorrect: Expected `dict[str, Unknown]`, found `object` torch/distributed/checkpoint/_async_process_executor.py:381:33: warning[possibly-missing-attribute] Member `ProcessGroup` may be missing on module `torch.distributed` torch/distributed/checkpoint/_async_thread_executor.py:20:29: warning[possibly-missing-attribute] Member `ProcessGroup` may be missing on module `torch.distributed` torch/distributed/checkpoint/_async_thread_executor.py:55:33: warning[possibly-missing-attribute] Member `ProcessGroup` may be missing on module `torch.distributed` @@ -16547,7 +16543,6 @@ torch/distributed/checkpoint/examples/fsdp_checkpoint_example.py:50:30: warning[ torch/distributed/checkpoint/examples/fsdp_checkpoint_example.py:64:5: warning[possibly-missing-attribute] Member `init_process_group` may be missing on module `torch.distributed` torch/distributed/checkpoint/examples/fsdp_checkpoint_example.py:77:17: warning[deprecated] The function `save_state_dict` is deprecated: `save_state_dict` is deprecated and will be removed in future versions.Please use `save` instead. torch/distributed/checkpoint/examples/fsdp_checkpoint_example.py:96:17: warning[deprecated] The function `load_state_dict` is deprecated: `load_state_dict` is deprecated and will be removed in future versions. Please use `load` instead. -torch/distributed/checkpoint/examples/fsdp_checkpoint_example.py:109:31: error[invalid-argument-type] Argument to function `optim_state_dict_to_load` is incorrect: Expected `dict[str, Any]`, found `typing.TypeVar | Any` torch/distributed/checkpoint/examples/fsdp_checkpoint_example.py:118:5: warning[possibly-missing-attribute] Member `destroy_process_group` may be missing on module `torch.distributed` torch/distributed/checkpoint/examples/stateful_example.py:19:43: warning[possibly-missing-import] Member `init_device_mesh` of module `torch.distributed.device_mesh` may be missing torch/distributed/checkpoint/examples/stateful_example.py:39:16: error[unresolved-attribute] Module `torch` has no member `rand` @@ -16558,7 +16553,6 @@ torch/distributed/checkpoint/filesystem.py:342:27: error[unresolved-attribute] M torch/distributed/checkpoint/filesystem.py:390:35: error[unresolved-attribute] Module `torch._C` has no member `_get_privateuse1_backend_name` torch/distributed/checkpoint/format_utils.py:106:29: warning[possibly-missing-attribute] Member `distributed_c10d` may be missing on module `torch.distributed` torch/distributed/checkpoint/format_utils.py:108:26: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method -torch/distributed/checkpoint/format_utils.py:108:26: warning[possibly-missing-attribute] Attribute `to` may be missing on object of type `Any | typing.TypeVar` torch/distributed/checkpoint/format_utils.py:110:26: error[unresolved-attribute] Module `torch` has no member `empty_like` torch/distributed/checkpoint/format_utils.py:112:13: warning[possibly-missing-attribute] Member `broadcast` may be missing on module `torch.distributed` torch/distributed/checkpoint/format_utils.py:129:9: error[invalid-method-override] Invalid override of method `set_up_storage_reader`: Definition is incompatible with `StorageReader.set_up_storage_reader` @@ -16601,9 +16595,6 @@ torch/distributed/checkpoint/optimizer.py:108:18: error[unresolved-attribute] Mo torch/distributed/checkpoint/optimizer.py:112:12: error[unresolved-attribute] Module `torch` has no member `empty` torch/distributed/checkpoint/optimizer.py:124:43: warning[possibly-missing-attribute] Member `ProcessGroup` may be missing on module `torch.distributed` torch/distributed/checkpoint/optimizer.py:136:21: warning[possibly-missing-attribute] Member `ProcessGroup` may be missing on module `torch.distributed` -torch/distributed/checkpoint/optimizer.py:138:29: warning[possibly-missing-attribute] Attribute `size` may be missing on object of type `typing.TypeVar | Any` -torch/distributed/checkpoint/optimizer.py:139:30: error[invalid-argument-type] Argument to function `_is_nested_tensor` is incorrect: Expected `Tensor`, found `typing.TypeVar | Any` -torch/distributed/checkpoint/optimizer.py:140:24: warning[possibly-missing-attribute] Attribute `local_shards` may be missing on object of type `typing.TypeVar | Any` torch/distributed/checkpoint/optimizer.py:190:29: error[unresolved-attribute] Module `torch` has no member `Size` torch/distributed/checkpoint/optimizer.py:193:27: error[unresolved-attribute] Module `torch` has no member `Size` torch/distributed/checkpoint/optimizer.py:207:43: error[unresolved-attribute] Module `torch` has no member `Size` @@ -16863,14 +16854,14 @@ torch/distributed/elastic/rendezvous/api.py:14:31: warning[possibly-missing-impo torch/distributed/elastic/rendezvous/c10d_rendezvous_backend.py:16:31: warning[possibly-missing-import] Member `FileStore` of module `torch.distributed` may be missing torch/distributed/elastic/rendezvous/c10d_rendezvous_backend.py:16:42: warning[possibly-missing-import] Member `Store` of module `torch.distributed` may be missing torch/distributed/elastic/rendezvous/c10d_rendezvous_backend.py:16:49: warning[possibly-missing-import] Member `TCPStore` of module `torch.distributed` may be missing -torch/distributed/elastic/rendezvous/c10d_rendezvous_backend.py:90:28: error[invalid-return-type] Return type does not match returned value: expected `tuple[bytes, Any, bool] | None`, found `tuple[@Todo, Literal[False]]` +torch/distributed/elastic/rendezvous/c10d_rendezvous_backend.py:90:28: error[invalid-return-type] Return type does not match returned value: expected `tuple[bytes, Any, bool] | None`, found `tuple[@Todo(StarredExpression), Literal[False]]` torch/distributed/elastic/rendezvous/dynamic_rendezvous.py:24:31: warning[possibly-missing-import] Member `Store` of module `torch.distributed` may be missing torch/distributed/elastic/rendezvous/dynamic_rendezvous.py:1105:49: warning[possibly-missing-attribute] Member `Store` may be missing on module `torch.distributed` torch/distributed/elastic/rendezvous/dynamic_rendezvous.py:1126:69: warning[possibly-missing-attribute] Member `TCPStore` may be missing on module `torch.distributed` torch/distributed/elastic/rendezvous/dynamic_rendezvous.py:1127:16: warning[possibly-missing-attribute] Member `TCPStore` may be missing on module `torch.distributed` torch/distributed/elastic/rendezvous/dynamic_rendezvous.py:1373:16: warning[possibly-missing-attribute] Member `PrefixStore` may be missing on module `torch.distributed` torch/distributed/elastic/rendezvous/etcd_rendezvous_backend.py:20:31: warning[possibly-missing-import] Member `Store` of module `torch.distributed` may be missing -torch/distributed/elastic/rendezvous/etcd_rendezvous_backend.py:126:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[bytes, Any, bool] | None`, found `tuple[@Todo, Literal[True]]` +torch/distributed/elastic/rendezvous/etcd_rendezvous_backend.py:126:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[bytes, Any, bool] | None`, found `tuple[@Todo(StarredExpression), Literal[True]]` torch/distributed/elastic/rendezvous/etcd_rendezvous_backend.py:130:24: warning[possibly-missing-attribute] Attribute `value` may be missing on object of type `Unknown | EtcdResult` torch/distributed/elastic/rendezvous/etcd_rendezvous_backend.py:140:23: warning[possibly-missing-attribute] Attribute `modifiedIndex` may be missing on object of type `Unknown | EtcdResult` torch/distributed/elastic/rendezvous/etcd_store.py:15:31: warning[possibly-missing-import] Member `Store` of module `torch.distributed` may be missing @@ -18069,7 +18060,7 @@ torch/distributions/bernoulli.py:78:25: warning[possibly-missing-attribute] Attr torch/distributions/bernoulli.py:81:26: warning[possibly-missing-attribute] Attribute `expand` may be missing on object of type `Unknown | lazy_property[Unknown, Unknown]` torch/distributions/bernoulli.py:88:16: warning[possibly-missing-attribute] Attribute `new` may be missing on object of type `Unknown | lazy_property[Unknown, Unknown] | Tensor` torch/distributions/bernoulli.py:92:16: error[invalid-return-type] Return type does not match returned value: expected `Tensor`, found `Unknown | lazy_property[Unknown, Unknown]` -torch/distributions/bernoulli.py:96:17: error[unsupported-operator] Operator `>=` is not supported for types `lazy_property[Unknown, Unknown]` and `float`, in comparing `Unknown | lazy_property[Unknown, Unknown]` with `float` +torch/distributions/bernoulli.py:96:17: error[unsupported-operator] Operator `>=` is not supported between objects of type `Unknown | lazy_property[Unknown, Unknown]` and `float` torch/distributions/bernoulli.py:102:30: error[unsupported-operator] Operator `-` is unsupported between objects of type `Literal[1]` and `Unknown | lazy_property[Unknown, Unknown]` torch/distributions/bernoulli.py:106:32: error[invalid-argument-type] Argument to function `probs_to_logits` is incorrect: Expected `Tensor`, found `Unknown | lazy_property[Unknown, Unknown]` torch/distributions/bernoulli.py:110:32: error[invalid-argument-type] Argument to function `logits_to_probs` is incorrect: Expected `Tensor`, found `Unknown | lazy_property[Unknown, Unknown]` @@ -18354,7 +18345,7 @@ torch/distributions/generalized_pareto.py:139:15: error[unresolved-attribute] Mo torch/distributions/generalized_pareto.py:140:16: error[unresolved-attribute] Module `torch` has no member `broadcast_to` torch/distributions/generalized_pareto.py:150:17: error[unresolved-attribute] Module `torch` has no member `where` torch/distributions/geometric.py:70:27: error[unresolved-attribute] Module `torch` has no member `Size` -torch/distributions/geometric.py:78:21: error[unsupported-operator] Operator `>` is not supported for types `lazy_property[Unknown, Unknown]` and `int`, in comparing `Unknown | lazy_property[Unknown, Unknown] | Tensor` with `Literal[0]` +torch/distributions/geometric.py:78:21: error[unsupported-operator] Operator `>` is not supported between objects of type `Unknown | lazy_property[Unknown, Unknown] | Tensor` and `Literal[0]` torch/distributions/geometric.py:80:33: warning[possibly-missing-attribute] Attribute `data` may be missing on object of type `Unknown | lazy_property[Unknown, Unknown] | Tensor` torch/distributions/geometric.py:83:63: warning[possibly-missing-attribute] Attribute `shape` may be missing on object of type `Unknown | lazy_property[Unknown, Unknown] | Tensor` torch/distributions/geometric.py:90:23: error[unresolved-attribute] Module `torch` has no member `Size` @@ -19012,7 +19003,7 @@ torch/fx/experimental/recording.py:169:56: error[unresolved-attribute] Object of torch/fx/experimental/recording.py:245:20: error[unresolved-attribute] Object of type `((...) -> Unknown) & (() -> object)` has no attribute `__name__` torch/fx/experimental/schema_type_annotation.py:110:38: error[unresolved-attribute] Module `torch._C` has no member `_jit_try_infer_type` torch/fx/experimental/shape_inference/infer_shape.py:53:30: error[unresolved-attribute] Module `torch` has no member `randn` -torch/fx/experimental/symbolic_shapes.py:253:9: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int | SymInt, int]`, found `tuple[Literal[1], Unknown, int] | tuple[Literal[0], @Todo]` +torch/fx/experimental/symbolic_shapes.py:253:9: error[invalid-return-type] Return type does not match returned value: expected `tuple[int, int | SymInt, int]`, found `tuple[Literal[1], Unknown, int] | tuple[Literal[0], @Todo(StarredExpression)]` torch/fx/experimental/symbolic_shapes.py:253:13: warning[possibly-missing-attribute] Attribute `node` may be missing on object of type `int | SymInt` torch/fx/experimental/symbolic_shapes.py:326:9: warning[possibly-missing-attribute] Submodule `experimental` may not be available as an attribute on module `torch.fx` torch/fx/experimental/symbolic_shapes.py:327:9: warning[possibly-missing-attribute] Submodule `experimental` may not be available as an attribute on module `torch.fx` @@ -20255,6 +20246,15 @@ torch/nn/modules/flatten.py:48:9: error[unresolved-attribute] Cannot assign obje torch/nn/modules/flatten.py:49:9: error[unresolved-attribute] Cannot assign object of type `int` to attribute `end_dim` on type `Self@__init__` with custom `__setattr__` method. torch/nn/modules/flatten.py:127:9: error[unresolved-attribute] Cannot assign object of type `int | str` to attribute `dim` on type `Self@__init__` with custom `__setattr__` method. torch/nn/modules/flatten.py:128:9: error[unresolved-attribute] Cannot assign object of type `Unknown | list[int] | tuple[int, ...] | tuple[tuple[str, int]]` to attribute `unflattened_size` on type `Self@__init__` with custom `__setattr__` method. +torch/nn/modules/fold.py:143:9: error[unresolved-attribute] Cannot assign object of type `int | tuple[int, ...]` to attribute `output_size` on type `Self@__init__` with custom `__setattr__` method. +torch/nn/modules/fold.py:144:9: error[unresolved-attribute] Cannot assign object of type `int | tuple[int, ...]` to attribute `kernel_size` on type `Self@__init__` with custom `__setattr__` method. +torch/nn/modules/fold.py:145:9: error[unresolved-attribute] Cannot assign object of type `int | tuple[int, ...]` to attribute `dilation` on type `Self@__init__` with custom `__setattr__` method. +torch/nn/modules/fold.py:146:9: error[unresolved-attribute] Cannot assign object of type `int | tuple[int, ...]` to attribute `padding` on type `Self@__init__` with custom `__setattr__` method. +torch/nn/modules/fold.py:147:9: error[unresolved-attribute] Cannot assign object of type `int | tuple[int, ...]` to attribute `stride` on type `Self@__init__` with custom `__setattr__` method. +torch/nn/modules/fold.py:315:9: error[unresolved-attribute] Cannot assign object of type `int | tuple[int, ...]` to attribute `kernel_size` on type `Self@__init__` with custom `__setattr__` method. +torch/nn/modules/fold.py:316:9: error[unresolved-attribute] Cannot assign object of type `int | tuple[int, ...]` to attribute `dilation` on type `Self@__init__` with custom `__setattr__` method. +torch/nn/modules/fold.py:317:9: error[unresolved-attribute] Cannot assign object of type `int | tuple[int, ...]` to attribute `padding` on type `Self@__init__` with custom `__setattr__` method. +torch/nn/modules/fold.py:318:9: error[unresolved-attribute] Cannot assign object of type `int | tuple[int, ...]` to attribute `stride` on type `Self@__init__` with custom `__setattr__` method. torch/nn/modules/lazy.py:176:9: error[invalid-assignment] Cannot assign to read-only property `_load_hook` on object of type `_LazyProtocol`: Attempted assignment to `_LazyProtocol._load_hook` here torch/nn/modules/lazy.py:178:9: error[invalid-assignment] Cannot assign to read-only property `_initialize_hook` on object of type `_LazyProtocol`: Attempted assignment to `_LazyProtocol._initialize_hook` here torch/nn/modules/linear.py:106:9: error[unresolved-attribute] Cannot assign object of type `int` to attribute `in_features` on type `Self@__init__` with custom `__setattr__` method. @@ -20417,12 +20417,14 @@ torch/nn/modules/transformer.py:1071:72: error[invalid-argument-type] Argument t torch/nn/modules/transformer.py:1078:13: error[unresolved-attribute] Cannot assign object of type `(Tensor, /) -> Tensor` to attribute `activation` on type `Self@__init__` with custom `__setattr__` method. torch/nn/modules/transformer.py:1080:13: error[unresolved-attribute] Cannot assign object of type `((Tensor, /) -> Tensor) & ~str` to attribute `activation` on type `Self@__init__` with custom `__setattr__` method. torch/nn/modules/upsampling.py:161:9: error[unresolved-attribute] Cannot assign object of type `str` to attribute `name` on type `Self@__init__` with custom `__setattr__` method. -torch/nn/modules/upsampling.py:162:9: error[unresolved-attribute] Cannot assign object of type `@Todo | None` to attribute `size` on type `Self@__init__` with custom `__setattr__` method. +torch/nn/modules/upsampling.py:162:9: error[unresolved-attribute] Cannot assign object of type `int | tuple[int, ...] | None` to attribute `size` on type `Self@__init__` with custom `__setattr__` method. torch/nn/modules/upsampling.py:164:13: error[unresolved-attribute] Cannot assign object of type `tuple[float, ...]` to attribute `scale_factor` on type `Self@__init__` with custom `__setattr__` method. torch/nn/modules/upsampling.py:166:13: error[unresolved-attribute] Cannot assign object of type `float | None` to attribute `scale_factor` on type `Self@__init__` with custom `__setattr__` method. torch/nn/modules/upsampling.py:167:9: error[unresolved-attribute] Cannot assign object of type `str` to attribute `mode` on type `Self@__init__` with custom `__setattr__` method. torch/nn/modules/upsampling.py:168:9: error[unresolved-attribute] Cannot assign object of type `bool | None` to attribute `align_corners` on type `Self@__init__` with custom `__setattr__` method. torch/nn/modules/upsampling.py:169:9: error[unresolved-attribute] Cannot assign object of type `bool | None` to attribute `recompute_scale_factor` on type `Self@__init__` with custom `__setattr__` method. +torch/nn/modules/upsampling.py:177:13: error[invalid-argument-type] Argument to function `interpolate` is incorrect: Expected `int | None`, found `int | tuple[int, ...] | None` +torch/nn/modules/upsampling.py:178:13: error[invalid-argument-type] Argument to function `interpolate` is incorrect: Expected `list[int | float] | None`, found `int | float | tuple[int | float, ...] | None` torch/nn/modules/utils.py:72:21: error[unresolved-attribute] Object of type `object` has no attribute `keys` torch/nn/modules/utils.py:83:17: error[invalid-assignment] Cannot assign to a subscript on an object of type `object` torch/nn/modules/utils.py:83:48: error[unresolved-attribute] Object of type `object` has no attribute `pop` @@ -22284,8 +22286,6 @@ torch/optim/optimizer.py:219:55: error[unresolved-attribute] Module `torch` has torch/optim/optimizer.py:219:74: error[unresolved-attribute] Module `torch` has no member `float32` torch/optim/optimizer.py:227:45: error[unresolved-attribute] Module `torch._C` has no member `_get_privateuse1_backend_name` torch/optim/optimizer.py:381:9: error[unresolved-attribute] Module `torch._C` has no member `_log_api_usage_once` -torch/optim/optimizer.py:516:39: error[invalid-argument-type] Argument is incorrect: Expected `typing.Self`, found `Optimizer` -torch/optim/optimizer.py:534:31: error[invalid-argument-type] Argument is incorrect: Expected `typing.Self`, found `Optimizer` torch/optim/optimizer.py:546:20: error[unresolved-attribute] Module `torch` has no member `device` torch/optim/optimizer.py:546:34: error[unresolved-attribute] Module `torch` has no member `dtype` torch/optim/optimizer.py:792:39: error[unresolved-attribute] Module `torch` has no member `float32` @@ -23440,19 +23440,19 @@ torch/utils/_pytree.py:812:12: error[invalid-return-type] Return type does not m torch/utils/_pytree.py:865:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[list[tuple[KeyEntry, T@_ordereddict_flatten_with_keys]], Any]`, found `tuple[list[tuple[MappingKey[Unknown, Unknown], Unknown] | Unknown], Any]` torch/utils/_pytree.py:890:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[list[tuple[KeyEntry, T@_defaultdict_flatten_with_keys]], Any]`, found `tuple[list[tuple[MappingKey[Unknown, Unknown], Unknown] | Unknown], Any]` torch/utils/_pytree.py:949:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[list[tuple[KeyEntry, T@_deque_flatten_with_keys]], Any]`, found `tuple[list[tuple[SequenceKey[Unknown], T@_deque_flatten_with_keys] | Unknown], Any]` -torch/utils/_pytree.py:1012:34: error[invalid-assignment] Object of type `frozenset[type | Unknown | ((typename: str, field_names: Iterable[str], *, rename: bool = Literal[False], module: str | None = None, defaults: Iterable[Any] | None = None) -> type[tuple[Unknown, ...]])]` is not assignable to `frozenset[type]` -torch/utils/_pytree.py:1119:30: error[unresolved-attribute] Object of type `typing.Self` has no attribute `num_nodes` -torch/utils/_pytree.py:1120:31: error[unresolved-attribute] Object of type `typing.Self` has no attribute `num_leaves` +torch/utils/_pytree.py:1012:34: error[invalid-assignment] Object of type `frozenset[type | Unknown | ((typename: str, field_names: Iterable[str], *, rename: bool = Literal[False], module: str | None = None, defaults: Iterable[Any] | None = None) -> type[tuple[Any, ...]])]` is not assignable to `frozenset[type]` +torch/utils/_pytree.py:1119:30: error[unresolved-attribute] Special form `typing.Self` has no attribute `num_nodes` +torch/utils/_pytree.py:1120:31: error[unresolved-attribute] Special form `typing.Self` has no attribute `num_leaves` torch/utils/_pytree.py:1131:62: error[too-many-positional-arguments] Too many positional arguments to bound method `__repr__`: expected 1, got 2 torch/utils/_pytree.py:1135:58: error[too-many-positional-arguments] Too many positional arguments to bound method `__repr__`: expected 1, got 2 -torch/utils/_pytree.py:1167:16: error[invalid-return-type] Return type does not match returned value: expected `list[Self@children_specs]`, found `list[typing.Self]` -torch/utils/_pytree.py:1173:16: error[invalid-return-type] Return type does not match returned value: expected `list[Self@children]`, found `list[typing.Self]` -torch/utils/_pytree.py:1176:16: error[invalid-return-type] Return type does not match returned value: expected `Self@child`, found `typing.Self` -torch/utils/_pytree.py:1280:20: error[unresolved-attribute] Object of type `typing.Self` has no attribute `num_leaves` -torch/utils/_pytree.py:1281:34: error[unresolved-attribute] Object of type `typing.Self` has no attribute `unflatten` +torch/utils/_pytree.py:1167:16: error[invalid-return-type] Return type does not match returned value: expected `list[Self@children_specs]`, found `list[]` +torch/utils/_pytree.py:1173:16: error[invalid-return-type] Return type does not match returned value: expected `list[Self@children]`, found `list[]` +torch/utils/_pytree.py:1176:16: error[invalid-return-type] Return type does not match returned value: expected `Self@child`, found `` +torch/utils/_pytree.py:1280:20: error[unresolved-attribute] Special form `typing.Self` has no attribute `num_leaves` +torch/utils/_pytree.py:1281:34: error[unresolved-attribute] Special form `typing.Self` has no attribute `unflatten` torch/utils/_pytree.py:1341:18: warning[deprecated] The class `LeafSpec` is deprecated: `isinstance(treespec, LeafSpec)` is deprecated, use `isinstance(treespec, TreeSpec) and treespec.is_leaf()` instead. torch/utils/_pytree.py:1344:24: warning[deprecated] The class `LeafSpec` is deprecated: `isinstance(treespec, LeafSpec)` is deprecated, use `isinstance(treespec, TreeSpec) and treespec.is_leaf()` instead. -torch/utils/_pytree.py:1917:40: error[invalid-argument-type] Argument to function `_treespec_to_json` is incorrect: Expected `TreeSpec`, found `typing.Self` +torch/utils/_pytree.py:1917:40: error[invalid-argument-type] Argument to function `_treespec_to_json` is incorrect: Expected `TreeSpec`, found `` torch/utils/_stats.py:26:12: error[unresolved-attribute] Object of type `(...) -> _R@count` has no attribute `__qualname__` torch/utils/_stats.py:27:33: error[unresolved-attribute] Object of type `(...) -> _R@count` has no attribute `__qualname__` torch/utils/_stats.py:28:29: error[unresolved-attribute] Object of type `(...) -> _R@count` has no attribute `__qualname__` @@ -23523,7 +23523,7 @@ torch/utils/_sympy/printers.py:475:53: error[unresolved-attribute] Object of typ torch/utils/_sympy/printers.py:481:53: error[unresolved-attribute] Object of type `Expr` has no attribute `is_integer` torch/utils/_sympy/printers.py:487:53: error[unresolved-attribute] Object of type `Expr` has no attribute `is_integer` torch/utils/_sympy/printers.py:573:12: error[unresolved-attribute] Object of type `Basic` has no attribute `is_integer` -torch/utils/_sympy/printers.py:575:16: error[unsupported-operator] Operator `>=` is not supported for types `Basic` and `int`, in comparing `Basic` with `Literal[0]` +torch/utils/_sympy/printers.py:575:16: error[unsupported-operator] Operator `>=` is not supported between objects of type `Basic` and `Literal[0]` torch/utils/_sympy/printers.py:581:86: error[unsupported-operator] Unary operator `-` is unsupported for type `Basic` torch/utils/_sympy/reference.py:114:21: error[unresolved-attribute] Module `torch` has no member `float64` torch/utils/_sympy/reference.py:222:21: error[unresolved-attribute] Module `torch` has no member `int64` @@ -23811,6 +23811,7 @@ torch/utils/data/typing.ipynb:cell 10:2:27: error[invalid-return-type] Function torch/utils/data/typing.ipynb:cell 12:6:27: error[invalid-return-type] Function always implicitly returns `None`, which is not assignable to return type `Iterator[Unknown]` torch/utils/data/typing.ipynb:cell 12:10:27: error[invalid-return-type] Function always implicitly returns `None`, which is not assignable to return type `Iterator[T_co@__iter__]` torch/utils/data/typing.ipynb:cell 14:2:27: error[invalid-return-type] Function always implicitly returns `None`, which is not assignable to return type `Iterator[tuple[T_co@DP, str]]` +torch/utils/data/typing.ipynb:cell 14:8:9: error[invalid-method-override] Invalid override of method `__iter__`: Definition is incompatible with `IterDataPipe.__iter__` torch/utils/data/typing.ipynb:cell 14:8:27: error[invalid-return-type] Function always implicitly returns `None`, which is not assignable to return type `Iterator[tuple[int | str, str]]` torch/utils/data/typing.ipynb:cell 17:2:27: error[invalid-return-type] Function always implicitly returns `None`, which is not assignable to return type `Iterator[list[int]]` torch/utils/data/typing.ipynb:cell 18:2:27: error[invalid-return-type] Function always implicitly returns `None`, which is not assignable to return type `Iterator[Any]` @@ -23970,4 +23971,4 @@ torch/xpu/random.py:52:18: error[unresolved-attribute] Module `torch` has no mem torch/xpu/random.py:54:18: error[unresolved-attribute] Module `torch` has no member `device` torch/xpu/streams.py:14:14: error[unresolved-attribute] Module `torch._C` has no member `_XpuStreamBase` torch/xpu/streams.py:103:13: error[unresolved-attribute] Module `torch._C` has no member `_XpuEventBase` -Found 23800 diagnostics +Found 23801 diagnostics diff --git a/scripts/ty_benchmark/src/benchmark/projects.py b/scripts/ty_benchmark/src/benchmark/projects.py index 8675b69cd4..5e2ead0b3b 100644 --- a/scripts/ty_benchmark/src/benchmark/projects.py +++ b/scripts/ty_benchmark/src/benchmark/projects.py @@ -177,8 +177,8 @@ ALL: Final = [ Project( name="homeassistant", repository="https://github.com/home-assistant/core.git", - revision="10c12623bfc0b3a06ffaa88bf986f61818cfb8be", - python_version="3.13", + revision="7fd440c4a06777bc4cfd90a3c176ded80c87a8fd", + python_version="3.14", include=["homeassistant"], skip="Missing dependencies on Windows" if sys.platform == "win32" else None, install_arguments=[ diff --git a/scripts/ty_benchmark/src/benchmark/venv.py b/scripts/ty_benchmark/src/benchmark/venv.py index 07fb1d8b0f..b8c45e224b 100644 --- a/scripts/ty_benchmark/src/benchmark/venv.py +++ b/scripts/ty_benchmark/src/benchmark/venv.py @@ -73,7 +73,7 @@ class Venv: # our projects isn't unexpectedly broken by a change in the # annotations of one of that project's dependencies "--exclude-newer", - "2025-11-17T00:00:00Z", + "2025-12-06T00:00:00Z", "mypy", # We need to install mypy into the virtual environment or it fails to load plugins. *pip_install_args, ] diff --git a/scripts/ty_benchmark/uv.lock b/scripts/ty_benchmark/uv.lock index b6e4f9c209..7b344a684d 100644 --- a/scripts/ty_benchmark/uv.lock +++ b/scripts/ty_benchmark/uv.lock @@ -116,18 +116,18 @@ wheels = [ [[package]] name = "pyrefly" -version = "0.43.1" +version = "0.44.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/2c/f318536b85546b9aadb8e3e264e05401000a70fa88957c2bd0e6034b63ac/pyrefly-0.43.1.tar.gz", hash = "sha256:f97b09a45cbff445025f2581bd7bc20ff904baef19b97d134262e11f88fb154e", size = 3884459, upload-time = "2025-11-24T18:51:50.302Z" } +sdist = { url = "https://files.pythonhosted.org/packages/da/d8/b2ae5bdb24be6d81728a5de6b7bf10d2e84f9dcbdc29d084aca724f87262/pyrefly-0.44.1.tar.gz", hash = "sha256:9ec70988588f39c20bab25827ffb706f6b985acc43ec5f6bad6d3bc1f6881def", size = 3942165, upload-time = "2025-12-04T00:08:04.103Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/93/1d075912889258410e58fe774e22d2661acba8920e223466c333c7aad889/pyrefly-0.43.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e60ada6bd3eb203e72457f3613d35e9997db1b378298c851301cfe84b58c3be9", size = 9790079, upload-time = "2025-11-24T18:51:32.751Z" }, - { url = "https://files.pythonhosted.org/packages/fc/c2/c235e5d24f3a12ece2102c7cfc68fce1ad8c89cedc23bfb1eb60421e0e31/pyrefly-0.43.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:488b5b77ab8c0998fe9fa48a0ac8c443b13a57a40ba2d998bf29296b5c674cab", size = 9396136, upload-time = "2025-11-24T18:51:35.152Z" }, - { url = "https://files.pythonhosted.org/packages/13/ef/658c8dfd1b2f32637a05bc99bfec32e130bcd948b72e9643661217615d16/pyrefly-0.43.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e2af14499acce4382aec72d36fcf2807bf667f839bc528bacac83b75106643f", size = 9633606, upload-time = "2025-11-24T18:51:37.353Z" }, - { url = "https://files.pythonhosted.org/packages/d9/bc/3ad135f312106787d1c6951f93bac45cc9afeb6709458a90254794050a4b/pyrefly-0.43.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5cad0ffbed68e99cd072a8bbe1faa30a4a26efa485775e2a9d0e5426a84ef19f", size = 10483447, upload-time = "2025-11-24T18:51:39.441Z" }, - { url = "https://files.pythonhosted.org/packages/45/5c/6c2e6585f27eb57157141e2dd70087b7c9bc60ec3309ad1127d2f5ff1806/pyrefly-0.43.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc79bdb599b377178457950c5cc4a61dfb82d8ab388758d1958accddfcef7f6b", size = 10087696, upload-time = "2025-11-24T18:51:41.763Z" }, - { url = "https://files.pythonhosted.org/packages/b7/d6/a0c4c33b238e52bce0f10d795dfb03e42498d67a68787baa4e8a394283c6/pyrefly-0.43.1-py3-none-win32.whl", hash = "sha256:e7253b185bb5e5149fb0698f909ccfe7f95d128fbc52fadada0ed539991bcc60", size = 9572615, upload-time = "2025-11-24T18:51:43.929Z" }, - { url = "https://files.pythonhosted.org/packages/a4/e2/fb48a560f15acc597e680f95744e988211f662ff68455f92b0e19fb8b23b/pyrefly-0.43.1-py3-none-win_amd64.whl", hash = "sha256:8befa8a7d529db11ed075e1cfec3e30607dffea4a6e4c7622cce50fcec2467cf", size = 10195087, upload-time = "2025-11-24T18:51:45.953Z" }, - { url = "https://files.pythonhosted.org/packages/e5/e7/18815ed07edbabc104d28e0fd3fae542c83e90ace322b85ef2f8e5a79feb/pyrefly-0.43.1-py3-none-win_arm64.whl", hash = "sha256:8359bb854f5a238c364346836291947ef084516329a50bb400fddf0dd8a9b461", size = 9799746, upload-time = "2025-11-24T18:51:47.958Z" }, + { url = "https://files.pythonhosted.org/packages/de/ed/87c2ecbf796dd8868db889e02f4bf7cd3e41c53ef7dbbf9a0803a093fbba/pyrefly-0.44.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:99e2e5d388eeeecf51c30d430563f04e40a5fc5352f3dab82a8f85aca1af2318", size = 9977353, upload-time = "2025-12-04T00:07:40.433Z" }, + { url = "https://files.pythonhosted.org/packages/0b/df/1923f02370b92d84ccc2634342f2c9635e6c5a4ff53d81fc0e1540a47753/pyrefly-0.44.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:89c9d503b040613da2a8ae7044c6530a1d8b8c6dbb13465617e1adb2c99b2e31", size = 9565577, upload-time = "2025-12-04T00:07:43.133Z" }, + { url = "https://files.pythonhosted.org/packages/08/8a/26e95330ba127d642a11026f5e926ba84daaa1f4930c6c546c57d6aa3aa5/pyrefly-0.44.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64969d6b44018f70670b416d74c56d80b949933f2651c0673a89359a6816bdde", size = 9813767, upload-time = "2025-12-04T00:07:45.788Z" }, + { url = "https://files.pythonhosted.org/packages/73/c4/79625096a3fa4f3a2c043df4fdb842b65e37f5ff4df741229b9b7bcc4117/pyrefly-0.44.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82a90514f452912c5013162e0d00c5d3eac1265e77be69dd47a73530eced1cdc", size = 10654009, upload-time = "2025-12-04T00:07:49.43Z" }, + { url = "https://files.pythonhosted.org/packages/0c/b7/45c60666403606274715cc6c5e6112ca3f1377af7d23b1495f0ba24c4748/pyrefly-0.44.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30b4fa577509f927cbcb2f7ad092307ca5a91bc137d74679671e1a6e4fb6f629", size = 10293339, upload-time = "2025-12-04T00:07:52.548Z" }, + { url = "https://files.pythonhosted.org/packages/26/6d/aa934774460a9f7ac8f4dbf0423e058901589d8afe3ad4dd1e1ae8eadab0/pyrefly-0.44.1-py3-none-win32.whl", hash = "sha256:d77d7b7f7df7edf40dfca16cc6e2de17ac5c377ba558c9b350d10484a807b04b", size = 9717767, upload-time = "2025-12-04T00:07:55.586Z" }, + { url = "https://files.pythonhosted.org/packages/47/4f/7705110ae44d42b0f006745c9f432a19090d2002daf25f5f356608b1112e/pyrefly-0.44.1-py3-none-win_amd64.whl", hash = "sha256:7c0ca181400fdd382b4eb24ade6a6f6787c513566b77acb8f79750f80e80133b", size = 10371240, upload-time = "2025-12-04T00:07:58.823Z" }, + { url = "https://files.pythonhosted.org/packages/88/ff/b3e20628f6477489a366f6ff98d0ec6c74de643913c58c82eb4d73b1ef1a/pyrefly-0.44.1-py3-none-win_arm64.whl", hash = "sha256:5e8cc66acd173e2612361c03ef7b45d7245c04b09cbd24042b27c6081f6cd809", size = 9946460, upload-time = "2025-12-04T00:08:01.8Z" }, ] [[package]] From b6231895602b57b289d0bce732df9b7aed0e70ba Mon Sep 17 00:00:00 2001 From: Dhruv Manilawala Date: Fri, 5 Dec 2025 22:00:06 +0530 Subject: [PATCH 28/65] [ty] Complete support for `ParamSpec` (#21445) ## Summary Closes: https://github.com/astral-sh/ty/issues/157 This PR adds support for the following capabilities involving a `ParamSpec` type variable: - Representing `P.args` and `P.kwargs` in the type system - Matching against a callable containing `P` to create a type mapping - Specializing `P` against the stored parameters The value of a `ParamSpec` type variable is being represented using `CallableType` with a `CallableTypeKind::ParamSpecValue` variant. This `CallableTypeKind` is expanded from the existing `is_function_like` boolean flag. An `enum` is used as these variants are mutually exclusive. For context, an initial iteration made an attempt to expand the `Specialization` to use `TypeOrParameters` enum that represents that a type variable can specialize into either a `Type` or `Parameters` but that increased the complexity of the code as all downstream usages would need to handle both the variants appropriately. Additionally, we'd have also need to establish an invariant that a regular type variable always maps to a `Type` while a paramspec type variable always maps to a `Parameters`. I've intentionally left out checking and raising diagnostics when the `ParamSpec` type variable and it's components are not being used correctly to avoid scope increase and it can easily be done as a follow-up. This would also include the scoping rules which I don't think a regular type variable implements either. ## Test Plan Add new mdtest cases and update existing test cases. Ran this branch on pyx, no new diagnostics. ### Ecosystem analysis There's a case where in an annotated assignment like: ```py type CustomType[P] = Callable[...] def value[**P](...): ... def another[**P](...): target: CustomType[P] = value ``` The type of `value` is a callable and it has a paramspec that's bound to `value`, `CustomType` is a type alias that's a callable and `P` that's used in it's specialization is bound to `another`. Now, ty infers the type of `target` same as `value` and does not use the declared type `CustomType[P]`. [This is the assignment](https://github.com/mikeshardmind/async-utils/blob/0980b9d9ab2bc7a24777684a884f4ea96cbbe5f9/src/async_utils/gen_transform.py#L108) that I'm referring to which then leads to error in downstream usage. Pyright and mypy does seem to use the declared type. There are multiple diagnostics in `dd-trace-py` that requires support for `cls`. I'm seeing `Divergent` type for an example like which ~~I'm not sure why, I'll look into it tomorrow~~ is because of a cycle as mentioned in https://github.com/astral-sh/ty/issues/1729#issuecomment-3612279974: ```py from typing import Callable def decorator[**P](c: Callable[P, int]) -> Callable[P, str]: ... @decorator def func(a: int) -> int: ... # ((a: int) -> str) | ((a: Divergent) -> str) reveal_type(func) ``` I ~~need to look into why are the parameters not being specialized through multiple decorators in the following code~~ think this is also because of the cycle mentioned in https://github.com/astral-sh/ty/issues/1729#issuecomment-3612279974 and the fact that we don't support `staticmethod` properly: ```py from contextlib import contextmanager class Foo: @staticmethod @contextmanager def method(x: int): yield foo = Foo() # ty: Revealed type: `() -> _GeneratorContextManager[Unknown, None, None]` [revealed-type] reveal_type(foo.method) ``` There's some issue related to `Protocol` that are generic over a `ParamSpec` in `starlette` which might be related to https://github.com/astral-sh/ty/issues/1635 but I'm not sure. Here's a minimal example to reproduce:
Code snippet:

```py from collections.abc import Awaitable, Callable, MutableMapping from typing import Any, Callable, ParamSpec, Protocol P = ParamSpec("P") Scope = MutableMapping[str, Any] Message = MutableMapping[str, Any] Receive = Callable[[], Awaitable[Message]] Send = Callable[[Message], Awaitable[None]] ASGIApp = Callable[[Scope, Receive, Send], Awaitable[None]] _Scope = Any _Receive = Callable[[], Awaitable[Any]] _Send = Callable[[Any], Awaitable[None]] # Since `starlette.types.ASGIApp` type differs from `ASGIApplication` from `asgiref` # we need to define a more permissive version of ASGIApp that doesn't cause type errors. _ASGIApp = Callable[[_Scope, _Receive, _Send], Awaitable[None]] class _MiddlewareFactory(Protocol[P]): def __call__( self, app: _ASGIApp, *args: P.args, **kwargs: P.kwargs ) -> _ASGIApp: ... class Middleware: def __init__( self, factory: _MiddlewareFactory[P], *args: P.args, **kwargs: P.kwargs ) -> None: self.factory = factory self.args = args self.kwargs = kwargs class ServerErrorMiddleware: def __init__( self, app: ASGIApp, value: int | None = None, flag: bool = False, ) -> None: self.app = app self.value = value self.flag = flag async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None: ... # ty: Argument to bound method `__init__` is incorrect: Expected `_MiddlewareFactory[(...)]`, found `` [invalid-argument-type] Middleware(ServerErrorMiddleware, value=500, flag=True) ```

### Conformance analysis > ```diff > -constructors_callable.py:36:13: info[revealed-type] Revealed type: `(...) -> Unknown` > +constructors_callable.py:36:13: info[revealed-type] Revealed type: `(x: int) -> Unknown` > ``` Requires return type inference i.e., https://github.com/astral-sh/ruff/pull/21551 > ```diff > +constructors_callable.py:194:16: error[invalid-argument-type] Argument is incorrect: Expected `list[T@__init__]`, found `list[Unknown | str]` > +constructors_callable.py:194:22: error[invalid-argument-type] Argument is incorrect: Expected `list[T@__init__]`, found `list[Unknown | str]` > +constructors_callable.py:195:4: error[invalid-argument-type] Argument is incorrect: Expected `list[T@__init__]`, found `list[Unknown | int]` > +constructors_callable.py:195:9: error[invalid-argument-type] Argument is incorrect: Expected `list[T@__init__]`, found `list[Unknown | str]` > ``` I might need to look into why this is happening... > ```diff > +generics_defaults.py:79:1: error[type-assertion-failure] Type `type[Class_ParamSpec[(str, int, /)]]` does not match asserted type `` > ``` which is on the following code ```py DefaultP = ParamSpec("DefaultP", default=[str, int]) class Class_ParamSpec(Generic[DefaultP]): ... assert_type(Class_ParamSpec, type[Class_ParamSpec[str, int]]) ``` It's occurring because there's no equivalence relationship defined between `ClassLiteral` and `KnownInstanceType::TypeGenericAlias` which is what these types are. Everything else looks good to me! --- crates/ty_ide/src/hover.rs | 16 +- .../resources/mdtest/annotations/callable.md | 11 +- .../annotations/unsupported_special_forms.md | 8 +- .../mdtest/generics/legacy/paramspec.md | 268 ++++++++ .../mdtest/generics/pep695/aliases.md | 8 +- .../mdtest/generics/pep695/classes.md | 8 +- .../mdtest/generics/pep695/paramspec.md | 585 ++++++++++++++++++ .../resources/mdtest/implicit_type_aliases.md | 13 +- .../type_properties/is_assignable_to.md | 32 + .../resources/mdtest/with/async.md | 2 +- crates/ty_python_semantic/src/types.rs | 347 +++++++++-- .../src/types/call/arguments.rs | 8 + .../ty_python_semantic/src/types/call/bind.rs | 388 +++++++++--- crates/ty_python_semantic/src/types/class.rs | 44 +- .../ty_python_semantic/src/types/display.rs | 222 ++++--- .../ty_python_semantic/src/types/function.rs | 6 +- .../ty_python_semantic/src/types/generics.rs | 96 ++- .../src/types/infer/builder.rs | 440 +++++++++---- .../infer/builder/annotation_expression.rs | 16 +- .../types/infer/builder/type_expression.rs | 43 +- .../src/types/protocol_class.rs | 8 +- .../src/types/signatures.rs | 280 ++++++++- 22 files changed, 2410 insertions(+), 439 deletions(-) diff --git a/crates/ty_ide/src/hover.rs b/crates/ty_ide/src/hover.rs index 63b67bc864..8f9add508a 100644 --- a/crates/ty_ide/src/hover.rs +++ b/crates/ty_ide/src/hover.rs @@ -2143,15 +2143,13 @@ def function(): "#, ); + // TODO: This should just be `**AB@Alias2 ()` + // https://github.com/astral-sh/ty/issues/1581 assert_snapshot!(test.hover(), @r" - ( - ... - ) -> tuple[typing.ParamSpec] + (**AB@Alias2) -> tuple[AB@Alias2] --------------------------------------------- ```python - ( - ... - ) -> tuple[typing.ParamSpec] + (**AB@Alias2) -> tuple[AB@Alias2] ``` --------------------------------------------- info[hover]: Hovered content is @@ -2292,12 +2290,12 @@ def function(): "#, ); - // TODO: This should be `P@Alias ()` + // TODO: Should this be constravariant instead? assert_snapshot!(test.hover(), @r" - typing.ParamSpec + P@Alias (bivariant) --------------------------------------------- ```python - typing.ParamSpec + P@Alias (bivariant) ``` --------------------------------------------- info[hover]: Hovered content is diff --git a/crates/ty_python_semantic/resources/mdtest/annotations/callable.md b/crates/ty_python_semantic/resources/mdtest/annotations/callable.md index e7e55f7a44..728566d30e 100644 --- a/crates/ty_python_semantic/resources/mdtest/annotations/callable.md +++ b/crates/ty_python_semantic/resources/mdtest/annotations/callable.md @@ -307,12 +307,10 @@ Using a `ParamSpec` in a `Callable` annotation: from typing_extensions import Callable def _[**P1](c: Callable[P1, int]): - # TODO: Should reveal `ParamSpecArgs` and `ParamSpecKwargs` - reveal_type(P1.args) # revealed: @Todo(ParamSpecArgs / ParamSpecKwargs) - reveal_type(P1.kwargs) # revealed: @Todo(ParamSpecArgs / ParamSpecKwargs) + reveal_type(P1.args) # revealed: P1@_.args + reveal_type(P1.kwargs) # revealed: P1@_.kwargs - # TODO: Signature should be (**P1) -> int - reveal_type(c) # revealed: (...) -> int + reveal_type(c) # revealed: (**P1@_) -> int ``` And, using the legacy syntax: @@ -322,9 +320,8 @@ from typing_extensions import ParamSpec P2 = ParamSpec("P2") -# TODO: argument list should not be `...` (requires `ParamSpec` support) def _(c: Callable[P2, int]): - reveal_type(c) # revealed: (...) -> int + reveal_type(c) # revealed: (**P2@_) -> int ``` ## Using `typing.Unpack` diff --git a/crates/ty_python_semantic/resources/mdtest/annotations/unsupported_special_forms.md b/crates/ty_python_semantic/resources/mdtest/annotations/unsupported_special_forms.md index cfc485cb53..18ebd03682 100644 --- a/crates/ty_python_semantic/resources/mdtest/annotations/unsupported_special_forms.md +++ b/crates/ty_python_semantic/resources/mdtest/annotations/unsupported_special_forms.md @@ -18,9 +18,8 @@ def f(*args: Unpack[Ts]) -> tuple[Unpack[Ts]]: def g() -> TypeGuard[int]: ... def i(callback: Callable[Concatenate[int, P], R_co], *args: P.args, **kwargs: P.kwargs) -> R_co: - # TODO: Should reveal a type representing `P.args` and `P.kwargs` - reveal_type(args) # revealed: tuple[@Todo(ParamSpecArgs / ParamSpecKwargs), ...] - reveal_type(kwargs) # revealed: dict[str, @Todo(ParamSpecArgs / ParamSpecKwargs)] + reveal_type(args) # revealed: P@i.args + reveal_type(kwargs) # revealed: P@i.kwargs return callback(42, *args, **kwargs) class Foo: @@ -65,8 +64,9 @@ def _( reveal_type(c) # revealed: Unknown reveal_type(d) # revealed: Unknown + # error: [invalid-type-form] "Variable of type `ParamSpec` is not allowed in a type expression" def foo(a_: e) -> None: - reveal_type(a_) # revealed: @Todo(Support for `typing.ParamSpec`) + reveal_type(a_) # revealed: Unknown ``` ## Inheritance diff --git a/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md b/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md index 2ce9f14852..c4764c3886 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md @@ -115,3 +115,271 @@ P = ParamSpec("P", default=[A, B]) class A: ... class B: ... ``` + +## Validating `ParamSpec` usage + +In type annotations, `ParamSpec` is only valid as the first element to `Callable`, the final element +to `Concatenate`, or as a type parameter to `Protocol` or `Generic`. + +```py +from typing import ParamSpec, Callable, Concatenate, Protocol, Generic + +P = ParamSpec("P") + +class ValidProtocol(Protocol[P]): + def method(self, c: Callable[P, int]) -> None: ... + +class ValidGeneric(Generic[P]): + def method(self, c: Callable[P, int]) -> None: ... + +def valid( + a1: Callable[P, int], + a2: Callable[Concatenate[int, P], int], +) -> None: ... +def invalid( + # TODO: error + a1: P, + # TODO: error + a2: list[P], + # TODO: error + a3: Callable[[P], int], + # TODO: error + a4: Callable[..., P], + # TODO: error + a5: Callable[Concatenate[P, ...], int], +) -> None: ... +``` + +## Validating `P.args` and `P.kwargs` usage + +The components of `ParamSpec` i.e., `P.args` and `P.kwargs` are only valid when used as the +annotated types of `*args` and `**kwargs` respectively. + +```py +from typing import Generic, Callable, ParamSpec + +P = ParamSpec("P") + +def foo1(c: Callable[P, int]) -> None: + def nested1(*args: P.args, **kwargs: P.kwargs) -> None: ... + def nested2( + # error: [invalid-type-form] "`P.kwargs` is valid only in `**kwargs` annotation: Did you mean `P.args`?" + *args: P.kwargs, + # error: [invalid-type-form] "`P.args` is valid only in `*args` annotation: Did you mean `P.kwargs`?" + **kwargs: P.args, + ) -> None: ... + + # TODO: error + def nested3(*args: P.args) -> None: ... + + # TODO: error + def nested4(**kwargs: P.kwargs) -> None: ... + + # TODO: error + def nested5(*args: P.args, x: int, **kwargs: P.kwargs) -> None: ... + +# TODO: error +def bar1(*args: P.args, **kwargs: P.kwargs) -> None: + pass + +class Foo1: + # TODO: error + def method(self, *args: P.args, **kwargs: P.kwargs) -> None: ... +``` + +And, they need to be used together. + +```py +def foo2(c: Callable[P, int]) -> None: + # TODO: error + def nested1(*args: P.args) -> None: ... + + # TODO: error + def nested2(**kwargs: P.kwargs) -> None: ... + +class Foo2: + # TODO: error + args: P.args + + # TODO: error + kwargs: P.kwargs +``` + +The name of these parameters does not need to be `args` or `kwargs`, it's the annotated type to the +respective variadic parameter that matters. + +```py +class Foo3(Generic[P]): + def method1(self, *paramspec_args: P.args, **paramspec_kwargs: P.kwargs) -> None: ... + def method2( + self, + # error: [invalid-type-form] "`P.kwargs` is valid only in `**kwargs` annotation: Did you mean `P.args`?" + *paramspec_args: P.kwargs, + # error: [invalid-type-form] "`P.args` is valid only in `*args` annotation: Did you mean `P.kwargs`?" + **paramspec_kwargs: P.args, + ) -> None: ... +``` + +## Specializing generic classes explicitly + +```py +from typing import Any, Generic, ParamSpec, Callable, TypeVar + +P1 = ParamSpec("P1") +P2 = ParamSpec("P2") +T1 = TypeVar("T1") + +class OnlyParamSpec(Generic[P1]): + attr: Callable[P1, None] + +class TwoParamSpec(Generic[P1, P2]): + attr1: Callable[P1, None] + attr2: Callable[P2, None] + +class TypeVarAndParamSpec(Generic[T1, P1]): + attr: Callable[P1, T1] +``` + +Explicit specialization of a generic class involving `ParamSpec` is done by providing either a list +of types, `...`, or another in-scope `ParamSpec`. + +```py +reveal_type(OnlyParamSpec[[int, str]]().attr) # revealed: (int, str, /) -> None +reveal_type(OnlyParamSpec[...]().attr) # revealed: (...) -> None + +def func(c: Callable[P2, None]): + reveal_type(OnlyParamSpec[P2]().attr) # revealed: (**P2@func) -> None + +# TODO: error: paramspec is unbound +reveal_type(OnlyParamSpec[P2]().attr) # revealed: (...) -> None +``` + +The square brackets can be omitted when `ParamSpec` is the only type variable + +```py +reveal_type(OnlyParamSpec[int, str]().attr) # revealed: (int, str, /) -> None +reveal_type(OnlyParamSpec[int,]().attr) # revealed: (int, /) -> None + +# Even when there is only one element +reveal_type(OnlyParamSpec[Any]().attr) # revealed: (Any, /) -> None +reveal_type(OnlyParamSpec[object]().attr) # revealed: (object, /) -> None +reveal_type(OnlyParamSpec[int]().attr) # revealed: (int, /) -> None +``` + +But, they cannot be omitted when there are multiple type variables. + +```py +reveal_type(TypeVarAndParamSpec[int, [int, str]]().attr) # revealed: (int, str, /) -> int +reveal_type(TypeVarAndParamSpec[int, [str]]().attr) # revealed: (str, /) -> int +reveal_type(TypeVarAndParamSpec[int, ...]().attr) # revealed: (...) -> int + +# TODO: We could still specialize for `T1` as the type is valid which would reveal `(...) -> int` +# TODO: error: paramspec is unbound +reveal_type(TypeVarAndParamSpec[int, P2]().attr) # revealed: (...) -> Unknown +# error: [invalid-type-arguments] "Type argument for `ParamSpec` must be either a list of types, `ParamSpec`, `Concatenate`, or `...`" +reveal_type(TypeVarAndParamSpec[int, int]().attr) # revealed: (...) -> Unknown +``` + +Nor can they be omitted when there are more than one `ParamSpec`s. + +```py +p = TwoParamSpec[[int, str], [int]]() +reveal_type(p.attr1) # revealed: (int, str, /) -> None +reveal_type(p.attr2) # revealed: (int, /) -> None + +# error: [invalid-type-arguments] +# error: [invalid-type-arguments] +TwoParamSpec[int, str] +``` + +Specializing `ParamSpec` type variable using `typing.Any` isn't explicitly allowed by the spec but +both mypy and Pyright allow this and there are usages of this in the wild e.g., +`staticmethod[Any, Any]`. + +```py +reveal_type(TypeVarAndParamSpec[int, Any]().attr) # revealed: (...) -> int +``` + +## Specialization when defaults are involved + +```toml +[environment] +python-version = "3.13" +``` + +```py +from typing import Any, Generic, ParamSpec, Callable, TypeVar + +P = ParamSpec("P") +PList = ParamSpec("PList", default=[int, str]) +PEllipsis = ParamSpec("PEllipsis", default=...) +PAnother = ParamSpec("PAnother", default=P) +PAnotherWithDefault = ParamSpec("PAnotherWithDefault", default=PList) +``` + +```py +class ParamSpecWithDefault1(Generic[PList]): + attr: Callable[PList, None] + +reveal_type(ParamSpecWithDefault1().attr) # revealed: (int, str, /) -> None +reveal_type(ParamSpecWithDefault1[[int]]().attr) # revealed: (int, /) -> None +``` + +```py +class ParamSpecWithDefault2(Generic[PEllipsis]): + attr: Callable[PEllipsis, None] + +reveal_type(ParamSpecWithDefault2().attr) # revealed: (...) -> None +reveal_type(ParamSpecWithDefault2[[int, str]]().attr) # revealed: (int, str, /) -> None +``` + +```py +class ParamSpecWithDefault3(Generic[P, PAnother]): + attr1: Callable[P, None] + attr2: Callable[PAnother, None] + +# `P` hasn't been specialized, so it defaults to `Unknown` gradual form +p1 = ParamSpecWithDefault3() +reveal_type(p1.attr1) # revealed: (...) -> None +reveal_type(p1.attr2) # revealed: (...) -> None + +p2 = ParamSpecWithDefault3[[int, str]]() +reveal_type(p2.attr1) # revealed: (int, str, /) -> None +reveal_type(p2.attr2) # revealed: (int, str, /) -> None + +p3 = ParamSpecWithDefault3[[int], [str]]() +reveal_type(p3.attr1) # revealed: (int, /) -> None +reveal_type(p3.attr2) # revealed: (str, /) -> None + +class ParamSpecWithDefault4(Generic[PList, PAnotherWithDefault]): + attr1: Callable[PList, None] + attr2: Callable[PAnotherWithDefault, None] + +p1 = ParamSpecWithDefault4() +reveal_type(p1.attr1) # revealed: (int, str, /) -> None +reveal_type(p1.attr2) # revealed: (int, str, /) -> None + +p2 = ParamSpecWithDefault4[[int]]() +reveal_type(p2.attr1) # revealed: (int, /) -> None +reveal_type(p2.attr2) # revealed: (int, /) -> None + +p3 = ParamSpecWithDefault4[[int], [str]]() +reveal_type(p3.attr1) # revealed: (int, /) -> None +reveal_type(p3.attr2) # revealed: (str, /) -> None + +# TODO: error +# Un-ordered type variables as the default of `PAnother` is `P` +class ParamSpecWithDefault5(Generic[PAnother, P]): + attr: Callable[PAnother, None] + +# TODO: error +# PAnother has default as P (another ParamSpec) which is not in scope +class ParamSpecWithDefault6(Generic[PAnother]): + attr: Callable[PAnother, None] +``` + +## Semantics + +The semantics of `ParamSpec` are described in +[the PEP 695 `ParamSpec` document](./../pep695/paramspec.md) to avoid duplication unless there are +any behavior specific to the legacy `ParamSpec` implementation. diff --git a/crates/ty_python_semantic/resources/mdtest/generics/pep695/aliases.md b/crates/ty_python_semantic/resources/mdtest/generics/pep695/aliases.md index e10febeaeb..490ae01fc6 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/pep695/aliases.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/pep695/aliases.md @@ -25,11 +25,11 @@ reveal_type(generic_context(SingleTypevar)) # revealed: ty_extensions.GenericContext[T@MultipleTypevars, S@MultipleTypevars] reveal_type(generic_context(MultipleTypevars)) -# TODO: support `ParamSpec`/`TypeVarTuple` properly -# (these should include the `ParamSpec`s and `TypeVarTuple`s in their generic contexts) -# revealed: ty_extensions.GenericContext[] +# TODO: support `TypeVarTuple` properly +# (these should include the `TypeVarTuple`s in their generic contexts) +# revealed: ty_extensions.GenericContext[P@SingleParamSpec] reveal_type(generic_context(SingleParamSpec)) -# revealed: ty_extensions.GenericContext[T@TypeVarAndParamSpec] +# revealed: ty_extensions.GenericContext[T@TypeVarAndParamSpec, P@TypeVarAndParamSpec] reveal_type(generic_context(TypeVarAndParamSpec)) # revealed: ty_extensions.GenericContext[] reveal_type(generic_context(SingleTypeVarTuple)) diff --git a/crates/ty_python_semantic/resources/mdtest/generics/pep695/classes.md b/crates/ty_python_semantic/resources/mdtest/generics/pep695/classes.md index dbb249b45e..71e05171e8 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/pep695/classes.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/pep695/classes.md @@ -25,11 +25,11 @@ reveal_type(generic_context(SingleTypevar)) # revealed: ty_extensions.GenericContext[T@MultipleTypevars, S@MultipleTypevars] reveal_type(generic_context(MultipleTypevars)) -# TODO: support `ParamSpec`/`TypeVarTuple` properly -# (these should include the `ParamSpec`s and `TypeVarTuple`s in their generic contexts) -# revealed: ty_extensions.GenericContext[] +# TODO: support `TypeVarTuple` properly +# (these should include the `TypeVarTuple`s in their generic contexts) +# revealed: ty_extensions.GenericContext[P@SingleParamSpec] reveal_type(generic_context(SingleParamSpec)) -# revealed: ty_extensions.GenericContext[T@TypeVarAndParamSpec] +# revealed: ty_extensions.GenericContext[T@TypeVarAndParamSpec, P@TypeVarAndParamSpec] reveal_type(generic_context(TypeVarAndParamSpec)) # revealed: ty_extensions.GenericContext[] reveal_type(generic_context(SingleTypeVarTuple)) diff --git a/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md b/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md index 62b50b05ef..6483428bb3 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md @@ -62,3 +62,588 @@ Other values are invalid. def foo[**P = int]() -> None: pass ``` + +## Validating `ParamSpec` usage + +`ParamSpec` is only valid as the first element to `Callable` or the final element to `Concatenate`. + +```py +from typing import ParamSpec, Callable, Concatenate + +def valid[**P]( + a1: Callable[P, int], + a2: Callable[Concatenate[int, P], int], +) -> None: ... +def invalid[**P]( + # TODO: error + a1: P, + # TODO: error + a2: list[P], + # TODO: error + a3: Callable[[P], int], + # TODO: error + a4: Callable[..., P], + # TODO: error + a5: Callable[Concatenate[P, ...], int], +) -> None: ... +``` + +## Validating `P.args` and `P.kwargs` usage + +The components of `ParamSpec` i.e., `P.args` and `P.kwargs` are only valid when used as the +annotated types of `*args` and `**kwargs` respectively. + +```py +from typing import Callable + +def foo[**P](c: Callable[P, int]) -> None: + def nested1(*args: P.args, **kwargs: P.kwargs) -> None: ... + + # error: [invalid-type-form] "`P.kwargs` is valid only in `**kwargs` annotation: Did you mean `P.args`?" + # error: [invalid-type-form] "`P.args` is valid only in `*args` annotation: Did you mean `P.kwargs`?" + def nested2(*args: P.kwargs, **kwargs: P.args) -> None: ... + + # TODO: error + def nested3(*args: P.args) -> None: ... + + # TODO: error + def nested4(**kwargs: P.kwargs) -> None: ... + + # TODO: error + def nested5(*args: P.args, x: int, **kwargs: P.kwargs) -> None: ... +``` + +And, they need to be used together. + +```py +def foo[**P](c: Callable[P, int]) -> None: + # TODO: error + def nested1(*args: P.args) -> None: ... + + # TODO: error + def nested2(**kwargs: P.kwargs) -> None: ... + +class Foo[**P]: + # TODO: error + args: P.args + + # TODO: error + kwargs: P.kwargs +``` + +The name of these parameters does not need to be `args` or `kwargs`, it's the annotated type to the +respective variadic parameter that matters. + +```py +class Foo3[**P]: + def method1(self, *paramspec_args: P.args, **paramspec_kwargs: P.kwargs) -> None: ... + def method2( + self, + # error: [invalid-type-form] "`P.kwargs` is valid only in `**kwargs` annotation: Did you mean `P.args`?" + *paramspec_args: P.kwargs, + # error: [invalid-type-form] "`P.args` is valid only in `*args` annotation: Did you mean `P.kwargs`?" + **paramspec_kwargs: P.args, + ) -> None: ... +``` + +It isn't allowed to annotate an instance attribute either: + +```py +class Foo4[**P]: + def __init__(self, fn: Callable[P, int], *args: P.args, **kwargs: P.kwargs) -> None: + self.fn = fn + # TODO: error + self.args: P.args = args + # TODO: error + self.kwargs: P.kwargs = kwargs +``` + +## Semantics of `P.args` and `P.kwargs` + +The type of `args` and `kwargs` inside the function is `P.args` and `P.kwargs` respectively instead +of `tuple[P.args, ...]` and `dict[str, P.kwargs]`. + +### Passing `*args` and `**kwargs` to a callable + +```py +from typing import Callable + +def f[**P](func: Callable[P, int]) -> Callable[P, None]: + def wrapper(*args: P.args, **kwargs: P.kwargs) -> None: + reveal_type(args) # revealed: P@f.args + reveal_type(kwargs) # revealed: P@f.kwargs + reveal_type(func(*args, **kwargs)) # revealed: int + + # error: [invalid-argument-type] "Argument is incorrect: Expected `P@f.args`, found `P@f.kwargs`" + # error: [invalid-argument-type] "Argument is incorrect: Expected `P@f.kwargs`, found `P@f.args`" + reveal_type(func(*kwargs, **args)) # revealed: int + + # error: [invalid-argument-type] "Argument is incorrect: Expected `P@f.args`, found `P@f.kwargs`" + reveal_type(func(args, kwargs)) # revealed: int + + # Both parameters are required + # TODO: error + reveal_type(func()) # revealed: int + reveal_type(func(*args)) # revealed: int + reveal_type(func(**kwargs)) # revealed: int + return wrapper +``` + +### Operations on `P.args` and `P.kwargs` + +The type of `P.args` and `P.kwargs` behave like a `tuple` and `dict` respectively. Internally, they +are represented as a type variable that has an upper bound of `tuple[object, ...]` and +`Top[dict[str, Any]]` respectively. + +```py +from typing import Callable, Any + +def f[**P](func: Callable[P, int], *args: P.args, **kwargs: P.kwargs) -> None: + reveal_type(args + ("extra",)) # revealed: tuple[object, ...] + reveal_type(args + (1, 2, 3)) # revealed: tuple[object, ...] + reveal_type(args[0]) # revealed: object + + reveal_type("key" in kwargs) # revealed: bool + reveal_type(kwargs.get("key")) # revealed: object + reveal_type(kwargs["key"]) # revealed: object +``` + +## Specializing generic classes explicitly + +```py +from typing import Any, Callable, ParamSpec + +class OnlyParamSpec[**P1]: + attr: Callable[P1, None] + +class TwoParamSpec[**P1, **P2]: + attr1: Callable[P1, None] + attr2: Callable[P2, None] + +class TypeVarAndParamSpec[T1, **P1]: + attr: Callable[P1, T1] +``` + +Explicit specialization of a generic class involving `ParamSpec` is done by providing either a list +of types, `...`, or another in-scope `ParamSpec`. + +```py +reveal_type(OnlyParamSpec[[int, str]]().attr) # revealed: (int, str, /) -> None +reveal_type(OnlyParamSpec[...]().attr) # revealed: (...) -> None + +def func[**P2](c: Callable[P2, None]): + reveal_type(OnlyParamSpec[P2]().attr) # revealed: (**P2@func) -> None + +P2 = ParamSpec("P2") + +# TODO: error: paramspec is unbound +reveal_type(OnlyParamSpec[P2]().attr) # revealed: (...) -> None +``` + +The square brackets can be omitted when `ParamSpec` is the only type variable + +```py +reveal_type(OnlyParamSpec[int, str]().attr) # revealed: (int, str, /) -> None +reveal_type(OnlyParamSpec[int,]().attr) # revealed: (int, /) -> None + +# Even when there is only one element +reveal_type(OnlyParamSpec[Any]().attr) # revealed: (Any, /) -> None +reveal_type(OnlyParamSpec[object]().attr) # revealed: (object, /) -> None +reveal_type(OnlyParamSpec[int]().attr) # revealed: (int, /) -> None +``` + +But, they cannot be omitted when there are multiple type variables. + +```py +reveal_type(TypeVarAndParamSpec[int, [int, str]]().attr) # revealed: (int, str, /) -> int +reveal_type(TypeVarAndParamSpec[int, [str]]().attr) # revealed: (str, /) -> int +reveal_type(TypeVarAndParamSpec[int, ...]().attr) # revealed: (...) -> int + +# TODO: error: paramspec is unbound +reveal_type(TypeVarAndParamSpec[int, P2]().attr) # revealed: (...) -> Unknown +# error: [invalid-type-arguments] +reveal_type(TypeVarAndParamSpec[int, int]().attr) # revealed: (...) -> Unknown +``` + +Nor can they be omitted when there are more than one `ParamSpec`. + +```py +p = TwoParamSpec[[int, str], [int]]() +reveal_type(p.attr1) # revealed: (int, str, /) -> None +reveal_type(p.attr2) # revealed: (int, /) -> None + +# error: [invalid-type-arguments] "Type argument for `ParamSpec` must be either a list of types, `ParamSpec`, `Concatenate`, or `...`" +# error: [invalid-type-arguments] "Type argument for `ParamSpec` must be either a list of types, `ParamSpec`, `Concatenate`, or `...`" +TwoParamSpec[int, str] +``` + +Specializing `ParamSpec` type variable using `typing.Any` isn't explicitly allowed by the spec but +both mypy and Pyright allow this and there are usages of this in the wild e.g., +`staticmethod[Any, Any]`. + +```py +reveal_type(TypeVarAndParamSpec[int, Any]().attr) # revealed: (...) -> int +``` + +## Specialization when defaults are involved + +```py +from typing import Callable, ParamSpec + +class ParamSpecWithDefault1[**P1 = [int, str]]: + attr: Callable[P1, None] + +reveal_type(ParamSpecWithDefault1().attr) # revealed: (int, str, /) -> None +reveal_type(ParamSpecWithDefault1[int]().attr) # revealed: (int, /) -> None +``` + +```py +class ParamSpecWithDefault2[**P1 = ...]: + attr: Callable[P1, None] + +reveal_type(ParamSpecWithDefault2().attr) # revealed: (...) -> None +reveal_type(ParamSpecWithDefault2[int, str]().attr) # revealed: (int, str, /) -> None +``` + +```py +class ParamSpecWithDefault3[**P1, **P2 = P1]: + attr1: Callable[P1, None] + attr2: Callable[P2, None] + +# `P1` hasn't been specialized, so it defaults to `...` gradual form +p1 = ParamSpecWithDefault3() +reveal_type(p1.attr1) # revealed: (...) -> None +reveal_type(p1.attr2) # revealed: (...) -> None + +p2 = ParamSpecWithDefault3[[int, str]]() +reveal_type(p2.attr1) # revealed: (int, str, /) -> None +reveal_type(p2.attr2) # revealed: (int, str, /) -> None + +p3 = ParamSpecWithDefault3[[int], [str]]() +reveal_type(p3.attr1) # revealed: (int, /) -> None +reveal_type(p3.attr2) # revealed: (str, /) -> None + +class ParamSpecWithDefault4[**P1 = [int, str], **P2 = P1]: + attr1: Callable[P1, None] + attr2: Callable[P2, None] + +p1 = ParamSpecWithDefault4() +reveal_type(p1.attr1) # revealed: (int, str, /) -> None +reveal_type(p1.attr2) # revealed: (int, str, /) -> None + +p2 = ParamSpecWithDefault4[[int]]() +reveal_type(p2.attr1) # revealed: (int, /) -> None +reveal_type(p2.attr2) # revealed: (int, /) -> None + +p3 = ParamSpecWithDefault4[[int], [str]]() +reveal_type(p3.attr1) # revealed: (int, /) -> None +reveal_type(p3.attr2) # revealed: (str, /) -> None + +P2 = ParamSpec("P2") + +# TODO: error: paramspec is out of scope +class ParamSpecWithDefault5[**P1 = P2]: + attr: Callable[P1, None] +``` + +## Semantics + +Most of these test cases are adopted from the +[typing documentation on `ParamSpec` semantics](https://typing.python.org/en/latest/spec/generics.html#semantics). + +### Return type change using `ParamSpec` once + +```py +from typing import Callable + +def converter[**P](func: Callable[P, int]) -> Callable[P, bool]: + def wrapper(*args: P.args, **kwargs: P.kwargs) -> bool: + func(*args, **kwargs) + return True + return wrapper + +def f1(x: int, y: str) -> int: + return 1 + +# This should preserve all the information about the parameters of `f1` +f2 = converter(f1) + +reveal_type(f2) # revealed: (x: int, y: str) -> bool + +reveal_type(f1(1, "a")) # revealed: int +reveal_type(f2(1, "a")) # revealed: bool + +# As it preserves the parameter kinds, the following should work as well +reveal_type(f2(1, y="a")) # revealed: bool +reveal_type(f2(x=1, y="a")) # revealed: bool +reveal_type(f2(y="a", x=1)) # revealed: bool + +# error: [missing-argument] "No argument provided for required parameter `y`" +f2(1) +# error: [invalid-argument-type] "Argument is incorrect: Expected `int`, found `Literal["a"]`" +f2("a", "b") +``` + +The `converter` function act as a decorator here: + +```py +@converter +def f3(x: int, y: str) -> int: + return 1 + +# TODO: This should reveal `(x: int, y: str) -> bool` but there's a cycle: https://github.com/astral-sh/ty/issues/1729 +reveal_type(f3) # revealed: ((x: int, y: str) -> bool) | ((x: Divergent, y: Divergent) -> bool) + +reveal_type(f3(1, "a")) # revealed: bool +reveal_type(f3(x=1, y="a")) # revealed: bool +reveal_type(f3(1, y="a")) # revealed: bool +reveal_type(f3(y="a", x=1)) # revealed: bool + +# TODO: There should only be one error but the type of `f3` is a union: https://github.com/astral-sh/ty/issues/1729 +# error: [missing-argument] "No argument provided for required parameter `y`" +# error: [missing-argument] "No argument provided for required parameter `y`" +f3(1) +# error: [invalid-argument-type] "Argument is incorrect: Expected `int`, found `Literal["a"]`" +f3("a", "b") +``` + +### Return type change using the same `ParamSpec` multiple times + +```py +from typing import Callable + +def multiple[**P](func1: Callable[P, int], func2: Callable[P, int]) -> Callable[P, bool]: + def wrapper(*args: P.args, **kwargs: P.kwargs) -> bool: + func1(*args, **kwargs) + func2(*args, **kwargs) + return True + return wrapper +``` + +As per the spec, + +> A user may include the same `ParamSpec` multiple times in the arguments of the same function, to +> indicate a dependency between multiple arguments. In these cases a type checker may choose to +> solve to a common behavioral supertype (i.e. a set of parameters for which all of the valid calls +> are valid in both of the subtypes), but is not obligated to do so. + +TODO: Currently, we don't do this + +```py +def xy(x: int, y: str) -> int: + return 1 + +def yx(y: int, x: str) -> int: + return 2 + +reveal_type(multiple(xy, xy)) # revealed: (x: int, y: str) -> bool + +# The common supertype is `(int, str, /)` which is converting the positional-or-keyword parameters +# into positional-only parameters because the position of the types are the same. +# TODO: This shouldn't error +# error: [invalid-argument-type] +reveal_type(multiple(xy, yx)) # revealed: (x: int, y: str) -> bool + +def keyword_only_with_default_1(*, x: int = 42) -> int: + return 1 + +def keyword_only_with_default_2(*, y: int = 42) -> int: + return 2 + +# The common supertype for two functions with only keyword-only parameters would be an empty +# parameter list i.e., `()` +# TODO: This shouldn't error +# error: [invalid-argument-type] +# revealed: (*, x: int = Literal[42]) -> bool +reveal_type(multiple(keyword_only_with_default_1, keyword_only_with_default_2)) + +def keyword_only1(*, x: int) -> int: + return 1 + +def keyword_only2(*, y: int) -> int: + return 2 + +# On the other hand, combining two functions with only keyword-only parameters does not have a +# common supertype, so it should result in an error. +# error: [invalid-argument-type] "Argument to function `multiple` is incorrect: Expected `(*, x: int) -> int`, found `def keyword_only2(*, y: int) -> int`" +reveal_type(multiple(keyword_only1, keyword_only2)) # revealed: (*, x: int) -> bool +``` + +### Constructors of user-defined generic class on `ParamSpec` + +```py +from typing import Callable + +class C[**P]: + f: Callable[P, int] + + def __init__(self, f: Callable[P, int]) -> None: + self.f = f + +def f(x: int, y: str) -> bool: + return True + +c = C(f) +reveal_type(c.f) # revealed: (x: int, y: str) -> int +``` + +### `ParamSpec` in prepended positional parameters + +> If one of these prepended positional parameters contains a free `ParamSpec`, we consider that +> variable in scope for the purposes of extracting the components of that `ParamSpec`. + +```py +from typing import Callable + +def foo1[**P1](func: Callable[P1, int], *args: P1.args, **kwargs: P1.kwargs) -> int: + return func(*args, **kwargs) + +def foo1_with_extra_arg[**P1](func: Callable[P1, int], extra: str, *args: P1.args, **kwargs: P1.kwargs) -> int: + return func(*args, **kwargs) + +def foo2[**P2](func: Callable[P2, int], *args: P2.args, **kwargs: P2.kwargs) -> None: + foo1(func, *args, **kwargs) + + # error: [invalid-argument-type] "Argument to function `foo1` is incorrect: Expected `P2@foo2.args`, found `Literal[1]`" + foo1(func, 1, *args, **kwargs) + + # error: [invalid-argument-type] "Argument to function `foo1_with_extra_arg` is incorrect: Expected `str`, found `P2@foo2.args`" + foo1_with_extra_arg(func, *args, **kwargs) + + foo1_with_extra_arg(func, "extra", *args, **kwargs) +``` + +Here, the first argument to `f` can specialize `P` to the parameters of the callable passed to it +which is then used to type the `ParamSpec` components used in `*args` and `**kwargs`. + +```py +def f1(x: int, y: str) -> int: + return 1 + +foo1(f1, 1, "a") +foo1(f1, x=1, y="a") +foo1(f1, 1, y="a") + +# error: [missing-argument] "No arguments provided for required parameters `x`, `y` of function `foo1`" +foo1(f1) + +# error: [missing-argument] "No argument provided for required parameter `y` of function `foo1`" +foo1(f1, 1) + +# error: [invalid-argument-type] "Argument to function `foo1` is incorrect: Expected `str`, found `Literal[2]`" +foo1(f1, 1, 2) + +# error: [too-many-positional-arguments] "Too many positional arguments to function `foo1`: expected 2, got 3" +foo1(f1, 1, "a", "b") + +# error: [missing-argument] "No argument provided for required parameter `y` of function `foo1`" +# error: [unknown-argument] "Argument `z` does not match any known parameter of function `foo1`" +foo1(f1, x=1, z="a") +``` + +### Specializing `ParamSpec` with another `ParamSpec` + +```py +class Foo[**P]: + def __init__(self, *args: P.args, **kwargs: P.kwargs) -> None: + self.args = args + self.kwargs = kwargs + +def bar[**P](foo: Foo[P]) -> None: + reveal_type(foo) # revealed: Foo[P@bar] + reveal_type(foo.args) # revealed: Unknown | P@bar.args + reveal_type(foo.kwargs) # revealed: Unknown | P@bar.kwargs +``` + +ty will check whether the argument after `**` is a mapping type but as instance attribute are +unioned with `Unknown`, it shouldn't error here. + +```py +from typing import Callable + +def baz[**P](fn: Callable[P, None], foo: Foo[P]) -> None: + fn(*foo.args, **foo.kwargs) +``` + +The `Unknown` can be eliminated by using annotating these attributes with `Final`: + +```py +from typing import Final + +class FooWithFinal[**P]: + def __init__(self, *args: P.args, **kwargs: P.kwargs) -> None: + self.args: Final = args + self.kwargs: Final = kwargs + +def with_final[**P](foo: FooWithFinal[P]) -> None: + reveal_type(foo) # revealed: FooWithFinal[P@with_final] + reveal_type(foo.args) # revealed: P@with_final.args + reveal_type(foo.kwargs) # revealed: P@with_final.kwargs +``` + +### Specializing `Self` when `ParamSpec` is involved + +```py +class Foo[**P]: + def method(self, *args: P.args, **kwargs: P.kwargs) -> str: + return "hello" + +foo = Foo[int, str]() + +reveal_type(foo) # revealed: Foo[(int, str, /)] +reveal_type(foo.method) # revealed: bound method Foo[(int, str, /)].method(int, str, /) -> str +reveal_type(foo.method(1, "a")) # revealed: str +``` + +### Overloads + +`overloaded.pyi`: + +```pyi +from typing import overload + +@overload +def int_int(x: int) -> int: ... +@overload +def int_int(x: str) -> int: ... + +@overload +def int_str(x: int) -> int: ... +@overload +def int_str(x: str) -> str: ... + +@overload +def str_str(x: int) -> str: ... +@overload +def str_str(x: str) -> str: ... +``` + +```py +from typing import Callable +from overloaded import int_int, int_str, str_str + +def change_return_type[**P](f: Callable[P, int]) -> Callable[P, str]: + def nested(*args: P.args, **kwargs: P.kwargs) -> str: + return str(f(*args, **kwargs)) + return nested + +def with_parameters[**P](f: Callable[P, int], *args: P.args, **kwargs: P.kwargs) -> Callable[P, str]: + def nested(*args: P.args, **kwargs: P.kwargs) -> str: + return str(f(*args, **kwargs)) + return nested + +reveal_type(change_return_type(int_int)) # revealed: Overload[(x: int) -> str, (x: str) -> str] + +# TODO: This shouldn't error and should pick the first overload because of the return type +# error: [invalid-argument-type] +reveal_type(change_return_type(int_str)) # revealed: Overload[(x: int) -> str, (x: str) -> str] + +# error: [invalid-argument-type] +reveal_type(change_return_type(str_str)) # revealed: Overload[(x: int) -> str, (x: str) -> str] + +# TODO: Both of these shouldn't raise an error +# error: [invalid-argument-type] +reveal_type(with_parameters(int_int, 1)) # revealed: Overload[(x: int) -> str, (x: str) -> str] +# error: [invalid-argument-type] +reveal_type(with_parameters(int_int, "a")) # revealed: Overload[(x: int) -> str, (x: str) -> str] +``` diff --git a/crates/ty_python_semantic/resources/mdtest/implicit_type_aliases.md b/crates/ty_python_semantic/resources/mdtest/implicit_type_aliases.md index d0836559f3..0886393143 100644 --- a/crates/ty_python_semantic/resources/mdtest/implicit_type_aliases.md +++ b/crates/ty_python_semantic/resources/mdtest/implicit_type_aliases.md @@ -398,7 +398,7 @@ reveal_type(Sum) # revealed: reveal_type(ListOrTuple) # revealed: # revealed: reveal_type(ListOrTupleLegacy) -reveal_type(MyCallable) # revealed: @Todo(Callable[..] specialized with ParamSpec) +reveal_type(MyCallable) # revealed: T@MyCallable'> reveal_type(AnnotatedType) # revealed: ]'> reveal_type(TransparentAlias) # revealed: typing.TypeVar reveal_type(MyOptional) # revealed: @@ -425,8 +425,7 @@ def _( reveal_type(int_and_bytes) # revealed: tuple[int, bytes] reveal_type(list_or_tuple) # revealed: list[int] | tuple[int, ...] reveal_type(list_or_tuple_legacy) # revealed: list[int] | tuple[int, ...] - # TODO: This should be `(str, bytes) -> int` - reveal_type(my_callable) # revealed: @Todo(Callable[..] specialized with ParamSpec) + reveal_type(my_callable) # revealed: (str, bytes, /) -> int reveal_type(annotated_int) # revealed: int reveal_type(transparent_alias) # revealed: int reveal_type(optional_int) # revealed: int | None @@ -463,7 +462,7 @@ reveal_type(ListOfPairs) # revealed: reveal_type(ListOrTupleOfInts) # revealed: reveal_type(AnnotatedInt) # revealed: ]'> reveal_type(SubclassOfInt) # revealed: -reveal_type(CallableIntToStr) # revealed: @Todo(Callable[..] specialized with ParamSpec) +reveal_type(CallableIntToStr) # revealed: str'> def _( ints_or_none: IntsOrNone, @@ -480,8 +479,7 @@ def _( reveal_type(list_or_tuple_of_ints) # revealed: list[int] | tuple[int, ...] reveal_type(annotated_int) # revealed: int reveal_type(subclass_of_int) # revealed: type[int] - # TODO: This should be `(int, /) -> str` - reveal_type(callable_int_to_str) # revealed: @Todo(Callable[..] specialized with ParamSpec) + reveal_type(callable_int_to_str) # revealed: (int, /) -> str ``` A generic implicit type alias can also be used in another generic implicit type alias: @@ -534,8 +532,7 @@ def _( reveal_type(unknown_and_unknown) # revealed: tuple[Unknown, Unknown] reveal_type(list_or_tuple) # revealed: list[Unknown] | tuple[Unknown, ...] reveal_type(list_or_tuple_legacy) # revealed: list[Unknown] | tuple[Unknown, ...] - # TODO: should be (...) -> Unknown - reveal_type(my_callable) # revealed: @Todo(Callable[..] specialized with ParamSpec) + reveal_type(my_callable) # revealed: (...) -> Unknown reveal_type(annotated_unknown) # revealed: Unknown reveal_type(optional_unknown) # revealed: Unknown | None ``` diff --git a/crates/ty_python_semantic/resources/mdtest/type_properties/is_assignable_to.md b/crates/ty_python_semantic/resources/mdtest/type_properties/is_assignable_to.md index 885d3c2e4f..3bd3cd1f09 100644 --- a/crates/ty_python_semantic/resources/mdtest/type_properties/is_assignable_to.md +++ b/crates/ty_python_semantic/resources/mdtest/type_properties/is_assignable_to.md @@ -1344,6 +1344,38 @@ static_assert(not is_assignable_to(TypeGuard[Unknown], str)) # error: [static-a static_assert(not is_assignable_to(TypeIs[Any], str)) ``` +## `ParamSpec` + +```py +from ty_extensions import TypeOf, static_assert, is_assignable_to, Unknown +from typing import ParamSpec, Mapping, Callable, Any + +P = ParamSpec("P") + +def f(func: Callable[P, int], *args: P.args, **kwargs: P.kwargs) -> None: + static_assert(is_assignable_to(TypeOf[args], tuple[Any, ...])) + static_assert(is_assignable_to(TypeOf[args], tuple[object, ...])) + static_assert(is_assignable_to(TypeOf[args], tuple[Unknown, ...])) + static_assert(not is_assignable_to(TypeOf[args], tuple[int, ...])) + static_assert(not is_assignable_to(TypeOf[args], tuple[int, str])) + + static_assert(not is_assignable_to(tuple[Any, ...], TypeOf[args])) + static_assert(not is_assignable_to(tuple[object, ...], TypeOf[args])) + static_assert(not is_assignable_to(tuple[Unknown, ...], TypeOf[args])) + + static_assert(is_assignable_to(TypeOf[kwargs], dict[str, Any])) + static_assert(is_assignable_to(TypeOf[kwargs], dict[str, Unknown])) + static_assert(not is_assignable_to(TypeOf[kwargs], dict[str, object])) + static_assert(not is_assignable_to(TypeOf[kwargs], dict[str, int])) + static_assert(is_assignable_to(TypeOf[kwargs], Mapping[str, Any])) + static_assert(is_assignable_to(TypeOf[kwargs], Mapping[str, object])) + static_assert(is_assignable_to(TypeOf[kwargs], Mapping[str, Unknown])) + + static_assert(not is_assignable_to(dict[str, Any], TypeOf[kwargs])) + static_assert(not is_assignable_to(dict[str, object], TypeOf[kwargs])) + static_assert(not is_assignable_to(dict[str, Unknown], TypeOf[kwargs])) +``` + [gradual form]: https://typing.python.org/en/latest/spec/glossary.html#term-gradual-form [gradual tuple]: https://typing.python.org/en/latest/spec/tuples.html#tuple-type-form [typing documentation]: https://typing.python.org/en/latest/spec/concepts.html#the-assignable-to-or-consistent-subtyping-relation diff --git a/crates/ty_python_semantic/resources/mdtest/with/async.md b/crates/ty_python_semantic/resources/mdtest/with/async.md index 6d556d438b..2a0d7165de 100644 --- a/crates/ty_python_semantic/resources/mdtest/with/async.md +++ b/crates/ty_python_semantic/resources/mdtest/with/async.md @@ -213,7 +213,7 @@ async def connect() -> AsyncGenerator[Session]: yield Session() # TODO: this should be `() -> _AsyncGeneratorContextManager[Session, None]` -reveal_type(connect) # revealed: (...) -> _AsyncGeneratorContextManager[Unknown, None] +reveal_type(connect) # revealed: () -> _AsyncGeneratorContextManager[Unknown, None] async def main(): async with connect() as session: diff --git a/crates/ty_python_semantic/src/types.rs b/crates/ty_python_semantic/src/types.rs index 6022aad53e..23f7a53f79 100644 --- a/crates/ty_python_semantic/src/types.rs +++ b/crates/ty_python_semantic/src/types.rs @@ -1796,14 +1796,14 @@ impl<'db> Type<'db> { Type::KnownBoundMethod(method) => Some(CallableTypes::one(CallableType::new( db, CallableSignature::from_overloads(method.signatures(db)), - false, + CallableTypeKind::Regular, ))), Type::WrapperDescriptor(wrapper_descriptor) => { Some(CallableTypes::one(CallableType::new( db, CallableSignature::from_overloads(wrapper_descriptor.signatures(db)), - false, + CallableTypeKind::Regular, ))) } @@ -4986,11 +4986,17 @@ impl<'db> Type<'db> { .into() } - Type::KnownInstance(KnownInstanceType::TypeVar(typevar)) - if typevar.kind(db).is_paramspec() - && matches!(name.as_str(), "args" | "kwargs") => - { - Place::bound(todo_type!("ParamSpecArgs / ParamSpecKwargs")).into() + Type::TypeVar(typevar) if name_str == "args" && typevar.is_paramspec(db) => { + Place::declared(Type::TypeVar( + typevar.with_paramspec_attr(db, ParamSpecAttrKind::Args), + )) + .into() + } + Type::TypeVar(typevar) if name_str == "kwargs" && typevar.is_paramspec(db) => { + Place::declared(Type::TypeVar( + typevar.with_paramspec_attr(db, ParamSpecAttrKind::Kwargs), + )) + .into() } Type::NominalInstance(instance) @@ -7197,6 +7203,9 @@ impl<'db> Type<'db> { KnownInstanceType::TypeAliasType(alias) => Ok(Type::TypeAlias(*alias)), KnownInstanceType::NewType(newtype) => Ok(Type::NewTypeInstance(*newtype)), KnownInstanceType::TypeVar(typevar) => { + // TODO: A `ParamSpec` type variable cannot be used in type expressions. This + // requires storing additional context as it's allowed in some places + // (`Concatenate`, `Callable`) but not others. let index = semantic_index(db, scope_id.file(db)); Ok(bind_typevar( db, @@ -7423,9 +7432,6 @@ impl<'db> Type<'db> { Some(KnownClass::TypeVar) => Ok(todo_type!( "Support for `typing.TypeVar` instances in type expressions" )), - Some( - KnownClass::ParamSpec | KnownClass::ParamSpecArgs | KnownClass::ParamSpecKwargs, - ) => Ok(todo_type!("Support for `typing.ParamSpec`")), Some(KnownClass::TypeVarTuple) => Ok(todo_type!( "Support for `typing.TypeVarTuple` instances in type expressions" )), @@ -7604,7 +7610,7 @@ impl<'db> Type<'db> { KnownInstanceType::TypeVar(typevar) => { match type_mapping { TypeMapping::BindLegacyTypevars(binding_context) => { - Type::TypeVar(BoundTypeVarInstance::new(db, typevar, *binding_context)) + Type::TypeVar(BoundTypeVarInstance::new(db, typevar, *binding_context, None)) } TypeMapping::Specialization(_) | TypeMapping::PartialSpecialization(_) | @@ -7858,18 +7864,28 @@ impl<'db> Type<'db> { typevars: &mut FxOrderSet>, visitor: &FindLegacyTypeVarsVisitor<'db>, ) { - let is_matching_typevar = |bound_typevar: &BoundTypeVarInstance<'db>| { - matches!( - bound_typevar.typevar(db).kind(db), - TypeVarKind::Legacy | TypeVarKind::TypingSelf | TypeVarKind::ParamSpec - ) && binding_context.is_none_or(|binding_context| { - bound_typevar.binding_context(db) == BindingContext::Definition(binding_context) - }) + let matching_typevar = |bound_typevar: &BoundTypeVarInstance<'db>| { + match bound_typevar.typevar(db).kind(db) { + TypeVarKind::Legacy | TypeVarKind::TypingSelf + if binding_context.is_none_or(|binding_context| { + bound_typevar.binding_context(db) + == BindingContext::Definition(binding_context) + }) => + { + Some(*bound_typevar) + } + TypeVarKind::ParamSpec => { + // For `ParamSpec`, we're only interested in `P` itself, not `P.args` or + // `P.kwargs`. + Some(bound_typevar.without_paramspec_attr(db)) + } + _ => None, + } }; match self { Type::TypeVar(bound_typevar) => { - if is_matching_typevar(&bound_typevar) { + if let Some(bound_typevar) = matching_typevar(&bound_typevar) { typevars.insert(bound_typevar); } } @@ -8011,7 +8027,7 @@ impl<'db> Type<'db> { Type::Dynamic(DynamicType::UnknownGeneric(generic_context)) => { for variable in generic_context.variables(db) { - if is_matching_typevar(&variable) { + if let Some(variable) = matching_typevar(&variable) { typevars.insert(variable); } } @@ -8813,7 +8829,7 @@ impl<'db> KnownInstanceType<'db> { fn class(self, db: &'db dyn Db) -> KnownClass { match self { Self::SubscriptedProtocol(_) | Self::SubscriptedGeneric(_) => KnownClass::SpecialForm, - Self::TypeVar(typevar_instance) if typevar_instance.kind(db).is_paramspec() => { + Self::TypeVar(typevar_instance) if typevar_instance.is_paramspec(db) => { KnownClass::ParamSpec } Self::TypeVar(_) => KnownClass::TypeVar, @@ -9461,7 +9477,7 @@ impl<'db> TypeVarInstance<'db> { db: &'db dyn Db, binding_context: Definition<'db>, ) -> BoundTypeVarInstance<'db> { - BoundTypeVarInstance::new(db, self, BindingContext::Definition(binding_context)) + BoundTypeVarInstance::new(db, self, BindingContext::Definition(binding_context), None) } pub(crate) fn name(self, db: &'db dyn Db) -> &'db ast::name::Name { @@ -9480,6 +9496,10 @@ impl<'db> TypeVarInstance<'db> { matches!(self.kind(db), TypeVarKind::TypingSelf) } + pub(crate) fn is_paramspec(self, db: &'db dyn Db) -> bool { + self.kind(db).is_paramspec() + } + pub(crate) fn upper_bound(self, db: &'db dyn Db) -> Option> { if let Some(TypeVarBoundOrConstraints::UpperBound(ty)) = self.bound_or_constraints(db) { Some(ty) @@ -9683,6 +9703,45 @@ impl<'db> TypeVarInstance<'db> { #[salsa::tracked(cycle_fn=lazy_default_cycle_recover, cycle_initial=lazy_default_cycle_initial, heap_size=ruff_memory_usage::heap_size)] fn lazy_default(self, db: &'db dyn Db) -> Option> { + fn convert_type_to_paramspec_value<'db>(db: &'db dyn Db, ty: Type<'db>) -> Type<'db> { + let parameters = match ty { + Type::NominalInstance(nominal_instance) + if nominal_instance.has_known_class(db, KnownClass::EllipsisType) => + { + Parameters::gradual_form() + } + Type::NominalInstance(nominal_instance) => nominal_instance + .own_tuple_spec(db) + .map_or_else(Parameters::unknown, |tuple_spec| { + Parameters::new( + db, + tuple_spec.all_elements().map(|ty| { + Parameter::positional_only(None).with_annotated_type(*ty) + }), + ) + }), + Type::Dynamic(dynamic) => match dynamic { + DynamicType::Todo(_) + | DynamicType::TodoUnpack + | DynamicType::TodoStarredExpression => Parameters::todo(), + DynamicType::Any + | DynamicType::Unknown + | DynamicType::UnknownGeneric(_) + | DynamicType::Divergent(_) => Parameters::unknown(), + }, + Type::TypeVar(typevar) if typevar.is_paramspec(db) => { + return ty; + } + Type::KnownInstance(KnownInstanceType::TypeVar(typevar)) + if typevar.is_paramspec(db) => + { + return ty; + } + _ => Parameters::unknown(), + }; + Type::paramspec_value_callable(db, parameters) + } + let definition = self.definition(db)?; let module = parsed_module(db, definition.file(db)).load(db); match definition.kind(db) { @@ -9695,27 +9754,35 @@ impl<'db> TypeVarInstance<'db> { typevar_node.default.as_ref()?, )) } - // legacy typevar + // legacy typevar / ParamSpec DefinitionKind::Assignment(assignment) => { let call_expr = assignment.value(&module).as_call_expr()?; + let func_ty = definition_expression_type(db, definition, &call_expr.func); + let known_class = func_ty.as_class_literal().and_then(|cls| cls.known(db)); let expr = &call_expr.arguments.find_keyword("default")?.value; - Some(definition_expression_type(db, definition, expr)) + let default_type = definition_expression_type(db, definition, expr); + if known_class == Some(KnownClass::ParamSpec) { + Some(convert_type_to_paramspec_value(db, default_type)) + } else { + Some(default_type) + } } // PEP 695 ParamSpec DefinitionKind::ParamSpec(paramspec) => { let paramspec_node = paramspec.node(&module); - Some(definition_expression_type( - db, - definition, - paramspec_node.default.as_ref()?, - )) + let default_ty = + definition_expression_type(db, definition, paramspec_node.default.as_ref()?); + Some(convert_type_to_paramspec_value(db, default_ty)) } _ => None, } } pub fn bind_pep695(self, db: &'db dyn Db) -> Option> { - if self.identity(db).kind(db) != TypeVarKind::Pep695 { + if !matches!( + self.identity(db).kind(db), + TypeVarKind::Pep695 | TypeVarKind::Pep695ParamSpec + ) { return None; } let typevar_definition = self.definition(db)?; @@ -9810,6 +9877,21 @@ impl<'db> BindingContext<'db> { } } +#[derive(Copy, Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord, get_size2::GetSize)] +pub enum ParamSpecAttrKind { + Args, + Kwargs, +} + +impl std::fmt::Display for ParamSpecAttrKind { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + ParamSpecAttrKind::Args => f.write_str("args"), + ParamSpecAttrKind::Kwargs => f.write_str("kwargs"), + } + } +} + /// The identity of a bound type variable. /// /// This identifies a specific binding of a typevar to a context (e.g., `T@ClassC` vs `T@FunctionF`), @@ -9822,14 +9904,26 @@ impl<'db> BindingContext<'db> { pub struct BoundTypeVarIdentity<'db> { pub(crate) identity: TypeVarIdentity<'db>, pub(crate) binding_context: BindingContext<'db>, + /// If [`Some`], this indicates that this type variable is the `args` or `kwargs` component + /// of a `ParamSpec` i.e., `P.args` or `P.kwargs`. + paramspec_attr: Option, } /// A type variable that has been bound to a generic context, and which can be specialized to a /// concrete type. +/// +/// # Ordering +/// +/// Ordering is based on the wrapped data's salsa-assigned id and not on its values. +/// The id may change between runs, or when e.g. a `BoundTypeVarInstance` was garbage-collected and recreated. #[salsa::interned(debug, heap_size=ruff_memory_usage::heap_size)] +#[derive(PartialOrd, Ord)] pub struct BoundTypeVarInstance<'db> { pub typevar: TypeVarInstance<'db>, binding_context: BindingContext<'db>, + /// If [`Some`], this indicates that this type variable is the `args` or `kwargs` component + /// of a `ParamSpec` i.e., `P.args` or `P.kwargs`. + paramspec_attr: Option, } // The Salsa heap is tracked separately. @@ -9844,9 +9938,83 @@ impl<'db> BoundTypeVarInstance<'db> { BoundTypeVarIdentity { identity: self.typevar(db).identity(db), binding_context: self.binding_context(db), + paramspec_attr: self.paramspec_attr(db), } } + pub(crate) fn name(self, db: &'db dyn Db) -> &'db ast::name::Name { + self.typevar(db).name(db) + } + + pub(crate) fn kind(self, db: &'db dyn Db) -> TypeVarKind { + self.typevar(db).kind(db) + } + + pub(crate) fn is_paramspec(self, db: &'db dyn Db) -> bool { + self.kind(db).is_paramspec() + } + + /// Returns a new bound typevar instance with the given `ParamSpec` attribute set. + /// + /// This method will also set an appropriate upper bound on the typevar, based on the + /// attribute kind. For `P.args`, the upper bound will be `tuple[object, ...]`, and for + /// `P.kwargs`, the upper bound will be `Top[dict[str, Any]]`. + /// + /// It's the caller's responsibility to ensure that this method is only called on a `ParamSpec` + /// type variable. + pub(crate) fn with_paramspec_attr(self, db: &'db dyn Db, kind: ParamSpecAttrKind) -> Self { + debug_assert!( + self.is_paramspec(db), + "Expected a ParamSpec, got {:?}", + self.kind(db) + ); + + let upper_bound = TypeVarBoundOrConstraints::UpperBound(match kind { + ParamSpecAttrKind::Args => Type::homogeneous_tuple(db, Type::object()), + ParamSpecAttrKind::Kwargs => KnownClass::Dict + .to_specialized_instance(db, [KnownClass::Str.to_instance(db), Type::any()]) + .top_materialization(db), + }); + + let typevar = TypeVarInstance::new( + db, + self.typevar(db).identity(db), + Some(TypeVarBoundOrConstraintsEvaluation::Eager(upper_bound)), + None, // ParamSpecs cannot have explicit variance + None, // `P.args` and `P.kwargs` cannot have defaults even though `P` can + ); + + Self::new(db, typevar, self.binding_context(db), Some(kind)) + } + + /// Returns a new bound typevar instance without any `ParamSpec` attribute set. + /// + /// This method will also remove any upper bound that was set by `with_paramspec_attr`. This + /// means that the returned typevar will have no upper bound or constraints. + /// + /// It's the caller's responsibility to ensure that this method is only called on a `ParamSpec` + /// type variable. + pub(crate) fn without_paramspec_attr(self, db: &'db dyn Db) -> Self { + debug_assert!( + self.is_paramspec(db), + "Expected a ParamSpec, got {:?}", + self.kind(db) + ); + + Self::new( + db, + TypeVarInstance::new( + db, + self.typevar(db).identity(db), + None, // Remove the upper bound set by `with_paramspec_attr` + None, // ParamSpecs cannot have explicit variance + None, // `P.args` and `P.kwargs` cannot have defaults even though `P` can + ), + self.binding_context(db), + None, + ) + } + /// Returns whether two bound typevars represent the same logical typevar, regardless of e.g. /// differences in their bounds or constraints due to materialization. pub(crate) fn is_same_typevar_as(self, db: &'db dyn Db, other: Self) -> bool { @@ -9873,7 +10041,7 @@ impl<'db> BoundTypeVarInstance<'db> { Some(variance), None, // _default ); - Self::new(db, typevar, BindingContext::Synthetic) + Self::new(db, typevar, BindingContext::Synthetic, None) } /// Create a new synthetic `Self` type variable with the given upper bound. @@ -9895,7 +10063,7 @@ impl<'db> BoundTypeVarInstance<'db> { Some(TypeVarVariance::Invariant), None, // _default ); - Self::new(db, typevar, binding_context) + Self::new(db, typevar, binding_context, None) } /// Returns an identical type variable with its `TypeVarBoundOrConstraints` mapped by the @@ -9914,7 +10082,12 @@ impl<'db> BoundTypeVarInstance<'db> { self.typevar(db)._default(db), ); - Self::new(db, typevar, self.binding_context(db)) + Self::new( + db, + typevar, + self.binding_context(db), + self.paramspec_attr(db), + ) } pub(crate) fn variance_with_polarity( @@ -9946,10 +10119,42 @@ impl<'db> BoundTypeVarInstance<'db> { ) -> Type<'db> { match type_mapping { TypeMapping::Specialization(specialization) => { - specialization.get(db, self).unwrap_or(Type::TypeVar(self)) + let typevar = if self.is_paramspec(db) { + self.without_paramspec_attr(db) + } else { + self + }; + specialization + .get(db, typevar) + .map(|ty| { + if let Some(attr) = self.paramspec_attr(db) + && let Type::TypeVar(typevar) = ty + && typevar.is_paramspec(db) + { + return Type::TypeVar(typevar.with_paramspec_attr(db, attr)); + } + ty + }) + .unwrap_or(Type::TypeVar(self)) } TypeMapping::PartialSpecialization(partial) => { - partial.get(db, self).unwrap_or(Type::TypeVar(self)) + let typevar = if self.is_paramspec(db) { + self.without_paramspec_attr(db) + } else { + self + }; + partial + .get(db, typevar) + .map(|ty| { + if let Some(attr) = self.paramspec_attr(db) + && let Type::TypeVar(typevar) = ty + && typevar.is_paramspec(db) + { + return Type::TypeVar(typevar.with_paramspec_attr(db, attr)); + } + ty + }) + .unwrap_or(Type::TypeVar(self)) } TypeMapping::BindSelf { self_type, @@ -10032,6 +10237,7 @@ impl<'db> BoundTypeVarInstance<'db> { db, self.typevar(db).normalized_impl(db, visitor), self.binding_context(db), + self.paramspec_attr(db), ) } @@ -10046,6 +10252,7 @@ impl<'db> BoundTypeVarInstance<'db> { self.typevar(db) .materialize_impl(db, materialization_kind, visitor), self.binding_context(db), + self.paramspec_attr(db), ) } @@ -10054,6 +10261,7 @@ impl<'db> BoundTypeVarInstance<'db> { db, self.typevar(db).to_instance(db)?, self.binding_context(db), + self.paramspec_attr(db), )) } } @@ -11797,7 +12005,7 @@ impl<'db> BoundMethodType<'db> { .iter() .map(|signature| signature.bind_self(db, Some(self_instance))), ), - true, + CallableTypeKind::FunctionLike, ) } @@ -11878,6 +12086,20 @@ impl<'db> BoundMethodType<'db> { } } +#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, get_size2::GetSize)] +pub enum CallableTypeKind { + /// Represents regular callable objects. + Regular, + + /// Represents function-like objects, like the synthesized methods of dataclasses or + /// `NamedTuples`. These callables act like real functions when accessed as attributes on + /// instances, i.e. they bind `self`. + FunctionLike, + + /// Represents the value bound to a `typing.ParamSpec` type variable. + ParamSpecValue, +} + /// This type represents the set of all callable objects with a certain, possibly overloaded, /// signature. /// @@ -11894,10 +12116,7 @@ pub struct CallableType<'db> { #[returns(ref)] pub(crate) signatures: CallableSignature<'db>, - /// We use `CallableType` to represent function-like objects, like the synthesized methods - /// of dataclasses or NamedTuples. These callables act like real functions when accessed - /// as attributes on instances, i.e. they bind `self`. - is_function_like: bool, + kind: CallableTypeKind, } pub(super) fn walk_callable_type<'db, V: visitor::TypeVisitor<'db> + ?Sized>( @@ -11925,15 +12144,43 @@ impl<'db> Type<'db> { pub(crate) fn function_like_callable(db: &'db dyn Db, signature: Signature<'db>) -> Type<'db> { Type::Callable(CallableType::function_like(db, signature)) } + + /// Create a non-overloaded callable type which represents the value bound to a `ParamSpec` + /// type variable. + pub(crate) fn paramspec_value_callable( + db: &'db dyn Db, + parameters: Parameters<'db>, + ) -> Type<'db> { + Type::Callable(CallableType::paramspec_value(db, parameters)) + } } impl<'db> CallableType<'db> { pub(crate) fn single(db: &'db dyn Db, signature: Signature<'db>) -> CallableType<'db> { - CallableType::new(db, CallableSignature::single(signature), false) + CallableType::new( + db, + CallableSignature::single(signature), + CallableTypeKind::Regular, + ) } pub(crate) fn function_like(db: &'db dyn Db, signature: Signature<'db>) -> CallableType<'db> { - CallableType::new(db, CallableSignature::single(signature), true) + CallableType::new( + db, + CallableSignature::single(signature), + CallableTypeKind::FunctionLike, + ) + } + + pub(crate) fn paramspec_value( + db: &'db dyn Db, + parameters: Parameters<'db>, + ) -> CallableType<'db> { + CallableType::new( + db, + CallableSignature::single(Signature::new(parameters, None)), + CallableTypeKind::ParamSpecValue, + ) } /// Create a callable type which accepts any parameters and returns an `Unknown` type. @@ -11941,6 +12188,10 @@ impl<'db> CallableType<'db> { Self::single(db, Signature::unknown()) } + pub(crate) fn is_function_like(self, db: &'db dyn Db) -> bool { + matches!(self.kind(db), CallableTypeKind::FunctionLike) + } + pub(crate) fn bind_self( self, db: &'db dyn Db, @@ -11949,7 +12200,7 @@ impl<'db> CallableType<'db> { CallableType::new( db, self.signatures(db).bind_self(db, self_type), - self.is_function_like(db), + self.kind(db), ) } @@ -11957,7 +12208,7 @@ impl<'db> CallableType<'db> { CallableType::new( db, self.signatures(db).apply_self(db, self_type), - self.is_function_like(db), + self.kind(db), ) } @@ -11966,7 +12217,7 @@ impl<'db> CallableType<'db> { /// Specifically, this represents a callable type with a single signature: /// `(*args: object, **kwargs: object) -> Never`. pub(crate) fn bottom(db: &'db dyn Db) -> CallableType<'db> { - Self::new(db, CallableSignature::bottom(), false) + Self::new(db, CallableSignature::bottom(), CallableTypeKind::Regular) } /// Return a "normalized" version of this `Callable` type. @@ -11976,7 +12227,7 @@ impl<'db> CallableType<'db> { CallableType::new( db, self.signatures(db).normalized_impl(db, visitor), - self.is_function_like(db), + self.kind(db), ) } @@ -11990,7 +12241,7 @@ impl<'db> CallableType<'db> { db, self.signatures(db) .recursive_type_normalized_impl(db, div, nested)?, - self.is_function_like(db), + self.kind(db), )) } @@ -12005,7 +12256,7 @@ impl<'db> CallableType<'db> { db, self.signatures(db) .apply_type_mapping_impl(db, type_mapping, tcx, visitor), - self.is_function_like(db), + self.kind(db), ) } diff --git a/crates/ty_python_semantic/src/types/call/arguments.rs b/crates/ty_python_semantic/src/types/call/arguments.rs index 6da85184ea..cc8f377271 100644 --- a/crates/ty_python_semantic/src/types/call/arguments.rs +++ b/crates/ty_python_semantic/src/types/call/arguments.rs @@ -150,6 +150,14 @@ impl<'a, 'db> CallArguments<'a, 'db> { (self.arguments.iter().copied()).zip(self.types.iter_mut()) } + /// Create a new [`CallArguments`] starting from the specified index. + pub(super) fn start_from(&self, index: usize) -> Self { + Self { + arguments: self.arguments[index..].to_vec(), + types: self.types[index..].to_vec(), + } + } + /// Returns an iterator on performing [argument type expansion]. /// /// Each element of the iterator represents a set of argument lists, where each argument list diff --git a/crates/ty_python_semantic/src/types/call/bind.rs b/crates/ty_python_semantic/src/types/call/bind.rs index da63e45208..10e9ddfca3 100644 --- a/crates/ty_python_semantic/src/types/call/bind.rs +++ b/crates/ty_python_semantic/src/types/call/bind.rs @@ -3,6 +3,7 @@ //! [signatures][crate::types::signatures], we have to handle the fact that the callable might be a //! union of types, each of which might contain multiple overloads. +use std::borrow::Cow; use std::collections::HashSet; use std::fmt; @@ -32,16 +33,15 @@ use crate::types::function::{ use crate::types::generics::{ InferableTypeVars, Specialization, SpecializationBuilder, SpecializationError, }; -use crate::types::signatures::{ - CallableSignature, Parameter, ParameterForm, ParameterKind, Parameters, -}; -use crate::types::tuple::{TupleLength, TupleType}; +use crate::types::signatures::{Parameter, ParameterForm, ParameterKind, Parameters}; +use crate::types::tuple::{TupleLength, TupleSpec, TupleType}; use crate::types::{ - BoundMethodType, BoundTypeVarIdentity, ClassLiteral, DATACLASS_FLAGS, DataclassFlags, - DataclassParams, FieldInstance, KnownBoundMethodType, KnownClass, KnownInstanceType, - MemberLookupPolicy, NominalInstanceType, PropertyInstanceType, SpecialFormType, - TrackedConstraintSet, TypeAliasType, TypeContext, TypeVarVariance, UnionBuilder, UnionType, - WrapperDescriptorKind, enums, list_members, todo_type, + BoundMethodType, BoundTypeVarIdentity, BoundTypeVarInstance, CallableSignature, + CallableTypeKind, ClassLiteral, DATACLASS_FLAGS, DataclassFlags, DataclassParams, + FieldInstance, KnownBoundMethodType, KnownClass, KnownInstanceType, MemberLookupPolicy, + NominalInstanceType, PropertyInstanceType, SpecialFormType, TrackedConstraintSet, + TypeAliasType, TypeContext, TypeVarVariance, UnionBuilder, UnionType, WrapperDescriptorKind, + enums, list_members, todo_type, }; use ruff_db::diagnostic::{Annotation, Diagnostic, SubDiagnostic, SubDiagnosticSeverity}; use ruff_python_ast::{self as ast, ArgOrKeyword, PythonVersion}; @@ -2581,20 +2581,62 @@ impl<'a, 'db> ArgumentMatcher<'a, 'db> { argument: Argument<'a>, argument_type: Option>, ) -> Result<(), ()> { - // TODO: `Type::iterate` internally handles unions, but in a lossy way. - // It might be superior here to manually map over the union and call `try_iterate` - // on each element, similar to the way that `unpacker.rs` does in the `unpack_inner` method. - // It might be a bit of a refactor, though. - // See - // for more details. --Alex - let tuple = argument_type.map(|ty| ty.iterate(db)); - let (mut argument_types, length, variable_element) = match tuple.as_ref() { - Some(tuple) => ( + enum VariadicArgumentType<'db> { + ParamSpec(Type<'db>), + Other(Cow<'db, TupleSpec<'db>>), + None, + } + + let variadic_type = match argument_type { + Some(argument_type @ Type::Union(union)) => { + // When accessing an instance attribute that is a `P.args`, the type we infer is + // `Unknown | P.args`. This needs to be special cased here to avoid calling + // `iterate` on it which will lose the `ParamSpec` information as it will return + // `object` that comes from the upper bound of `P.args`. What we want is to always + // use the `P.args` type to perform type checking against the parameter type. This + // will allow us to error when `*args: P.args` is matched against, for example, + // `n: int` and correctly type check when `*args: P.args` is matched against + // `*args: P.args` (another ParamSpec). + match union.elements(db) { + [paramspec @ Type::TypeVar(typevar), other] + | [other, paramspec @ Type::TypeVar(typevar)] + if typevar.is_paramspec(db) && other.is_unknown() => + { + VariadicArgumentType::ParamSpec(*paramspec) + } + _ => { + // TODO: Same todo comment as in the non-paramspec case below + VariadicArgumentType::Other(argument_type.iterate(db)) + } + } + } + Some(paramspec @ Type::TypeVar(typevar)) if typevar.is_paramspec(db) => { + VariadicArgumentType::ParamSpec(paramspec) + } + Some(argument_type) => { + // TODO: `Type::iterate` internally handles unions, but in a lossy way. + // It might be superior here to manually map over the union and call `try_iterate` + // on each element, similar to the way that `unpacker.rs` does in the `unpack_inner` method. + // It might be a bit of a refactor, though. + // See + // for more details. --Alex + VariadicArgumentType::Other(argument_type.iterate(db)) + } + None => VariadicArgumentType::None, + }; + + let (mut argument_types, length, variable_element) = match &variadic_type { + VariadicArgumentType::ParamSpec(paramspec) => ( + Either::Right(std::iter::empty()), + TupleLength::unknown(), + Some(*paramspec), + ), + VariadicArgumentType::Other(tuple) => ( Either::Left(tuple.all_elements().copied()), tuple.len(), tuple.variable_element().copied(), ), - None => ( + VariadicArgumentType::None => ( Either::Right(std::iter::empty()), TupleLength::unknown(), None, @@ -2669,21 +2711,39 @@ impl<'a, 'db> ArgumentMatcher<'a, 'db> { ); } } else { - let value_type = match argument_type.map(|ty| { - ty.member_lookup_with_policy( + let dunder_getitem_return_type = |ty: Type<'db>| match ty + .member_lookup_with_policy( db, Name::new_static("__getitem__"), MemberLookupPolicy::NO_INSTANCE_FALLBACK, ) .place - }) { - Some(Place::Defined(keys_method, _, Definedness::AlwaysDefined)) => keys_method + { + Place::Defined(getitem_method, _, Definedness::AlwaysDefined) => getitem_method .try_call(db, &CallArguments::positional([Type::unknown()])) .ok() .map_or_else(Type::unknown, |bindings| bindings.return_type(db)), _ => Type::unknown(), }; + let value_type = match argument_type { + Some(argument_type @ Type::Union(union)) => { + // See the comment in `match_variadic` for why we special case this situation. + match union.elements(db) { + [paramspec @ Type::TypeVar(typevar), other] + | [other, paramspec @ Type::TypeVar(typevar)] + if typevar.is_paramspec(db) && other.is_unknown() => + { + *paramspec + } + _ => dunder_getitem_return_type(argument_type), + } + } + Some(paramspec @ Type::TypeVar(typevar)) if typevar.is_paramspec(db) => paramspec, + Some(argument_type) => dunder_getitem_return_type(argument_type), + None => Type::unknown(), + }; + for (parameter_index, parameter) in self.parameters.iter().enumerate() { if self.parameter_info[parameter_index].matched && !parameter.is_keyword_variadic() { @@ -2753,6 +2813,7 @@ impl<'a, 'db> ArgumentMatcher<'a, 'db> { struct ArgumentTypeChecker<'a, 'db> { db: &'db dyn Db, + signature_type: Type<'db>, signature: &'a Signature<'db>, arguments: &'a CallArguments<'a, 'db>, argument_matches: &'a [MatchedArgument<'db>], @@ -2770,6 +2831,7 @@ impl<'a, 'db> ArgumentTypeChecker<'a, 'db> { #[expect(clippy::too_many_arguments)] fn new( db: &'db dyn Db, + signature_type: Type<'db>, signature: &'a Signature<'db>, arguments: &'a CallArguments<'a, 'db>, argument_matches: &'a [MatchedArgument<'db>], @@ -2781,6 +2843,7 @@ impl<'a, 'db> ArgumentTypeChecker<'a, 'db> { ) -> Self { Self { db, + signature_type, signature, arguments, argument_matches, @@ -3029,9 +3092,23 @@ impl<'a, 'db> ArgumentTypeChecker<'a, 'db> { } fn check_argument_types(&mut self) { + let paramspec = self + .signature + .parameters() + .find_paramspec_from_args_kwargs(self.db); + for (argument_index, adjusted_argument_index, argument, argument_type) in self.enumerate_argument_types() { + if let Some((_, paramspec)) = paramspec { + if self.try_paramspec_evaluation_at(argument_index, paramspec) { + // Once we find an argument that matches the `ParamSpec`, we can stop checking + // the remaining arguments since `ParamSpec` should always be the last + // parameter. + return; + } + } + match argument { Argument::Variadic => self.check_variadic_argument_type( argument_index, @@ -3057,6 +3134,131 @@ impl<'a, 'db> ArgumentTypeChecker<'a, 'db> { } } } + + if let Some((_, paramspec)) = paramspec { + // If we reach here, none of the arguments matched the `ParamSpec` parameter, but the + // `ParamSpec` could specialize to a parameter list containing some parameters. For + // example, + // + // ```py + // from typing import Callable + // + // def foo[**P](f: Callable[P, None], *args: P.args, **kwargs: P.kwargs) -> None: ... + // + // def f(x: int) -> None: ... + // + // foo(f) + // ``` + // + // Here, no arguments match the `ParamSpec` parameter, but `P` specializes to `(x: int)`, + // so we need to perform a sub-call with no arguments. + self.evaluate_paramspec_sub_call(None, paramspec); + } + } + + /// Try to evaluate a `ParamSpec` sub-call at the given argument index. + /// + /// The `ParamSpec` parameter is always going to be at the end of the parameter list but there + /// can be other parameter before it. If one of these prepended positional parameters contains + /// a free `ParamSpec`, we consider that variable in scope for the purposes of extracting the + /// components of that `ParamSpec`. For example: + /// + /// ```py + /// from typing import Callable + /// + /// def foo[**P](f: Callable[P, None], *args: P.args, **kwargs: P.kwargs) -> None: ... + /// + /// def f(x: int, y: str) -> None: ... + /// + /// foo(f, 1, "hello") # P: (x: int, y: str) + /// ``` + /// + /// Here, `P` specializes to `(x: int, y: str)` when `foo` is called with `f`, which means that + /// the parameters of `f` become a part of `foo`'s parameter list replacing the `ParamSpec` + /// parameter which is: + /// + /// ```py + /// def foo(f: Callable[[x: int, y: str], None], x: int, y: str) -> None: ... + /// ``` + /// + /// This method will check whether the parameter matching the argument at `argument_index` is + /// annotated with the components of `ParamSpec`, and if so, will invoke a sub-call considering + /// the arguments starting from `argument_index` against the specialized parameter list. + /// + /// Returns `true` if the sub-call was invoked, `false` otherwise. + fn try_paramspec_evaluation_at( + &mut self, + argument_index: usize, + paramspec: BoundTypeVarInstance<'db>, + ) -> bool { + let [parameter_index] = self.argument_matches[argument_index].parameters.as_slice() else { + return false; + }; + + if !self.signature.parameters()[*parameter_index] + .annotated_type() + .is_some_and(|ty| matches!(ty, Type::TypeVar(typevar) if typevar.is_paramspec(self.db))) + { + return false; + } + + self.evaluate_paramspec_sub_call(Some(argument_index), paramspec) + } + + /// Invoke a sub-call for the given `ParamSpec` type variable, using the remaining arguments. + /// + /// The remaining arguments start from `argument_index` if provided, otherwise no arguments + /// are passed. + /// + /// This method returns `false` if the specialization does not contain a mapping for the given + /// `paramspec`, contains an invalid mapping (i.e., not a `Callable` of kind `ParamSpecValue`) + /// or if the value is an overloaded callable. + /// + /// For more details, refer to [`Self::try_paramspec_evaluation_at`]. + fn evaluate_paramspec_sub_call( + &mut self, + argument_index: Option, + paramspec: BoundTypeVarInstance<'db>, + ) -> bool { + let Some(Type::Callable(callable)) = self + .specialization + .and_then(|specialization| specialization.get(self.db, paramspec)) + else { + return false; + }; + + if callable.kind(self.db) != CallableTypeKind::ParamSpecValue { + return false; + } + + // TODO: Support overloads? + let [signature] = callable.signatures(self.db).overloads.as_slice() else { + return false; + }; + + let sub_arguments = if let Some(argument_index) = argument_index { + self.arguments.start_from(argument_index) + } else { + CallArguments::none() + }; + + // TODO: What should be the `signature_type` here? + let bindings = match Bindings::from(Binding::single(self.signature_type, signature.clone())) + .match_parameters(self.db, &sub_arguments) + .check_types(self.db, &sub_arguments, self.call_expression_tcx, &[]) + { + Ok(bindings) => Box::new(bindings), + Err(CallError(_, bindings)) => bindings, + }; + + // SAFETY: `bindings` was created from a single binding above. + let [binding] = bindings.single_element().unwrap().overloads.as_slice() else { + unreachable!("ParamSpec sub-call should only contain a single binding"); + }; + + self.errors.extend(binding.errors.iter().cloned()); + + true } fn check_variadic_argument_type( @@ -3099,69 +3301,94 @@ impl<'a, 'db> ArgumentTypeChecker<'a, 'db> { ); } } else { - // TODO: Instead of calling the `keys` and `__getitem__` methods, we should instead - // get the constraints which satisfies the `SupportsKeysAndGetItem` protocol i.e., the - // key and value type. - let key_type = match argument_type - .member_lookup_with_policy( - self.db, - Name::new_static("keys"), - MemberLookupPolicy::NO_INSTANCE_FALLBACK, - ) - .place - { - Place::Defined(keys_method, _, Definedness::AlwaysDefined) => keys_method - .try_call(self.db, &CallArguments::none()) - .ok() - .and_then(|bindings| { - Some( - bindings - .return_type(self.db) - .try_iterate(self.db) - .ok()? - .homogeneous_element_type(self.db), + let mut value_type_fallback = |argument_type: Type<'db>| { + // TODO: Instead of calling the `keys` and `__getitem__` methods, we should + // instead get the constraints which satisfies the `SupportsKeysAndGetItem` + // protocol i.e., the key and value type. + let key_type = match argument_type + .member_lookup_with_policy( + self.db, + Name::new_static("keys"), + MemberLookupPolicy::NO_INSTANCE_FALLBACK, + ) + .place + { + Place::Defined(keys_method, _, Definedness::AlwaysDefined) => keys_method + .try_call(self.db, &CallArguments::none()) + .ok() + .and_then(|bindings| { + Some( + bindings + .return_type(self.db) + .try_iterate(self.db) + .ok()? + .homogeneous_element_type(self.db), + ) + }), + _ => None, + }; + + let Some(key_type) = key_type else { + self.errors.push(BindingError::KeywordsNotAMapping { + argument_index: adjusted_argument_index, + provided_ty: argument_type, + }); + return None; + }; + + if !key_type + .when_assignable_to( + self.db, + KnownClass::Str.to_instance(self.db), + self.inferable_typevars, + ) + .is_always_satisfied(self.db) + { + self.errors.push(BindingError::InvalidKeyType { + argument_index: adjusted_argument_index, + provided_ty: key_type, + }); + } + + Some( + match argument_type + .member_lookup_with_policy( + self.db, + Name::new_static("__getitem__"), + MemberLookupPolicy::NO_INSTANCE_FALLBACK, ) - }), - _ => None, + .place + { + Place::Defined(keys_method, _, Definedness::AlwaysDefined) => keys_method + .try_call(self.db, &CallArguments::positional([Type::unknown()])) + .ok() + .map_or_else(Type::unknown, |bindings| bindings.return_type(self.db)), + _ => Type::unknown(), + }, + ) }; - let Some(key_type) = key_type else { - self.errors.push(BindingError::KeywordsNotAMapping { - argument_index: adjusted_argument_index, - provided_ty: argument_type, - }); + let value_type = match argument_type { + Type::Union(union) => { + // See the comment in `match_variadic` for why we special case this situation. + match union.elements(self.db) { + [paramspec @ Type::TypeVar(typevar), other] + | [other, paramspec @ Type::TypeVar(typevar)] + if typevar.is_paramspec(self.db) && other.is_unknown() => + { + Some(*paramspec) + } + _ => value_type_fallback(argument_type), + } + } + Type::TypeVar(typevar) if typevar.is_paramspec(self.db) => Some(argument_type), + _ => value_type_fallback(argument_type), + }; + + let Some(value_type) = value_type else { return; }; - if !key_type - .when_assignable_to( - self.db, - KnownClass::Str.to_instance(self.db), - self.inferable_typevars, - ) - .is_always_satisfied(self.db) - { - self.errors.push(BindingError::InvalidKeyType { - argument_index: adjusted_argument_index, - provided_ty: key_type, - }); - } - - let value_type = match argument_type - .member_lookup_with_policy( - self.db, - Name::new_static("__getitem__"), - MemberLookupPolicy::NO_INSTANCE_FALLBACK, - ) - .place - { - Place::Defined(keys_method, _, Definedness::AlwaysDefined) => keys_method - .try_call(self.db, &CallArguments::positional([Type::unknown()])) - .ok() - .map_or_else(Type::unknown, |bindings| bindings.return_type(self.db)), - _ => Type::unknown(), - }; - for (argument_type, parameter_index) in std::iter::repeat(value_type).zip(&self.argument_matches[argument_index].parameters) { @@ -3339,6 +3566,7 @@ impl<'db> Binding<'db> { ) { let mut checker = ArgumentTypeChecker::new( db, + self.signature_type, &self.signature, arguments, &self.argument_matches, diff --git a/crates/ty_python_semantic/src/types/class.rs b/crates/ty_python_semantic/src/types/class.rs index 00b5bed3ec..514b312313 100644 --- a/crates/ty_python_semantic/src/types/class.rs +++ b/crates/ty_python_semantic/src/types/class.rs @@ -32,12 +32,13 @@ use crate::types::tuple::{TupleSpec, TupleType}; use crate::types::typed_dict::typed_dict_params_from_class_def; use crate::types::visitor::{TypeCollector, TypeVisitor, walk_type_with_recursion_guard}; use crate::types::{ - ApplyTypeMappingVisitor, Binding, BoundSuperType, CallableType, CallableTypes, DATACLASS_FLAGS, - DataclassFlags, DataclassParams, DeprecatedInstance, FindLegacyTypeVarsVisitor, - HasRelationToVisitor, IsDisjointVisitor, IsEquivalentVisitor, KnownInstanceType, - ManualPEP695TypeAliasType, MaterializationKind, NormalizedVisitor, PropertyInstanceType, - StringLiteralType, TypeAliasType, TypeContext, TypeMapping, TypeRelation, TypedDictParams, - UnionBuilder, VarianceInferable, binding_type, declaration_type, determine_upper_bound, + ApplyTypeMappingVisitor, Binding, BoundSuperType, CallableType, CallableTypeKind, + CallableTypes, DATACLASS_FLAGS, DataclassFlags, DataclassParams, DeprecatedInstance, + FindLegacyTypeVarsVisitor, HasRelationToVisitor, IsDisjointVisitor, IsEquivalentVisitor, + KnownInstanceType, ManualPEP695TypeAliasType, MaterializationKind, NormalizedVisitor, + PropertyInstanceType, StringLiteralType, TypeAliasType, TypeContext, TypeMapping, TypeRelation, + TypedDictParams, UnionBuilder, VarianceInferable, binding_type, declaration_type, + determine_upper_bound, }; use crate::{ Db, FxIndexMap, FxIndexSet, FxOrderSet, Program, @@ -1021,8 +1022,11 @@ impl<'db> ClassType<'db> { let getitem_signature = CallableSignature::from_overloads(overload_signatures); - let getitem_type = - Type::Callable(CallableType::new(db, getitem_signature, true)); + let getitem_type = Type::Callable(CallableType::new( + db, + getitem_signature, + CallableTypeKind::FunctionLike, + )); Member::definitely_declared(getitem_type) }) .unwrap_or_else(fallback_member_lookup) @@ -1188,7 +1192,7 @@ impl<'db> ClassType<'db> { let dunder_new_bound_method = CallableType::new( db, dunder_new_signature.bind_self(db, Some(instance_ty)), - true, + CallableTypeKind::FunctionLike, ); if returns_non_subclass { @@ -1257,7 +1261,7 @@ impl<'db> ClassType<'db> { Some(CallableType::new( db, synthesized_dunder_init_signature, - true, + CallableTypeKind::FunctionLike, )) } else { None @@ -2080,9 +2084,11 @@ impl<'db> ClassLiteral<'db> { ) -> PlaceAndQualifiers<'db> { fn into_function_like_callable<'d>(db: &'d dyn Db, ty: Type<'d>) -> Type<'d> { match ty { - Type::Callable(callable_ty) => { - Type::Callable(CallableType::new(db, callable_ty.signatures(db), true)) - } + Type::Callable(callable_ty) => Type::Callable(CallableType::new( + db, + callable_ty.signatures(db), + CallableTypeKind::FunctionLike, + )), Type::Union(union) => { union.map(db, |element| into_function_like_callable(db, *element)) } @@ -2677,7 +2683,7 @@ impl<'db> ClassLiteral<'db> { ), Some(Type::none(db)), )), - true, + CallableTypeKind::FunctionLike, ))); } @@ -2703,7 +2709,7 @@ impl<'db> ClassLiteral<'db> { Some(Type::Callable(CallableType::new( db, CallableSignature::from_overloads(overloads), - true, + CallableTypeKind::FunctionLike, ))) } (CodeGeneratorKind::TypedDict, "__getitem__") => { @@ -2730,7 +2736,7 @@ impl<'db> ClassLiteral<'db> { Some(Type::Callable(CallableType::new( db, CallableSignature::from_overloads(overloads), - true, + CallableTypeKind::FunctionLike, ))) } (CodeGeneratorKind::TypedDict, "get") => { @@ -2838,7 +2844,7 @@ impl<'db> ClassLiteral<'db> { Some(Type::Callable(CallableType::new( db, CallableSignature::from_overloads(overloads), - true, + CallableTypeKind::FunctionLike, ))) } (CodeGeneratorKind::TypedDict, "pop") => { @@ -2898,7 +2904,7 @@ impl<'db> ClassLiteral<'db> { Some(Type::Callable(CallableType::new( db, CallableSignature::from_overloads(overloads), - true, + CallableTypeKind::FunctionLike, ))) } (CodeGeneratorKind::TypedDict, "setdefault") => { @@ -2926,7 +2932,7 @@ impl<'db> ClassLiteral<'db> { Some(Type::Callable(CallableType::new( db, CallableSignature::from_overloads(overloads), - true, + CallableTypeKind::FunctionLike, ))) } (CodeGeneratorKind::TypedDict, "update") => { diff --git a/crates/ty_python_semantic/src/types/display.rs b/crates/ty_python_semantic/src/types/display.rs index 95ee3ad748..19ed71bbff 100644 --- a/crates/ty_python_semantic/src/types/display.rs +++ b/crates/ty_python_semantic/src/types/display.rs @@ -17,13 +17,16 @@ use crate::Db; use crate::types::class::{ClassLiteral, ClassType, GenericAlias}; use crate::types::function::{FunctionType, OverloadLiteral}; use crate::types::generics::{GenericContext, Specialization}; -use crate::types::signatures::{CallableSignature, Parameter, Parameters, Signature}; +use crate::types::signatures::{ + CallableSignature, Parameter, Parameters, ParametersKind, Signature, +}; use crate::types::tuple::TupleSpec; use crate::types::visitor::TypeVisitor; use crate::types::{ - BoundTypeVarIdentity, CallableType, IntersectionType, KnownBoundMethodType, KnownClass, - KnownInstanceType, MaterializationKind, Protocol, ProtocolInstanceType, SpecialFormType, - StringLiteralType, SubclassOfInner, Type, UnionType, WrapperDescriptorKind, visitor, + BoundTypeVarIdentity, CallableType, CallableTypeKind, IntersectionType, KnownBoundMethodType, + KnownClass, KnownInstanceType, MaterializationKind, Protocol, ProtocolInstanceType, + SpecialFormType, StringLiteralType, SubclassOfInner, Type, UnionType, WrapperDescriptorKind, + visitor, }; /// Settings for displaying types and signatures @@ -937,6 +940,9 @@ impl Display for DisplayBoundTypeVarIdentity<'_> { if let Some(binding_context) = self.bound_typevar_identity.binding_context.name(self.db) { write!(f, "@{binding_context}")?; } + if let Some(paramspec_attr) = self.bound_typevar_identity.paramspec_attr { + write!(f, ".{paramspec_attr}")?; + } Ok(()) } } @@ -1298,7 +1304,12 @@ impl<'db> DisplayGenericContext<'_, 'db> { f.write_str(", ")?; } f.set_invalid_syntax(); - f.write_str(bound_typevar.typevar(self.db).name(self.db))?; + let typevar = bound_typevar.typevar(self.db); + if typevar.is_paramspec(self.db) { + write!(f, "**{}", typevar.name(self.db))?; + } else { + f.write_str(typevar.name(self.db))?; + } } f.write_char(']') } @@ -1459,6 +1470,7 @@ impl<'db> CallableType<'db> { ) -> DisplayCallableType<'a, 'db> { DisplayCallableType { signatures: self.signatures(db), + kind: self.kind(db), db, settings, } @@ -1467,6 +1479,7 @@ impl<'db> CallableType<'db> { pub(crate) struct DisplayCallableType<'a, 'db> { signatures: &'a CallableSignature<'db>, + kind: CallableTypeKind, db: &'db dyn Db, settings: DisplaySettings<'db>, } @@ -1474,9 +1487,18 @@ pub(crate) struct DisplayCallableType<'a, 'db> { impl<'db> FmtDetailed<'db> for DisplayCallableType<'_, 'db> { fn fmt_detailed(&self, f: &mut TypeWriter<'_, '_, 'db>) -> fmt::Result { match self.signatures.overloads.as_slice() { - [signature] => signature - .display_with(self.db, self.settings.clone()) - .fmt_detailed(f), + [signature] => { + if matches!(self.kind, CallableTypeKind::ParamSpecValue) { + signature + .parameters() + .display_with(self.db, self.settings.clone()) + .fmt_detailed(f) + } else { + signature + .display_with(self.db, self.settings.clone()) + .fmt_detailed(f) + } + } signatures => { // TODO: How to display overloads? if !self.settings.multiline { @@ -1552,73 +1574,11 @@ impl<'db> FmtDetailed<'db> for DisplaySignature<'_, 'db> { f.set_invalid_syntax(); // When we exit this function, write a marker signaling we're ending a signature let mut f = f.with_detail(TypeDetail::SignatureEnd); - let multiline = self.settings.multiline && self.parameters.len() > 1; - // Opening parenthesis - f.write_char('(')?; - if multiline { - f.write_str("\n ")?; - } - if self.parameters.is_gradual() { - // We represent gradual form as `...` in the signature, internally the parameters still - // contain `(*args, **kwargs)` parameters. - f.write_str("...")?; - } else { - let mut star_added = false; - let mut needs_slash = false; - let mut first = true; - let arg_separator = if multiline { ",\n " } else { ", " }; - for parameter in self.parameters.as_slice() { - // Handle special separators - if !star_added && parameter.is_keyword_only() { - if !first { - f.write_str(arg_separator)?; - } - f.write_char('*')?; - star_added = true; - first = false; - } - if parameter.is_positional_only() { - needs_slash = true; - } else if needs_slash { - if !first { - f.write_str(arg_separator)?; - } - f.write_char('/')?; - needs_slash = false; - first = false; - } - - // Add comma before parameter if not first - if !first { - f.write_str(arg_separator)?; - } - - // Write parameter with range tracking - let param_name = parameter - .display_name() - .map(|name| name.to_string()) - .unwrap_or_default(); - parameter - .display_with(self.db, self.settings.singleline()) - .fmt_detailed(&mut f.with_detail(TypeDetail::Parameter(param_name)))?; - - first = false; - } - - if needs_slash { - if !first { - f.write_str(arg_separator)?; - } - f.write_char('/')?; - } - } - - if multiline { - f.write_char('\n')?; - } - // Closing parenthesis - f.write_char(')')?; + // Parameters + self.parameters + .display_with(self.db, self.settings.clone()) + .fmt_detailed(&mut f)?; // Return type let return_ty = self.return_ty.unwrap_or_else(Type::unknown); @@ -1646,6 +1606,120 @@ pub(crate) struct SignatureDisplayDetails { pub parameter_names: Vec, } +impl<'db> Parameters<'db> { + fn display_with<'a>( + &'a self, + db: &'db dyn Db, + settings: DisplaySettings<'db>, + ) -> DisplayParameters<'a, 'db> { + DisplayParameters { + parameters: self, + db, + settings, + } + } +} + +struct DisplayParameters<'a, 'db> { + parameters: &'a Parameters<'db>, + db: &'db dyn Db, + settings: DisplaySettings<'db>, +} + +impl<'db> FmtDetailed<'db> for DisplayParameters<'_, 'db> { + fn fmt_detailed(&self, f: &mut TypeWriter<'_, '_, 'db>) -> fmt::Result { + // For `ParamSpec` kind, the parameters still contain `*args` and `**kwargs`, but we + // display them as `**P` instead, so avoid multiline in that case. + // TODO: This might change once we support `Concatenate` + let multiline = self.settings.multiline + && self.parameters.len() > 1 + && !matches!( + self.parameters.kind(), + ParametersKind::Gradual | ParametersKind::ParamSpec(_) + ); + // Opening parenthesis + f.write_char('(')?; + if multiline { + f.write_str("\n ")?; + } + match self.parameters.kind() { + ParametersKind::Standard => { + let mut star_added = false; + let mut needs_slash = false; + let mut first = true; + let arg_separator = if multiline { ",\n " } else { ", " }; + + for parameter in self.parameters.as_slice() { + // Handle special separators + if !star_added && parameter.is_keyword_only() { + if !first { + f.write_str(arg_separator)?; + } + f.write_char('*')?; + star_added = true; + first = false; + } + if parameter.is_positional_only() { + needs_slash = true; + } else if needs_slash { + if !first { + f.write_str(arg_separator)?; + } + f.write_char('/')?; + needs_slash = false; + first = false; + } + + // Add comma before parameter if not first + if !first { + f.write_str(arg_separator)?; + } + + // Write parameter with range tracking + let param_name = parameter + .display_name() + .map(|name| name.to_string()) + .unwrap_or_default(); + parameter + .display_with(self.db, self.settings.singleline()) + .fmt_detailed(&mut f.with_detail(TypeDetail::Parameter(param_name)))?; + + first = false; + } + + if needs_slash { + if !first { + f.write_str(arg_separator)?; + } + f.write_char('/')?; + } + } + ParametersKind::Gradual => { + // We represent gradual form as `...` in the signature, internally the parameters still + // contain `(*args, **kwargs)` parameters. + f.write_str("...")?; + } + ParametersKind::ParamSpec(typevar) => { + write!(f, "**{}", typevar.name(self.db))?; + if let Some(name) = typevar.binding_context(self.db).name(self.db) { + write!(f, "@{name}")?; + } + } + } + if multiline { + f.write_char('\n')?; + } + // Closing parenthesis + f.write_char(')') + } +} + +impl Display for DisplayParameters<'_, '_> { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + self.fmt_detailed(&mut TypeWriter::Formatter(f)) + } +} + impl<'db> Parameter<'db> { fn display_with<'a>( &'a self, diff --git a/crates/ty_python_semantic/src/types/function.rs b/crates/ty_python_semantic/src/types/function.rs index 7380ec86f3..6b6c798615 100644 --- a/crates/ty_python_semantic/src/types/function.rs +++ b/crates/ty_python_semantic/src/types/function.rs @@ -79,8 +79,8 @@ use crate::types::narrow::ClassInfoConstraintFunction; use crate::types::signatures::{CallableSignature, Signature}; use crate::types::visitor::any_over_type; use crate::types::{ - ApplyTypeMappingVisitor, BoundMethodType, BoundTypeVarInstance, CallableType, ClassBase, - ClassLiteral, ClassType, DeprecatedInstance, DynamicType, FindLegacyTypeVarsVisitor, + ApplyTypeMappingVisitor, BoundMethodType, BoundTypeVarInstance, CallableType, CallableTypeKind, + ClassBase, ClassLiteral, ClassType, DeprecatedInstance, DynamicType, FindLegacyTypeVarsVisitor, HasRelationToVisitor, IsDisjointVisitor, IsEquivalentVisitor, KnownClass, KnownInstanceType, NormalizedVisitor, SpecialFormType, Truthiness, Type, TypeContext, TypeMapping, TypeRelation, UnionBuilder, binding_type, definition_expression_type, walk_signature, @@ -1007,7 +1007,7 @@ impl<'db> FunctionType<'db> { /// Convert the `FunctionType` into a [`CallableType`]. pub(crate) fn into_callable_type(self, db: &'db dyn Db) -> CallableType<'db> { - CallableType::new(db, self.signature(db), true) + CallableType::new(db, self.signature(db), CallableTypeKind::FunctionLike) } /// Convert the `FunctionType` into a [`BoundMethodType`]. diff --git a/crates/ty_python_semantic/src/types/generics.rs b/crates/ty_python_semantic/src/types/generics.rs index 432785b778..7db5f7e7a2 100644 --- a/crates/ty_python_semantic/src/types/generics.rs +++ b/crates/ty_python_semantic/src/types/generics.rs @@ -13,14 +13,15 @@ use crate::types::class::ClassType; use crate::types::class_base::ClassBase; use crate::types::constraints::ConstraintSet; use crate::types::instance::{Protocol, ProtocolInstanceType}; -use crate::types::signatures::Parameters; +use crate::types::signatures::{Parameters, ParametersKind}; use crate::types::tuple::{TupleSpec, TupleType, walk_tuple_type}; use crate::types::visitor::{TypeCollector, TypeVisitor, walk_type_with_recursion_guard}; use crate::types::{ ApplyTypeMappingVisitor, BindingContext, BoundTypeVarIdentity, BoundTypeVarInstance, - ClassLiteral, FindLegacyTypeVarsVisitor, HasRelationToVisitor, IsDisjointVisitor, - IsEquivalentVisitor, KnownClass, KnownInstanceType, MaterializationKind, NormalizedVisitor, - Type, TypeContext, TypeMapping, TypeRelation, TypeVarBoundOrConstraints, TypeVarIdentity, + CallableSignature, CallableType, CallableTypeKind, CallableTypes, ClassLiteral, + FindLegacyTypeVarsVisitor, HasRelationToVisitor, IsDisjointVisitor, IsEquivalentVisitor, + KnownClass, KnownInstanceType, MaterializationKind, NormalizedVisitor, Signature, Type, + TypeContext, TypeMapping, TypeRelation, TypeVarBoundOrConstraints, TypeVarIdentity, TypeVarInstance, TypeVarKind, TypeVarVariance, UnionType, declaration_type, walk_bound_type_var_type, }; @@ -347,6 +348,21 @@ impl<'db> GenericContext<'db> { self.variables_inner(db).values().copied() } + /// Returns `true` if this generic context contains exactly one `ParamSpec` and no other type + /// variables. + /// + /// For example: + /// ```py + /// class Foo[**P]: ... # true + /// class Bar[T, **P]: ... # false + /// class Baz[T]: ... # false + /// ``` + pub(crate) fn exactly_one_paramspec(self, db: &'db dyn Db) -> bool { + self.variables(db) + .exactly_one() + .is_ok_and(|bound_typevar| bound_typevar.is_paramspec(db)) + } + fn variable_from_type_param( db: &'db dyn Db, index: &'db SemanticIndex<'db>, @@ -363,8 +379,16 @@ impl<'db> GenericContext<'db> { }; Some(typevar.with_binding_context(db, binding_context)) } - // TODO: Support these! - ast::TypeParam::ParamSpec(_) => None, + ast::TypeParam::ParamSpec(node) => { + let definition = index.expect_single_definition(node); + let Type::KnownInstance(KnownInstanceType::TypeVar(typevar)) = + declaration_type(db, definition).inner_type() + else { + return None; + }; + Some(typevar.with_binding_context(db, binding_context)) + } + // TODO: Support this! ast::TypeParam::TypeVarTuple(_) => None, } } @@ -578,7 +602,15 @@ impl<'db> GenericContext<'db> { // // If there is a mapping for `T`, we want to map `U` to that type, not to `T`. To handle // this, we repeatedly apply the specialization to itself, until we reach a fixed point. - let mut expanded = vec![Type::unknown(); types.len()]; + let mut expanded = Vec::with_capacity(types.len()); + for typevar in variables.clone() { + if typevar.is_paramspec(db) { + expanded.push(Type::paramspec_value_callable(db, Parameters::unknown())); + } else { + expanded.push(Type::unknown()); + } + } + for (idx, (ty, typevar)) in types.zip(variables).enumerate() { if let Some(ty) = ty { expanded[idx] = ty; @@ -1409,6 +1441,15 @@ impl<'db> SpecializationBuilder<'db> { match self.types.entry(identity) { Entry::Occupied(mut entry) => { + // TODO: The spec says that when a ParamSpec is used multiple times in a signature, + // the type checker can solve it to a common behavioral supertype. We don't + // implement that yet so in case there are multiple ParamSpecs, use the + // specialization from the first occurrence. + // https://github.com/astral-sh/ty/issues/1778 + // https://github.com/astral-sh/ruff/pull/21445#discussion_r2591510145 + if bound_typevar.is_paramspec(self.db) { + return; + } *entry.get_mut() = UnionType::from_elements(self.db, [*entry.get(), ty]); } Entry::Vacant(entry) => { @@ -1669,6 +1710,47 @@ impl<'db> SpecializationBuilder<'db> { } } + (Type::Callable(formal_callable), _) => { + if let Some(actual_callable) = actual + .try_upcast_to_callable(self.db) + .and_then(CallableTypes::exactly_one) + { + // We're only interested in a formal callable of the form `Callable[P, ...]` for + // now where `P` is a `ParamSpec`. + // TODO: This would need to be updated once we support `Concatenate` + // TODO: What to do for overloaded callables? + let [signature] = formal_callable.signatures(self.db).as_slice() else { + return Ok(()); + }; + let formal_parameters = signature.parameters(); + let ParametersKind::ParamSpec(typevar) = formal_parameters.kind() else { + return Ok(()); + }; + let paramspec_value = match actual_callable.signatures(self.db).as_slice() { + [] => return Ok(()), + [actual_signature] => match actual_signature.parameters().kind() { + ParametersKind::ParamSpec(typevar) => Type::TypeVar(typevar), + _ => Type::Callable(CallableType::new( + self.db, + CallableSignature::single(Signature::new( + actual_signature.parameters().clone(), + None, + )), + CallableTypeKind::ParamSpecValue, + )), + }, + actual_signatures => Type::Callable(CallableType::new( + self.db, + CallableSignature::from_overloads(actual_signatures.iter().map( + |signature| Signature::new(signature.parameters().clone(), None), + )), + CallableTypeKind::ParamSpecValue, + )), + }; + self.add_type_mapping(typevar, paramspec_value, polarity, &mut f); + } + } + // TODO: Add more forms that we can structurally induct into: type[C], callables _ => {} } diff --git a/crates/ty_python_semantic/src/types/infer/builder.rs b/crates/ty_python_semantic/src/types/infer/builder.rs index b33883d234..6ddaea40a4 100644 --- a/crates/ty_python_semantic/src/types/infer/builder.rs +++ b/crates/ty_python_semantic/src/types/infer/builder.rs @@ -56,17 +56,17 @@ use crate::types::class::{CodeGeneratorKind, FieldKind, MetaclassErrorKind, Meth use crate::types::context::{InNoTypeCheck, InferContext}; use crate::types::cyclic::CycleDetector; use crate::types::diagnostic::{ - CALL_NON_CALLABLE, CONFLICTING_DECLARATIONS, CONFLICTING_METACLASS, CYCLIC_CLASS_DEFINITION, - CYCLIC_TYPE_ALIAS_DEFINITION, DIVISION_BY_ZERO, DUPLICATE_KW_ONLY, INCONSISTENT_MRO, - INVALID_ARGUMENT_TYPE, INVALID_ASSIGNMENT, INVALID_ATTRIBUTE_ACCESS, INVALID_BASE, - INVALID_DECLARATION, INVALID_GENERIC_CLASS, INVALID_KEY, INVALID_LEGACY_TYPE_VARIABLE, - INVALID_METACLASS, INVALID_NAMED_TUPLE, INVALID_NEWTYPE, INVALID_OVERLOAD, - INVALID_PARAMETER_DEFAULT, INVALID_PARAMSPEC, INVALID_PROTOCOL, INVALID_TYPE_ARGUMENTS, - INVALID_TYPE_FORM, INVALID_TYPE_GUARD_CALL, INVALID_TYPE_VARIABLE_CONSTRAINTS, - IncompatibleBases, NON_SUBSCRIPTABLE, POSSIBLY_MISSING_ATTRIBUTE, - POSSIBLY_MISSING_IMPLICIT_CALL, POSSIBLY_MISSING_IMPORT, SUBCLASS_OF_FINAL_CLASS, - UNDEFINED_REVEAL, UNRESOLVED_ATTRIBUTE, UNRESOLVED_GLOBAL, UNRESOLVED_IMPORT, - UNRESOLVED_REFERENCE, UNSUPPORTED_OPERATOR, USELESS_OVERLOAD_BODY, + self, CALL_NON_CALLABLE, CONFLICTING_DECLARATIONS, CONFLICTING_METACLASS, + CYCLIC_CLASS_DEFINITION, CYCLIC_TYPE_ALIAS_DEFINITION, DIVISION_BY_ZERO, DUPLICATE_KW_ONLY, + INCONSISTENT_MRO, INVALID_ARGUMENT_TYPE, INVALID_ASSIGNMENT, INVALID_ATTRIBUTE_ACCESS, + INVALID_BASE, INVALID_DECLARATION, INVALID_GENERIC_CLASS, INVALID_KEY, + INVALID_LEGACY_TYPE_VARIABLE, INVALID_METACLASS, INVALID_NAMED_TUPLE, INVALID_NEWTYPE, + INVALID_OVERLOAD, INVALID_PARAMETER_DEFAULT, INVALID_PARAMSPEC, INVALID_PROTOCOL, + INVALID_TYPE_ARGUMENTS, INVALID_TYPE_FORM, INVALID_TYPE_GUARD_CALL, + INVALID_TYPE_VARIABLE_CONSTRAINTS, IncompatibleBases, NON_SUBSCRIPTABLE, + POSSIBLY_MISSING_ATTRIBUTE, POSSIBLY_MISSING_IMPLICIT_CALL, POSSIBLY_MISSING_IMPORT, + SUBCLASS_OF_FINAL_CLASS, UNDEFINED_REVEAL, UNRESOLVED_ATTRIBUTE, UNRESOLVED_GLOBAL, + UNRESOLVED_IMPORT, UNRESOLVED_REFERENCE, UNSUPPORTED_OPERATOR, USELESS_OVERLOAD_BODY, hint_if_stdlib_attribute_exists_on_other_versions, hint_if_stdlib_submodule_exists_on_other_versions, report_attempted_protocol_instantiation, report_bad_dunder_set_call, report_cannot_pop_required_field_on_typed_dict, @@ -94,7 +94,6 @@ use crate::types::infer::nearest_enclosing_function; use crate::types::instance::SliceLiteral; use crate::types::mro::MroErrorKind; use crate::types::newtype::NewType; -use crate::types::signatures::{Parameter, Parameters, Signature}; use crate::types::subclass_of::SubclassOfInner; use crate::types::tuple::{Tuple, TupleLength, TupleSpec, TupleType}; use crate::types::typed_dict::{ @@ -103,16 +102,17 @@ use crate::types::typed_dict::{ }; use crate::types::visitor::any_over_type; use crate::types::{ - BoundTypeVarInstance, CallDunderError, CallableBinding, CallableType, CallableTypes, + BoundTypeVarInstance, CallDunderError, CallableBinding, CallableType, CallableTypeKind, ClassLiteral, ClassType, DataclassParams, DynamicType, InternedType, IntersectionBuilder, IntersectionType, KnownClass, KnownInstanceType, LintDiagnosticGuard, MemberLookupPolicy, - MetaclassCandidate, PEP695TypeAliasType, ParameterForm, SpecialFormType, SubclassOfType, - TrackedConstraintSet, Truthiness, Type, TypeAliasType, TypeAndQualifiers, TypeContext, - TypeQualifiers, TypeVarBoundOrConstraints, TypeVarBoundOrConstraintsEvaluation, - TypeVarDefaultEvaluation, TypeVarIdentity, TypeVarInstance, TypeVarKind, TypeVarVariance, - TypedDictType, UnionBuilder, UnionType, UnionTypeInstance, binding_type, infer_scope_types, - overrides, todo_type, + MetaclassCandidate, PEP695TypeAliasType, ParamSpecAttrKind, Parameter, ParameterForm, + Parameters, Signature, SpecialFormType, SubclassOfType, TrackedConstraintSet, Truthiness, Type, + TypeAliasType, TypeAndQualifiers, TypeContext, TypeQualifiers, TypeVarBoundOrConstraints, + TypeVarBoundOrConstraintsEvaluation, TypeVarDefaultEvaluation, TypeVarIdentity, + TypeVarInstance, TypeVarKind, TypeVarVariance, TypedDictType, UnionBuilder, UnionType, + UnionTypeInstance, binding_type, infer_scope_types, todo_type, }; +use crate::types::{CallableTypes, overrides}; use crate::types::{ClassBase, add_inferred_python_version_hint_to_diagnostic}; use crate::unpack::{EvaluationMode, UnpackPosition}; use crate::{Db, FxIndexSet, FxOrderSet, Program}; @@ -2347,7 +2347,7 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { Type::Callable(callable) => Some(Type::Callable(CallableType::new( db, callable.signatures(db), - true, + CallableTypeKind::FunctionLike, ))), Type::Union(union) => union .try_map(db, |element| into_function_like_callable(db, *element)), @@ -2612,7 +2612,41 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { todo_type!("PEP 646") } else { let annotated_type = self.file_expression_type(annotation); - Type::homogeneous_tuple(self.db(), annotated_type) + if let Type::TypeVar(typevar) = annotated_type + && typevar.is_paramspec(self.db()) + { + match typevar.paramspec_attr(self.db()) { + // `*args: P.args` + Some(ParamSpecAttrKind::Args) => annotated_type, + + // `*args: P.kwargs` + Some(ParamSpecAttrKind::Kwargs) => { + // TODO: Should this diagnostic be raised as part of + // `ArgumentTypeChecker`? + if let Some(builder) = + self.context.report_lint(&INVALID_TYPE_FORM, annotation) + { + let name = typevar.name(self.db()); + let mut diag = builder.into_diagnostic(format_args!( + "`{name}.kwargs` is valid only in `**kwargs` annotation", + )); + diag.set_primary_message(format_args!( + "Did you mean `{name}.args`?" + )); + diagnostic::add_type_expression_reference_link(diag); + } + Type::homogeneous_tuple(self.db(), Type::unknown()) + } + + // `*args: P` + None => { + // The diagnostic for this case is handled in `in_type_expression`. + Type::homogeneous_tuple(self.db(), Type::unknown()) + } + } + } else { + Type::homogeneous_tuple(self.db(), annotated_type) + } }; self.add_declaration_with_binding( @@ -2695,7 +2729,7 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { typing_self(db, self.scope(), Some(method_definition), class_literal) } - /// Set initial declared/inferred types for a `*args` variadic positional parameter. + /// Set initial declared/inferred types for a `**kwargs` keyword-variadic parameter. /// /// The annotated type is implicitly wrapped in a string-keyed dictionary. /// @@ -2708,11 +2742,48 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { definition: Definition<'db>, ) { if let Some(annotation) = parameter.annotation() { - let annotated_ty = self.file_expression_type(annotation); - let ty = KnownClass::Dict.to_specialized_instance( - self.db(), - [KnownClass::Str.to_instance(self.db()), annotated_ty], - ); + let annotated_type = self.file_expression_type(annotation); + let ty = if let Type::TypeVar(typevar) = annotated_type + && typevar.is_paramspec(self.db()) + { + match typevar.paramspec_attr(self.db()) { + // `**kwargs: P.args` + Some(ParamSpecAttrKind::Args) => { + // TODO: Should this diagnostic be raised as part of `ArgumentTypeChecker`? + if let Some(builder) = + self.context.report_lint(&INVALID_TYPE_FORM, annotation) + { + let name = typevar.name(self.db()); + let mut diag = builder.into_diagnostic(format_args!( + "`{name}.args` is valid only in `*args` annotation", + )); + diag.set_primary_message(format_args!("Did you mean `{name}.kwargs`?")); + diagnostic::add_type_expression_reference_link(diag); + } + KnownClass::Dict.to_specialized_instance( + self.db(), + [KnownClass::Str.to_instance(self.db()), Type::unknown()], + ) + } + + // `**kwargs: P.kwargs` + Some(ParamSpecAttrKind::Kwargs) => annotated_type, + + // `**kwargs: P` + None => { + // The diagnostic for this case is handled in `in_type_expression`. + KnownClass::Dict.to_specialized_instance( + self.db(), + [KnownClass::Str.to_instance(self.db()), Type::unknown()], + ) + } + } + } else { + KnownClass::Dict.to_specialized_instance( + self.db(), + [KnownClass::Str.to_instance(self.db()), annotated_type], + ) + }; self.add_declaration_with_binding( parameter.into(), definition, @@ -3337,20 +3408,81 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { }; let previous_deferred_state = std::mem::replace(&mut self.deferred_state, DeferredExpressionState::Deferred); - let default_ty = self.infer_paramspec_default(default); - self.store_expression_type(default, default_ty); + self.infer_paramspec_default(default); self.deferred_state = previous_deferred_state; } - fn infer_paramspec_default(&mut self, default: &ast::Expr) -> Type<'db> { - // This is the same logic as `TypeInferenceBuilder::infer_callable_parameter_types` except - // for the subscript branch which is required for `Concatenate` but that cannot be - // specified in this context. - match default { - ast::Expr::EllipsisLiteral(_) => { - Type::single_callable(self.db(), Signature::new(Parameters::gradual_form(), None)) + fn infer_paramspec_default(&mut self, default_expr: &ast::Expr) { + match default_expr { + ast::Expr::EllipsisLiteral(ellipsis) => { + let ty = self.infer_ellipsis_literal_expression(ellipsis); + self.store_expression_type(default_expr, ty); + return; } ast::Expr::List(ast::ExprList { elts, .. }) => { + let types = elts + .iter() + .map(|elt| self.infer_type_expression(elt)) + .collect::>(); + // N.B. We cannot represent a heterogeneous list of types in our type system, so we + // use a heterogeneous tuple type to represent the list of types instead. + self.store_expression_type( + default_expr, + Type::heterogeneous_tuple(self.db(), types), + ); + return; + } + ast::Expr::Name(_) => { + let ty = self.infer_type_expression(default_expr); + let is_paramspec = match ty { + Type::TypeVar(typevar) => typevar.is_paramspec(self.db()), + Type::KnownInstance(known_instance) => { + known_instance.class(self.db()) == KnownClass::ParamSpec + } + _ => false, + }; + if is_paramspec { + return; + } + } + _ => {} + } + if let Some(builder) = self.context.report_lint(&INVALID_PARAMSPEC, default_expr) { + builder.into_diagnostic( + "The default value to `ParamSpec` must be either \ + a list of types, `ParamSpec`, or `...`", + ); + } + } + + /// Infer the type of the expression that represents an explicit specialization of a + /// `ParamSpec` type variable. + fn infer_paramspec_explicit_specialization_value( + &mut self, + expr: &ast::Expr, + exactly_one_paramspec: bool, + ) -> Result, ()> { + let db = self.db(); + + match expr { + ast::Expr::EllipsisLiteral(_) => { + return Ok(Type::paramspec_value_callable( + db, + Parameters::gradual_form(), + )); + } + + ast::Expr::Tuple(ast::ExprTuple { elts, .. }) + | ast::Expr::List(ast::ExprList { elts, .. }) => { + // This should be taken care of by the caller. + if expr.is_tuple_expr() { + assert!( + exactly_one_paramspec, + "Inferring ParamSpec value during explicit specialization for a \ + tuple expression should only happen when it contains exactly one ParamSpec" + ); + } + let mut parameter_types = Vec::with_capacity(elts.len()); // Whether to infer `Todo` for the parameters @@ -3379,41 +3511,109 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { ) }; - Type::single_callable(self.db(), Signature::new(parameters, None)) + return Ok(Type::paramspec_value_callable(db, parameters)); } - ast::Expr::Name(name) => { - let name_ty = self.infer_name_load(name); - let is_paramspec = match name_ty { - Type::KnownInstance(known_instance) => { - known_instance.class(self.db()) == KnownClass::ParamSpec + + ast::Expr::Subscript(_) => { + // TODO: Support `Concatenate[...]` + return Ok(Type::paramspec_value_callable(db, Parameters::todo())); + } + + ast::Expr::Name(_) => { + let param_type = self.infer_type_expression(expr); + + match param_type { + Type::TypeVar(typevar) if typevar.is_paramspec(db) => { + return Ok(param_type); } - Type::NominalInstance(nominal) => { - nominal.has_known_class(self.db(), KnownClass::ParamSpec) + + Type::KnownInstance(known_instance) + if known_instance.class(self.db()) == KnownClass::ParamSpec => + { + // TODO: Emit diagnostic: "ParamSpec "P" is unbound" + return Err(()); } - _ => false, - }; - if is_paramspec { - name_ty - } else { - if let Some(builder) = self.context.report_lint(&INVALID_PARAMSPEC, default) { - builder.into_diagnostic( - "The default value to `ParamSpec` must be either a list of types, \ - `ParamSpec`, or `...`", - ); + + // This is to handle the following case: + // + // ```python + // from typing import ParamSpec + // + // class Foo[**P]: ... + // + // Foo[ParamSpec] # P: (ParamSpec, /) + // ``` + Type::NominalInstance(nominal) + if nominal.has_known_class(self.db(), KnownClass::ParamSpec) => + { + return Ok(Type::paramspec_value_callable( + db, + Parameters::new( + self.db(), + [ + Parameter::positional_only(None) + .with_annotated_type(param_type), + ], + ), + )); } - Type::unknown() + + _ if exactly_one_paramspec => { + // Square brackets are optional when `ParamSpec` is the only type variable + // being specialized. This means that a single name expression represents a + // parameter list with a single parameter. For example, + // + // ```python + // class OnlyParamSpec[**P]: ... + // + // OnlyParamSpec[int] # P: (int, /) + // ``` + let parameters = + if param_type.is_todo() { + Parameters::todo() + } else { + Parameters::new( + self.db(), + [Parameter::positional_only(None) + .with_annotated_type(param_type)], + ) + }; + return Ok(Type::paramspec_value_callable(db, parameters)); + } + + // This is specifically to handle a case where there are more than one type + // variables and at least one of them is a `ParamSpec` which is specialized + // using `typing.Any`. This isn't explicitly allowed in the spec, but both mypy + // and Pyright allows this and the ecosystem report suggested there are usages + // of this in the wild e.g., `staticmethod[Any, Any]`. For example, + // + // ```python + // class Foo[**P, T]: ... + // + // Foo[Any, int] # P: (Any, /), T: int + // ``` + Type::Dynamic(DynamicType::Any) => { + return Ok(Type::paramspec_value_callable( + db, + Parameters::gradual_form(), + )); + } + + _ => {} } } - _ => { - if let Some(builder) = self.context.report_lint(&INVALID_PARAMSPEC, default) { - builder.into_diagnostic( - "The default value to `ParamSpec` must be either a list of types, \ - `ParamSpec`, or `...`", - ); - } - Type::unknown() - } + + _ => {} } + + if let Some(builder) = self.context.report_lint(&INVALID_TYPE_ARGUMENTS, expr) { + builder.into_diagnostic( + "Type argument for `ParamSpec` must be either \ + a list of types, `ParamSpec`, `Concatenate`, or `...`", + ); + } + + Err(()) } fn infer_typevartuple_definition( @@ -9121,10 +9321,23 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { let ast::ExprAttribute { value, attr, .. } = attribute; - let value_type = self.infer_maybe_standalone_expression(value, TypeContext::default()); + let mut value_type = self.infer_maybe_standalone_expression(value, TypeContext::default()); let db = self.db(); let mut constraint_keys = vec![]; + if let Type::KnownInstance(KnownInstanceType::TypeVar(typevar)) = value_type + && typevar.is_paramspec(db) + && let Some(bound_typevar) = bind_typevar( + db, + self.index, + self.scope().file_scope_id(db), + self.typevar_binding_context, + typevar, + ) + { + value_type = Type::TypeVar(bound_typevar); + } + let mut assigned_type = None; if let Some(place_expr) = PlaceExpr::try_from_expr(attribute) { let (resolved, keys) = self.infer_place_load( @@ -11176,7 +11389,7 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { std::slice::from_ref(&*subscript.slice) }; - // TODO: Remove this once we support ParamSpec and Concatenate properly. This is necessary + // TODO: Remove this once we support Concatenate properly. This is necessary // to avoid a lot of false positives downstream, because we can't represent the typevar- // specialized `Callable` types yet. let num_arguments = arguments.len(); @@ -11184,27 +11397,7 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { let first_arg = &arguments[0]; let second_arg = &arguments[1]; - if first_arg.is_name_expr() { - let first_arg_ty = self.infer_expression(first_arg, TypeContext::default()); - if let Type::KnownInstance(KnownInstanceType::TypeVar(typevar)) = - first_arg_ty - && typevar.kind(self.db()).is_paramspec() - { - return todo_type!("Callable[..] specialized with ParamSpec"); - } - - if let Some(builder) = - self.context.report_lint(&INVALID_TYPE_FORM, subscript) - { - builder.into_diagnostic(format_args!( - "The first argument to `Callable` must be either a list of types, \ - ParamSpec, Concatenate, or `...`", - )); - } - return Type::KnownInstance(KnownInstanceType::Callable( - CallableType::unknown(self.db()), - )); - } else if first_arg.is_subscript_expr() { + if first_arg.is_subscript_expr() { let first_arg_ty = self.infer_expression(first_arg, TypeContext::default()); if let Type::Dynamic(DynamicType::UnknownGeneric(generic_context)) = first_arg_ty @@ -11436,22 +11629,18 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { let db = self.db(); let slice_node = subscript.slice.as_ref(); - // Extract type arguments from the subscript - let type_arguments: Vec> = match slice_node { + let exactly_one_paramspec = generic_context.exactly_one_paramspec(db); + let (type_arguments, store_inferred_type_arguments) = match slice_node { ast::Expr::Tuple(tuple) => { - let types: Vec<_> = tuple - .elts - .iter() - .map(|elt| self.infer_type_expression(elt)) - .collect(); - self.store_expression_type( - slice_node, - Type::heterogeneous_tuple(db, types.iter().copied()), - ); - types + if exactly_one_paramspec { + (std::slice::from_ref(slice_node), false) + } else { + (tuple.elts.as_slice(), true) + } } - _ => vec![self.infer_type_expression(slice_node)], + _ => (std::slice::from_ref(slice_node), false), }; + let mut inferred_type_arguments = Vec::with_capacity(type_arguments.len()); let typevars = generic_context.variables(db); let typevars_len = typevars.len(); @@ -11464,7 +11653,7 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { // Helper to get the AST node corresponding to the type argument at `index`. let get_node = |index: usize| -> ast::AnyNodeRef<'_> { match slice_node { - ast::Expr::Tuple(ast::ExprTuple { elts, .. }) => elts + ast::Expr::Tuple(ast::ExprTuple { elts, .. }) if !exactly_one_paramspec => elts .get(index) .expect("type argument index should not be out of range") .into(), @@ -11476,10 +11665,28 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { for (index, item) in typevars.zip_longest(type_arguments.iter()).enumerate() { match item { - EitherOrBoth::Both(typevar, &provided_type) => { + EitherOrBoth::Both(typevar, expr) => { if typevar.default_type(db).is_some() { typevar_with_defaults += 1; } + + let provided_type = if typevar.is_paramspec(db) { + match self.infer_paramspec_explicit_specialization_value( + expr, + exactly_one_paramspec, + ) { + Ok(paramspec_value) => paramspec_value, + Err(()) => { + has_error = true; + Type::unknown() + } + } + } else { + self.infer_type_expression(expr) + }; + + inferred_type_arguments.push(provided_type); + // TODO consider just accepting the given specialization without checking // against bounds/constraints, but recording the expression for deferred // checking at end of scope. This would avoid a lot of cycles caused by eagerly @@ -11543,17 +11750,20 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { } None => {} } + specialization_types.push(Some(provided_type)); } EitherOrBoth::Left(typevar) => { if typevar.default_type(db).is_none() { + // This is an error case, so no need to push into the specialization types. missing_typevars.push(typevar); } else { typevar_with_defaults += 1; + specialization_types.push(None); } - specialization_types.push(None); } - EitherOrBoth::Right(_) => { + EitherOrBoth::Right(expr) => { + inferred_type_arguments.push(self.infer_type_expression(expr)); first_excess_type_argument_index.get_or_insert(index); } } @@ -11605,10 +11815,23 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { has_error = true; } + if store_inferred_type_arguments { + self.store_expression_type( + slice_node, + Type::heterogeneous_tuple(db, inferred_type_arguments), + ); + } + if has_error { let unknowns = generic_context .variables(self.db()) - .map(|_| Some(Type::unknown())) + .map(|typevar| { + Some(if typevar.is_paramspec(db) { + Type::paramspec_value_callable(db, Parameters::unknown()) + } else { + Type::unknown() + }) + }) .collect::>(); return specialize(&unknowns); } @@ -12044,10 +12267,9 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { Type::Dynamic( DynamicType::TodoUnpack | DynamicType::TodoStarredExpression, ) => true, - Type::NominalInstance(nominal) => matches!( - nominal.known_class(self.db()), - Some(KnownClass::TypeVarTuple | KnownClass::ParamSpec) - ), + Type::NominalInstance(nominal) => { + nominal.has_known_class(self.db(), KnownClass::TypeVarTuple) + } _ => false, }, true, diff --git a/crates/ty_python_semantic/src/types/infer/builder/annotation_expression.rs b/crates/ty_python_semantic/src/types/infer/builder/annotation_expression.rs index e143b5c7fa..ce3b2a4a92 100644 --- a/crates/ty_python_semantic/src/types/infer/builder/annotation_expression.rs +++ b/crates/ty_python_semantic/src/types/infer/builder/annotation_expression.rs @@ -190,12 +190,16 @@ impl<'db> TypeInferenceBuilder<'db, '_> { } ast::Expr::Attribute(attribute) => match attribute.ctx { - ast::ExprContext::Load => infer_name_or_attribute( - self.infer_attribute_expression(attribute), - annotation, - self, - pep_613_policy, - ), + ast::ExprContext::Load => { + let attribute_type = self.infer_attribute_expression(attribute); + if let Type::TypeVar(typevar) = attribute_type + && typevar.paramspec_attr(self.db()).is_some() + { + TypeAndQualifiers::declared(attribute_type) + } else { + infer_name_or_attribute(attribute_type, annotation, self, pep_613_policy) + } + } ast::ExprContext::Invalid => TypeAndQualifiers::declared(Type::unknown()), ast::ExprContext::Store | ast::ExprContext::Del => TypeAndQualifiers::declared( todo_type!("Attribute expression annotation in Store/Del context"), diff --git a/crates/ty_python_semantic/src/types/infer/builder/type_expression.rs b/crates/ty_python_semantic/src/types/infer/builder/type_expression.rs index 56b0db5a09..114cedb734 100644 --- a/crates/ty_python_semantic/src/types/infer/builder/type_expression.rs +++ b/crates/ty_python_semantic/src/types/infer/builder/type_expression.rs @@ -3,19 +3,21 @@ use ruff_python_ast as ast; use super::{DeferredExpressionState, TypeInferenceBuilder}; use crate::FxOrderSet; +use crate::semantic_index::semantic_index; use crate::types::diagnostic::{ self, INVALID_TYPE_FORM, NON_SUBSCRIPTABLE, report_invalid_argument_number_to_special_form, report_invalid_arguments_to_callable, }; +use crate::types::generics::bind_typevar; use crate::types::infer::builder::InnerExpressionInferenceState; -use crate::types::signatures::{Parameter, Parameters, Signature}; +use crate::types::signatures::Signature; use crate::types::string_annotation::parse_string_annotation; use crate::types::tuple::{TupleSpecBuilder, TupleType}; -use crate::types::visitor::any_over_type; use crate::types::{ BindingContext, CallableType, DynamicType, GenericContext, IntersectionBuilder, KnownClass, - KnownInstanceType, LintDiagnosticGuard, SpecialFormType, SubclassOfType, Type, TypeAliasType, - TypeContext, TypeIsType, TypeMapping, UnionBuilder, UnionType, todo_type, + KnownInstanceType, LintDiagnosticGuard, Parameter, Parameters, SpecialFormType, SubclassOfType, + Type, TypeAliasType, TypeContext, TypeIsType, TypeMapping, UnionBuilder, UnionType, + any_over_type, todo_type, }; /// Type expressions @@ -821,7 +823,7 @@ impl<'db> TypeInferenceBuilder<'db, '_> { ) } - fn infer_subscript_type_expression( + pub(super) fn infer_subscript_type_expression( &mut self, subscript: &ast::ExprSubscript, value_ty: Type<'db>, @@ -1749,21 +1751,22 @@ impl<'db> TypeInferenceBuilder<'db, '_> { // `Callable[]`. return None; } - if any_over_type( - self.db(), - self.infer_name_load(name), - &|ty| match ty { - Type::KnownInstance(known_instance) => { - known_instance.class(self.db()) == KnownClass::ParamSpec - } - Type::NominalInstance(nominal) => { - nominal.has_known_class(self.db(), KnownClass::ParamSpec) - } - _ => false, - }, - true, - ) { - return Some(Parameters::todo()); + let name_ty = self.infer_name_load(name); + if let Type::KnownInstance(KnownInstanceType::TypeVar(typevar)) = name_ty + && typevar.is_paramspec(self.db()) + { + let index = semantic_index(self.db(), self.scope().file(self.db())); + let Some(bound_typevar) = bind_typevar( + self.db(), + index, + self.scope().file_scope_id(self.db()), + self.typevar_binding_context, + typevar, + ) else { + // TODO: What to do here? + return None; + }; + return Some(Parameters::paramspec(self.db(), bound_typevar)); } } _ => {} diff --git a/crates/ty_python_semantic/src/types/protocol_class.rs b/crates/ty_python_semantic/src/types/protocol_class.rs index 80ce2af47c..5d3719b8d9 100644 --- a/crates/ty_python_semantic/src/types/protocol_class.rs +++ b/crates/ty_python_semantic/src/types/protocol_class.rs @@ -6,7 +6,7 @@ use itertools::Itertools; use ruff_python_ast::name::Name; use rustc_hash::FxHashMap; -use crate::types::TypeContext; +use crate::types::{CallableTypeKind, TypeContext}; use crate::{ Db, FxOrderSet, place::{Definedness, Place, PlaceAndQualifiers, place_from_bindings, place_from_declarations}, @@ -986,5 +986,9 @@ fn protocol_bind_self<'db>( callable: CallableType<'db>, self_type: Option>, ) -> CallableType<'db> { - CallableType::new(db, callable.signatures(db).bind_self(db, self_type), false) + CallableType::new( + db, + callable.signatures(db).bind_self(db, self_type), + CallableTypeKind::Regular, + ) } diff --git a/crates/ty_python_semantic/src/types/signatures.rs b/crates/ty_python_semantic/src/types/signatures.rs index c76a086cfa..ffc224c8d5 100644 --- a/crates/ty_python_semantic/src/types/signatures.rs +++ b/crates/ty_python_semantic/src/types/signatures.rs @@ -29,10 +29,10 @@ use crate::types::generics::{ }; use crate::types::infer::nearest_enclosing_class; use crate::types::{ - ApplyTypeMappingVisitor, BindingContext, BoundTypeVarInstance, ClassLiteral, + ApplyTypeMappingVisitor, BindingContext, BoundTypeVarInstance, CallableTypeKind, ClassLiteral, FindLegacyTypeVarsVisitor, HasRelationToVisitor, IsDisjointVisitor, IsEquivalentVisitor, - KnownClass, MaterializationKind, NormalizedVisitor, TypeContext, TypeMapping, TypeRelation, - VarianceInferable, todo_type, + KnownClass, MaterializationKind, NormalizedVisitor, ParamSpecAttrKind, TypeContext, + TypeMapping, TypeRelation, VarianceInferable, todo_type, }; use crate::{Db, FxOrderSet}; use ruff_python_ast::{self as ast, name::Name}; @@ -151,6 +151,10 @@ impl<'db> CallableSignature<'db> { self.overloads.iter() } + pub(crate) fn as_slice(&self) -> &[Signature<'db>] { + &self.overloads + } + pub(crate) fn with_inherited_generic_context( &self, db: &'db dyn Db, @@ -197,6 +201,122 @@ impl<'db> CallableSignature<'db> { tcx: TypeContext<'db>, visitor: &ApplyTypeMappingVisitor<'db>, ) -> Self { + fn try_apply_type_mapping_for_paramspec<'db>( + db: &'db dyn Db, + self_signature: &Signature<'db>, + prefix_parameters: &[Parameter<'db>], + paramspec_value: Type<'db>, + type_mapping: &TypeMapping<'_, 'db>, + tcx: TypeContext<'db>, + visitor: &ApplyTypeMappingVisitor<'db>, + ) -> Option> { + match paramspec_value { + Type::TypeVar(typevar) if typevar.is_paramspec(db) => { + Some(CallableSignature::single(Signature { + generic_context: self_signature.generic_context.map(|context| { + type_mapping.update_signature_generic_context(db, context) + }), + definition: self_signature.definition, + parameters: Parameters::new( + db, + prefix_parameters + .iter() + .map(|param| { + param.apply_type_mapping_impl(db, type_mapping, tcx, visitor) + }) + .chain([ + Parameter::variadic(Name::new_static("args")) + .with_annotated_type(Type::TypeVar( + typevar + .with_paramspec_attr(db, ParamSpecAttrKind::Args), + )), + Parameter::keyword_variadic(Name::new_static("kwargs")) + .with_annotated_type(Type::TypeVar( + typevar + .with_paramspec_attr(db, ParamSpecAttrKind::Kwargs), + )), + ]), + ), + return_ty: self_signature + .return_ty + .map(|ty| ty.apply_type_mapping_impl(db, type_mapping, tcx, visitor)), + })) + } + Type::Callable(callable) + if matches!(callable.kind(db), CallableTypeKind::ParamSpecValue) => + { + Some(CallableSignature::from_overloads( + callable.signatures(db).iter().map(|signature| Signature { + generic_context: self_signature.generic_context.map(|context| { + type_mapping.update_signature_generic_context(db, context) + }), + definition: signature.definition, + parameters: Parameters::new( + db, + prefix_parameters + .iter() + .map(|param| { + param.apply_type_mapping_impl( + db, + type_mapping, + tcx, + visitor, + ) + }) + .chain(signature.parameters().iter().cloned()), + ), + return_ty: self_signature.return_ty.map(|ty| { + ty.apply_type_mapping_impl(db, type_mapping, tcx, visitor) + }), + }), + )) + } + _ => None, + } + } + + match type_mapping { + TypeMapping::Specialization(specialization) => { + if let [self_signature] = self.overloads.as_slice() + && let Some((prefix_parameters, paramspec)) = self_signature + .parameters + .find_paramspec_from_args_kwargs(db) + && let Some(paramspec_value) = specialization.get(db, paramspec) + && let Some(result) = try_apply_type_mapping_for_paramspec( + db, + self_signature, + prefix_parameters, + paramspec_value, + type_mapping, + tcx, + visitor, + ) + { + return result; + } + } + TypeMapping::PartialSpecialization(partial) => { + if let [self_signature] = self.overloads.as_slice() + && let Some((prefix_parameters, paramspec)) = self_signature + .parameters + .find_paramspec_from_args_kwargs(db) + && let Some(paramspec_value) = partial.get(db, paramspec) + && let Some(result) = try_apply_type_mapping_for_paramspec( + db, + self_signature, + prefix_parameters, + paramspec_value, + type_mapping, + tcx, + visitor, + ) + { + return result; + } + } + _ => {} + } + Self::from_overloads( self.overloads .iter() @@ -1321,15 +1441,18 @@ impl<'db> VarianceInferable<'db> for &Signature<'db> { } } -#[derive(Clone, Debug, PartialEq, Eq, Hash, salsa::Update, get_size2::GetSize)] -pub(crate) struct Parameters<'db> { - // TODO: use SmallVec here once invariance bug is fixed - value: Vec>, +// TODO: the spec also allows signatures like `Concatenate[int, ...]` or `Concatenate[int, P]`, +// which have some number of required positional-only parameters followed by a gradual form or a +// `ParamSpec`. Our representation will need some adjustments to represent that. - /// Whether this parameter list represents a gradual form using `...` as the only parameter. - /// - /// If this is `true`, the `value` will still contain the variadic and keyword-variadic - /// parameters. +/// The kind of parameter list represented. +#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, salsa::Update, get_size2::GetSize)] +pub(crate) enum ParametersKind<'db> { + /// A standard parameter list. + #[default] + Standard, + + /// Represents a gradual parameter list using `...` as the only parameter. /// /// Per [the typing specification], any signature with a variadic and a keyword-variadic /// argument, both annotated (explicitly or implicitly) as `Any` or `Unknown`, is considered @@ -1340,35 +1463,68 @@ pub(crate) struct Parameters<'db> { /// /// Note: This flag can also result from invalid forms of `Callable` annotations. /// - /// TODO: the spec also allows signatures like `Concatenate[int, ...]`, which have some number - /// of required positional parameters followed by a gradual form. Our representation will need - /// some adjustments to represent that. + /// [the typing specification]: https://typing.python.org/en/latest/spec/callables.html#meaning-of-in-callable + Gradual, + + /// Represents a parameter list containing a `ParamSpec` as the only parameter. /// - /// [the typing specification]: https://typing.python.org/en/latest/spec/callables.html#meaning-of-in-callable - is_gradual: bool, + /// Note that this is distinct from a parameter list _containing_ a `ParamSpec` which is + /// considered a standard parameter list that just contains a `ParamSpec`. + // TODO: Maybe we should use `find_paramspec_from_args_kwargs` instead of storing the typevar + // here? + ParamSpec(BoundTypeVarInstance<'db>), +} + +#[derive(Clone, Debug, PartialEq, Eq, Hash, salsa::Update, get_size2::GetSize)] +pub(crate) struct Parameters<'db> { + // TODO: use SmallVec here once invariance bug is fixed + value: Vec>, + kind: ParametersKind<'db>, } impl<'db> Parameters<'db> { + /// Create a new parameter list from an iterator of parameters. + /// + /// The kind of the parameter list is determined based on the provided parameters. + /// Specifically, if the parameters is made up of `*args` and `**kwargs` only, it checks + /// their annotated types to determine if they represent a gradual form or a `ParamSpec`. pub(crate) fn new( - _db: &'db dyn Db, + db: &'db dyn Db, parameters: impl IntoIterator>, ) -> Self { let value: Vec> = parameters.into_iter().collect(); - let is_gradual = value.len() == 2 - && value - .iter() - .any(|p| p.is_variadic() && p.annotated_type().is_none_or(|ty| ty.is_dynamic())) - && value.iter().any(|p| { - p.is_keyword_variadic() && p.annotated_type().is_none_or(|ty| ty.is_dynamic()) - }); - Self { value, is_gradual } + let mut kind = ParametersKind::Standard; + if let [p1, p2] = value.as_slice() + && p1.is_variadic() + && p2.is_keyword_variadic() + { + match (p1.annotated_type(), p2.annotated_type()) { + (None | Some(Type::Dynamic(_)), None | Some(Type::Dynamic(_))) => { + kind = ParametersKind::Gradual; + } + (Some(Type::TypeVar(args_typevar)), Some(Type::TypeVar(kwargs_typevar))) => { + if let (Some(ParamSpecAttrKind::Args), Some(ParamSpecAttrKind::Kwargs)) = ( + args_typevar.paramspec_attr(db), + kwargs_typevar.paramspec_attr(db), + ) { + let typevar = args_typevar.without_paramspec_attr(db); + if typevar.is_same_typevar_as(db, kwargs_typevar.without_paramspec_attr(db)) + { + kind = ParametersKind::ParamSpec(typevar); + } + } + } + _ => {} + } + } + Self { value, kind } } /// Create an empty parameter list. pub(crate) fn empty() -> Self { Self { value: Vec::new(), - is_gradual: false, + kind: ParametersKind::Standard, } } @@ -1376,8 +1532,12 @@ impl<'db> Parameters<'db> { self.value.as_slice() } + pub(crate) const fn kind(&self) -> ParametersKind<'db> { + self.kind + } + pub(crate) const fn is_gradual(&self) -> bool { - self.is_gradual + matches!(self.kind, ParametersKind::Gradual) } /// Return todo parameters: (*args: Todo, **kwargs: Todo) @@ -1389,7 +1549,7 @@ impl<'db> Parameters<'db> { Parameter::keyword_variadic(Name::new_static("kwargs")) .with_annotated_type(todo_type!("todo signature **kwargs")), ], - is_gradual: true, + kind: ParametersKind::Gradual, } } @@ -1406,7 +1566,21 @@ impl<'db> Parameters<'db> { Parameter::keyword_variadic(Name::new_static("kwargs")) .with_annotated_type(Type::Dynamic(DynamicType::Any)), ], - is_gradual: true, + kind: ParametersKind::Gradual, + } + } + + pub(crate) fn paramspec(db: &'db dyn Db, typevar: BoundTypeVarInstance<'db>) -> Self { + Self { + value: vec![ + Parameter::variadic(Name::new_static("args")).with_annotated_type(Type::TypeVar( + typevar.with_paramspec_attr(db, ParamSpecAttrKind::Args), + )), + Parameter::keyword_variadic(Name::new_static("kwargs")).with_annotated_type( + Type::TypeVar(typevar.with_paramspec_attr(db, ParamSpecAttrKind::Kwargs)), + ), + ], + kind: ParametersKind::ParamSpec(typevar), } } @@ -1424,7 +1598,7 @@ impl<'db> Parameters<'db> { Parameter::keyword_variadic(Name::new_static("kwargs")) .with_annotated_type(Type::Dynamic(DynamicType::Unknown)), ], - is_gradual: true, + kind: ParametersKind::Gradual, } } @@ -1436,10 +1610,48 @@ impl<'db> Parameters<'db> { Parameter::keyword_variadic(Name::new_static("kwargs")) .with_annotated_type(Type::object()), ], - is_gradual: false, + kind: ParametersKind::Standard, } } + /// Returns the bound `ParamSpec` type variable if the parameters contain a `ParamSpec`. + pub(crate) fn find_paramspec_from_args_kwargs<'a>( + &'a self, + db: &'db dyn Db, + ) -> Option<(&'a [Parameter<'db>], BoundTypeVarInstance<'db>)> { + let [prefix @ .., maybe_args, maybe_kwargs] = self.value.as_slice() else { + return None; + }; + + if !maybe_args.is_variadic() || !maybe_kwargs.is_keyword_variadic() { + return None; + } + + let (Type::TypeVar(args_typevar), Type::TypeVar(kwargs_typevar)) = + (maybe_args.annotated_type()?, maybe_kwargs.annotated_type()?) + else { + return None; + }; + + if matches!( + ( + args_typevar.paramspec_attr(db), + kwargs_typevar.paramspec_attr(db) + ), + ( + Some(ParamSpecAttrKind::Args), + Some(ParamSpecAttrKind::Kwargs) + ) + ) { + let typevar = args_typevar.without_paramspec_attr(db); + if typevar.is_same_typevar_as(db, kwargs_typevar.without_paramspec_attr(db)) { + return Some((prefix, typevar)); + } + } + + None + } + fn from_parameters( db: &'db dyn Db, definition: Definition<'db>, @@ -1627,13 +1839,13 @@ impl<'db> Parameters<'db> { // Note that we've already flipped the materialization in Signature.apply_type_mapping_impl(), // so the "top" materialization here is the bottom materialization of the whole Signature. // It might make sense to flip the materialization here instead. - TypeMapping::Materialize(MaterializationKind::Top) if self.is_gradual => { + TypeMapping::Materialize(MaterializationKind::Top) if self.is_gradual() => { Parameters::object() } // TODO: This is wrong, the empty Parameters is not a subtype of all materializations. // The bottom materialization is not currently representable and implementing it // properly requires extending the Parameters struct. - TypeMapping::Materialize(MaterializationKind::Bottom) if self.is_gradual => { + TypeMapping::Materialize(MaterializationKind::Bottom) if self.is_gradual() => { Parameters::empty() } _ => Self { @@ -1642,7 +1854,7 @@ impl<'db> Parameters<'db> { .iter() .map(|param| param.apply_type_mapping_impl(db, type_mapping, tcx, visitor)) .collect(), - is_gradual: self.is_gradual, + kind: self.kind, }, } } From 2f05ffa2c8506e7d9a6a704f47abaaf48e587ddd Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama <45118249+mtshiba@users.noreply.github.com> Date: Sat, 6 Dec 2025 02:34:39 +0900 Subject: [PATCH 29/65] [ty] more detailed description of "Size limit on unions of literals" in mdtest (#21804) --- .../resources/mdtest/call/union.md | 40 +++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/call/union.md b/crates/ty_python_semantic/resources/mdtest/call/union.md index 8d722288e4..09943c0801 100644 --- a/crates/ty_python_semantic/resources/mdtest/call/union.md +++ b/crates/ty_python_semantic/resources/mdtest/call/union.md @@ -229,9 +229,8 @@ def _(literals_2: Literal[0, 1], b: bool, flag: bool): literals_128 = 2 * literals_64 + literals_2 # Literal[0, 1, .., 127] literals_256 = 2 * literals_128 + literals_2 # Literal[0, 1, .., 255] - # Going beyond the MAX_UNION_LITERALS limit (currently 512): - literals_512 = 2 * literals_256 + literals_2 # Literal[0, 1, .., 511] - reveal_type(literals_512 if flag else 512) # revealed: int + # Going beyond the MAX_NON_RECURSIVE_UNION_LITERALS limit (currently 256): + reveal_type(literals_256 if flag else 256) # revealed: int # Going beyond the limit when another type is already part of the union bool_and_literals_128 = b if flag else literals_128 # bool | Literal[0, 1, ..., 127] @@ -245,6 +244,41 @@ def _(literals_2: Literal[0, 1], b: bool, flag: bool): reveal_type(two if flag else literals_256_shifted) # revealed: int ``` +Recursively defined literal union types are widened earlier than non-recursively defined types for +faster convergence. + +```py +class RecursiveAttr: + def __init__(self): + self.i = 0 + + def update(self): + self.i = self.i + 1 + +reveal_type(RecursiveAttr().i) # revealed: Unknown | int + +# Here are some recursive but saturating examples. Because it's difficult to statically determine whether literal unions saturate or diverge, +# we widen them early, even though they may actually be convergent. +class RecursiveAttr2: + def __init__(self): + self.i = 0 + + def update(self): + self.i = (self.i + 1) % 9 + +reveal_type(RecursiveAttr2().i) # revealed: Unknown | Literal[0, 1, 2, 3, 4, 5, 6, 7, 8] + +class RecursiveAttr3: + def __init__(self): + self.i = 0 + + def update(self): + self.i = (self.i + 1) % 10 + +# Going beyond the MAX_RECURSIVE_UNION_LITERALS limit: +reveal_type(RecursiveAttr3().i) # revealed: Unknown | int +``` + ## Simplifying gradually-equivalent types If two types are gradually equivalent, we can keep just one of them in a union: From b2fb421ddd6a5ecf928e8d15abb5bea63e4c3507 Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Fri, 5 Dec 2025 19:02:34 +0100 Subject: [PATCH 30/65] [ty] Add redeclaration LSP tests (#21812) --- crates/ty_ide/src/doc_highlights.rs | 48 ++++++++ crates/ty_ide/src/find_references.rs | 48 ++++++++ crates/ty_ide/src/goto_declaration.rs | 80 +++++++++++++ crates/ty_ide/src/goto_definition.rs | 80 +++++++++++++ crates/ty_ide/src/rename.rs | 155 ++++++++++++++++++++++++-- 5 files changed, 404 insertions(+), 7 deletions(-) diff --git a/crates/ty_ide/src/doc_highlights.rs b/crates/ty_ide/src/doc_highlights.rs index c7ad2a6c17..54ce3644c7 100644 --- a/crates/ty_ide/src/doc_highlights.rs +++ b/crates/ty_ide/src/doc_highlights.rs @@ -236,4 +236,52 @@ def test(): assert_snapshot!(test.document_highlights(), @"No highlights found"); } + + // TODO: Should only highlight the last use and the last declaration + #[test] + fn redeclarations() { + let test = CursorTest::builder() + .source( + "main.py", + r#" + a: str = "test" + + a: int = 10 + + print(a) + "#, + ) + .build(); + + assert_snapshot!(test.document_highlights(), @r#" + info[document_highlights]: Highlight 1 (Write) + --> main.py:2:1 + | + 2 | a: str = "test" + | ^ + 3 | + 4 | a: int = 10 + | + + info[document_highlights]: Highlight 2 (Write) + --> main.py:4:1 + | + 2 | a: str = "test" + 3 | + 4 | a: int = 10 + | ^ + 5 | + 6 | print(a) + | + + info[document_highlights]: Highlight 3 (Read) + --> main.py:6:7 + | + 4 | a: int = 10 + 5 | + 6 | print(a) + | ^ + | + "#); + } } diff --git a/crates/ty_ide/src/find_references.rs b/crates/ty_ide/src/find_references.rs index 48cbfaf9cf..e62608e555 100644 --- a/crates/ty_ide/src/find_references.rs +++ b/crates/ty_ide/src/find_references.rs @@ -2113,4 +2113,52 @@ func_alias() | "); } + + // TODO: Should only return references to the last declaration + #[test] + fn declarations() { + let test = CursorTest::builder() + .source( + "main.py", + r#" + a: str = "test" + + a: int = 10 + + print(a) + "#, + ) + .build(); + + assert_snapshot!(test.references(), @r#" + info[references]: Reference 1 + --> main.py:2:1 + | + 2 | a: str = "test" + | ^ + 3 | + 4 | a: int = 10 + | + + info[references]: Reference 2 + --> main.py:4:1 + | + 2 | a: str = "test" + 3 | + 4 | a: int = 10 + | ^ + 5 | + 6 | print(a) + | + + info[references]: Reference 3 + --> main.py:6:7 + | + 4 | a: int = 10 + 5 | + 6 | print(a) + | ^ + | + "#); + } } diff --git a/crates/ty_ide/src/goto_declaration.rs b/crates/ty_ide/src/goto_declaration.rs index 3e455b7533..8425654e19 100644 --- a/crates/ty_ide/src/goto_declaration.rs +++ b/crates/ty_ide/src/goto_declaration.rs @@ -2894,6 +2894,86 @@ def ab(a: int, *, c: int): ... "); } + // TODO: Should only return `a: int` + #[test] + fn redeclarations() { + let test = CursorTest::builder() + .source( + "main.py", + r#" + a: str = "test" + + a: int = 10 + + print(a) + + a: bool = True + "#, + ) + .build(); + + assert_snapshot!(test.goto_declaration(), @r#" + info[goto-declaration]: Declaration + --> main.py:2:1 + | + 2 | a: str = "test" + | ^ + 3 | + 4 | a: int = 10 + | + info: Source + --> main.py:6:7 + | + 4 | a: int = 10 + 5 | + 6 | print(a) + | ^ + 7 | + 8 | a: bool = True + | + + info[goto-declaration]: Declaration + --> main.py:4:1 + | + 2 | a: str = "test" + 3 | + 4 | a: int = 10 + | ^ + 5 | + 6 | print(a) + | + info: Source + --> main.py:6:7 + | + 4 | a: int = 10 + 5 | + 6 | print(a) + | ^ + 7 | + 8 | a: bool = True + | + + info[goto-declaration]: Declaration + --> main.py:8:1 + | + 6 | print(a) + 7 | + 8 | a: bool = True + | ^ + | + info: Source + --> main.py:6:7 + | + 4 | a: int = 10 + 5 | + 6 | print(a) + | ^ + 7 | + 8 | a: bool = True + | + "#); + } + impl CursorTest { fn goto_declaration(&self) -> String { let Some(targets) = goto_declaration(&self.db, self.cursor.file, self.cursor.offset) diff --git a/crates/ty_ide/src/goto_definition.rs b/crates/ty_ide/src/goto_definition.rs index 2e228b9702..00e08957cb 100644 --- a/crates/ty_ide/src/goto_definition.rs +++ b/crates/ty_ide/src/goto_definition.rs @@ -1714,6 +1714,86 @@ TracebackType assert_snapshot!(test.goto_definition(), @"No goto target found"); } + // TODO: Should only list `a: int` + #[test] + fn redeclarations() { + let test = CursorTest::builder() + .source( + "main.py", + r#" + a: str = "test" + + a: int = 10 + + print(a) + + a: bool = True + "#, + ) + .build(); + + assert_snapshot!(test.goto_definition(), @r#" + info[goto-definition]: Definition + --> main.py:2:1 + | + 2 | a: str = "test" + | ^ + 3 | + 4 | a: int = 10 + | + info: Source + --> main.py:6:7 + | + 4 | a: int = 10 + 5 | + 6 | print(a) + | ^ + 7 | + 8 | a: bool = True + | + + info[goto-definition]: Definition + --> main.py:4:1 + | + 2 | a: str = "test" + 3 | + 4 | a: int = 10 + | ^ + 5 | + 6 | print(a) + | + info: Source + --> main.py:6:7 + | + 4 | a: int = 10 + 5 | + 6 | print(a) + | ^ + 7 | + 8 | a: bool = True + | + + info[goto-definition]: Definition + --> main.py:8:1 + | + 6 | print(a) + 7 | + 8 | a: bool = True + | ^ + | + info: Source + --> main.py:6:7 + | + 4 | a: int = 10 + 5 | + 6 | print(a) + | ^ + 7 | + 8 | a: bool = True + | + "#); + } + impl CursorTest { fn goto_definition(&self) -> String { let Some(targets) = goto_definition(&self.db, self.cursor.file, self.cursor.offset) diff --git a/crates/ty_ide/src/rename.rs b/crates/ty_ide/src/rename.rs index 8cb5910c60..a8e91ebdcd 100644 --- a/crates/ty_ide/src/rename.rs +++ b/crates/ty_ide/src/rename.rs @@ -1427,12 +1427,11 @@ result = func(10, y=20) "); } - // TODO: This should rename all overloads #[test] fn rename_overloaded_function() { let test = CursorTest::builder() .source( - "lib1.py", + "lib.py", r#" from typing import overload, Any @@ -1450,16 +1449,16 @@ result = func(10, y=20) .source( "main.py", r#" - from lib2 import test + from lib import test test("test") "#, ) .build(); - assert_snapshot!(test.rename("better_name"), @r" - info[rename]: Rename symbol (found 1 locations) - --> lib1.py:5:5 + assert_snapshot!(test.rename("better_name"), @r#" + info[rename]: Rename symbol (found 3 locations) + --> lib.py:5:5 | 4 | @overload 5 | def test() -> None: ... @@ -1467,7 +1466,117 @@ result = func(10, y=20) 6 | @overload 7 | def test(a: str) -> str: ... | - "); + ::: main.py:2:17 + | + 2 | from lib import test + | ---- + 3 | + 4 | test("test") + | ---- + | + "#); + } + + #[test] + fn rename_overloaded_method() { + let test = CursorTest::builder() + .source( + "lib.py", + r#" + from typing import overload, Any + + class Test: + @overload + def test() -> None: ... + @overload + def test(a: str) -> str: ... + @overload + def test(a: int) -> int: ... + + def test(a: Any) -> Any: + return a + + "#, + ) + .source( + "main.py", + r#" + from lib import Test + + Test().test("test") + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r#" + info[rename]: Rename symbol (found 2 locations) + --> lib.py:6:9 + | + 4 | class Test: + 5 | @overload + 6 | def test() -> None: ... + | ^^^^ + 7 | @overload + 8 | def test(a: str) -> str: ... + | + ::: main.py:4:8 + | + 2 | from lib import Test + 3 | + 4 | Test().test("test") + | ---- + | + "#); + } + + #[test] + fn rename_overloaded_function_usage() { + let test = CursorTest::builder() + .source( + "lib.py", + r#" + from typing import overload, Any + + @overload + def test() -> None: ... + @overload + def test(a: str) -> str: ... + @overload + def test(a: int) -> int: ... + + def test(a: Any) -> Any: + return a + "#, + ) + .source( + "main.py", + r#" + from lib import test + + test("test") + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r#" + info[rename]: Rename symbol (found 3 locations) + --> main.py:2:17 + | + 2 | from lib import test + | ^^^^ + 3 | + 4 | test("test") + | ---- + | + ::: lib.py:5:5 + | + 4 | @overload + 5 | def test() -> None: ... + | ---- + 6 | @overload + 7 | def test(a: str) -> str: ... + | + "#); } #[test] @@ -2034,4 +2143,36 @@ result = func(10, y=20) | "); } + + // TODO: Should not rename the first declaration + #[test] + fn rename_redeclarations() { + let test = CursorTest::builder() + .source( + "main.py", + r#" + a: str = "test" + + a: int = 10 + + print(a) + "#, + ) + .build(); + + assert_snapshot!(test.rename("better_name"), @r#" + info[rename]: Rename symbol (found 3 locations) + --> main.py:2:1 + | + 2 | a: str = "test" + | ^ + 3 | + 4 | a: int = 10 + | - + 5 | + 6 | print(a) + | - + | + "#); + } } From 9714c589e1791471614861570e36a2fc24045a63 Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Fri, 5 Dec 2025 19:12:13 +0100 Subject: [PATCH 31/65] [ty] Support renaming import aliases (#21792) --- crates/ty_ide/src/goto.rs | 152 ++++++++++-------- crates/ty_ide/src/references.rs | 39 ++++- crates/ty_ide/src/rename.rs | 121 +++++++++++--- crates/ty_ide/src/semantic_tokens.rs | 6 +- .../src/types/ide_support.rs | 46 +++--- 5 files changed, 253 insertions(+), 111 deletions(-) diff --git a/crates/ty_ide/src/goto.rs b/crates/ty_ide/src/goto.rs index 359438bca3..217f8b420b 100644 --- a/crates/ty_ide/src/goto.rs +++ b/crates/ty_ide/src/goto.rs @@ -73,19 +73,29 @@ pub(crate) enum GotoTarget<'a> { /// ``` ImportModuleAlias { alias: &'a ast::Alias, + asname: &'a ast::Identifier, + }, + + /// In an import statement, the named under which the symbol is exported + /// in the imported file. + /// + /// ```py + /// from foo import bar as baz + /// ^^^ + /// ``` + ImportExportedName { + alias: &'a ast::Alias, + import_from: &'a ast::StmtImportFrom, }, /// Import alias in from import statement /// ```py /// from foo import bar as baz - /// ^^^ - /// from foo import bar as baz /// ^^^ /// ``` ImportSymbolAlias { alias: &'a ast::Alias, - range: TextRange, - import_from: &'a ast::StmtImportFrom, + asname: &'a ast::Identifier, }, /// Go to on the exception handler variable @@ -290,8 +300,9 @@ impl GotoTarget<'_> { GotoTarget::FunctionDef(function) => function.inferred_type(model), GotoTarget::ClassDef(class) => class.inferred_type(model), GotoTarget::Parameter(parameter) => parameter.inferred_type(model), - GotoTarget::ImportSymbolAlias { alias, .. } => alias.inferred_type(model), - GotoTarget::ImportModuleAlias { alias } => alias.inferred_type(model), + GotoTarget::ImportSymbolAlias { alias, .. } + | GotoTarget::ImportModuleAlias { alias, .. } + | GotoTarget::ImportExportedName { alias, .. } => alias.inferred_type(model), GotoTarget::ExceptVariable(except) => except.inferred_type(model), GotoTarget::KeywordArgument { keyword, .. } => keyword.value.inferred_type(model), // When asking the type of a callable, usually you want the callable itself? @@ -378,7 +389,9 @@ impl GotoTarget<'_> { alias_resolution: ImportAliasResolution, ) -> Option> { let definitions = match self { - GotoTarget::Expression(expression) => definitions_for_expression(model, *expression), + GotoTarget::Expression(expression) => { + definitions_for_expression(model, *expression, alias_resolution) + } // For already-defined symbols, they are their own definitions GotoTarget::FunctionDef(function) => Some(vec![ResolvedDefinition::Definition( function.definition(model), @@ -393,22 +406,21 @@ impl GotoTarget<'_> { )]), // For import aliases (offset within 'y' or 'z' in "from x import y as z") - GotoTarget::ImportSymbolAlias { - alias, import_from, .. - } => { - if let Some(asname) = alias.asname.as_ref() - && alias_resolution == ImportAliasResolution::PreserveAliases - { - Some(definitions_for_name(model, asname.as_str(), asname.into())) - } else { - let symbol_name = alias.name.as_str(); - Some(definitions_for_imported_symbol( - model, - import_from, - symbol_name, - alias_resolution, - )) - } + GotoTarget::ImportSymbolAlias { asname, .. } => Some(definitions_for_name( + model, + asname.as_str(), + AnyNodeRef::from(*asname), + alias_resolution, + )), + + GotoTarget::ImportExportedName { alias, import_from } => { + let symbol_name = alias.name.as_str(); + Some(definitions_for_imported_symbol( + model, + import_from, + symbol_name, + alias_resolution, + )) } GotoTarget::ImportModuleComponent { @@ -423,15 +435,12 @@ impl GotoTarget<'_> { } // Handle import aliases (offset within 'z' in "import x.y as z") - GotoTarget::ImportModuleAlias { alias } => { - if let Some(asname) = alias.asname.as_ref() - && alias_resolution == ImportAliasResolution::PreserveAliases - { - Some(definitions_for_name(model, asname.as_str(), asname.into())) - } else { - definitions_for_module(model, Some(alias.name.as_str()), 0) - } - } + GotoTarget::ImportModuleAlias { asname, .. } => Some(definitions_for_name( + model, + asname.as_str(), + AnyNodeRef::from(*asname), + alias_resolution, + )), // Handle keyword arguments in call expressions GotoTarget::KeywordArgument { @@ -454,12 +463,22 @@ impl GotoTarget<'_> { // because they're not expressions GotoTarget::PatternMatchRest(pattern_mapping) => { pattern_mapping.rest.as_ref().map(|name| { - definitions_for_name(model, name.as_str(), AnyNodeRef::Identifier(name)) + definitions_for_name( + model, + name.as_str(), + AnyNodeRef::Identifier(name), + alias_resolution, + ) }) } GotoTarget::PatternMatchAsName(pattern_as) => pattern_as.name.as_ref().map(|name| { - definitions_for_name(model, name.as_str(), AnyNodeRef::Identifier(name)) + definitions_for_name( + model, + name.as_str(), + AnyNodeRef::Identifier(name), + alias_resolution, + ) }), GotoTarget::PatternKeywordArgument(pattern_keyword) => { @@ -468,12 +487,18 @@ impl GotoTarget<'_> { model, name.as_str(), AnyNodeRef::Identifier(name), + alias_resolution, )) } GotoTarget::PatternMatchStarName(pattern_star) => { pattern_star.name.as_ref().map(|name| { - definitions_for_name(model, name.as_str(), AnyNodeRef::Identifier(name)) + definitions_for_name( + model, + name.as_str(), + AnyNodeRef::Identifier(name), + alias_resolution, + ) }) } @@ -481,9 +506,18 @@ impl GotoTarget<'_> { // // Prefer the function impl over the callable so that its docstrings win if defined. GotoTarget::Call { callable, call } => { - let mut definitions = definitions_for_callable(model, call); + let mut definitions = Vec::new(); + + // We prefer the specific overload for hover, go-to-def etc. However, + // `definitions_for_callable` always resolves import aliases. That's why we + // skip it in cases import alias resolution is turned of (rename, highlight references). + if alias_resolution == ImportAliasResolution::ResolveAliases { + definitions.extend(definitions_for_callable(model, call)); + } + let expr_definitions = - definitions_for_expression(model, *callable).unwrap_or_default(); + definitions_for_expression(model, *callable, alias_resolution) + .unwrap_or_default(); definitions.extend(expr_definitions); if definitions.is_empty() { @@ -517,7 +551,7 @@ impl GotoTarget<'_> { let subexpr = covering_node(subast.syntax().into(), *subrange) .node() .as_expr_ref()?; - definitions_for_expression(&submodel, subexpr) + definitions_for_expression(&submodel, subexpr, alias_resolution) } // nonlocal and global are essentially loads, but again they're statements, @@ -527,6 +561,7 @@ impl GotoTarget<'_> { model, identifier.as_str(), AnyNodeRef::Identifier(identifier), + alias_resolution, )) } @@ -537,6 +572,7 @@ impl GotoTarget<'_> { model, name.as_str(), AnyNodeRef::Identifier(name), + alias_resolution, )) } @@ -546,6 +582,7 @@ impl GotoTarget<'_> { model, name.as_str(), AnyNodeRef::Identifier(name), + alias_resolution, )) } @@ -555,6 +592,7 @@ impl GotoTarget<'_> { model, name.as_str(), AnyNodeRef::Identifier(name), + alias_resolution, )) } }; @@ -580,12 +618,9 @@ impl GotoTarget<'_> { GotoTarget::FunctionDef(function) => Some(Cow::Borrowed(function.name.as_str())), GotoTarget::ClassDef(class) => Some(Cow::Borrowed(class.name.as_str())), GotoTarget::Parameter(parameter) => Some(Cow::Borrowed(parameter.name.as_str())), - GotoTarget::ImportSymbolAlias { alias, .. } => { - if let Some(asname) = &alias.asname { - Some(Cow::Borrowed(asname.as_str())) - } else { - Some(Cow::Borrowed(alias.name.as_str())) - } + GotoTarget::ImportSymbolAlias { asname, .. } => Some(Cow::Borrowed(asname.as_str())), + GotoTarget::ImportExportedName { alias, .. } => { + Some(Cow::Borrowed(alias.name.as_str())) } GotoTarget::ImportModuleComponent { module_name, @@ -599,13 +634,7 @@ impl GotoTarget<'_> { Some(Cow::Borrowed(module_name)) } } - GotoTarget::ImportModuleAlias { alias } => { - if let Some(asname) = &alias.asname { - Some(Cow::Borrowed(asname.as_str())) - } else { - Some(Cow::Borrowed(alias.name.as_str())) - } - } + GotoTarget::ImportModuleAlias { asname, .. } => Some(Cow::Borrowed(asname.as_str())), GotoTarget::ExceptVariable(except) => { Some(Cow::Borrowed(except.name.as_ref()?.as_str())) } @@ -667,7 +696,7 @@ impl GotoTarget<'_> { // Is the offset within the alias name (asname) part? if let Some(asname) = &alias.asname { if asname.range.contains_inclusive(offset) { - return Some(GotoTarget::ImportModuleAlias { alias }); + return Some(GotoTarget::ImportModuleAlias { alias, asname }); } } @@ -699,21 +728,13 @@ impl GotoTarget<'_> { // Is the offset within the alias name (asname) part? if let Some(asname) = &alias.asname { if asname.range.contains_inclusive(offset) { - return Some(GotoTarget::ImportSymbolAlias { - alias, - range: asname.range, - import_from, - }); + return Some(GotoTarget::ImportSymbolAlias { alias, asname }); } } // Is the offset in the original name part? if alias.name.range.contains_inclusive(offset) { - return Some(GotoTarget::ImportSymbolAlias { - alias, - range: alias.name.range, - import_from, - }); + return Some(GotoTarget::ImportExportedName { alias, import_from }); } None @@ -893,12 +914,13 @@ impl Ranged for GotoTarget<'_> { GotoTarget::FunctionDef(function) => function.name.range, GotoTarget::ClassDef(class) => class.name.range, GotoTarget::Parameter(parameter) => parameter.name.range, - GotoTarget::ImportSymbolAlias { range, .. } => *range, + GotoTarget::ImportSymbolAlias { asname, .. } => asname.range, + Self::ImportExportedName { alias, .. } => alias.name.range, GotoTarget::ImportModuleComponent { component_range, .. } => *component_range, GotoTarget::StringAnnotationSubexpr { subrange, .. } => *subrange, - GotoTarget::ImportModuleAlias { alias } => alias.asname.as_ref().unwrap().range, + GotoTarget::ImportModuleAlias { asname, .. } => asname.range, GotoTarget::ExceptVariable(except) => except.name.as_ref().unwrap().range, GotoTarget::KeywordArgument { keyword, .. } => keyword.arg.as_ref().unwrap().range, GotoTarget::PatternMatchRest(rest) => rest.rest.as_ref().unwrap().range, @@ -955,12 +977,14 @@ fn convert_resolved_definitions_to_targets<'db>( fn definitions_for_expression<'db>( model: &SemanticModel<'db>, expression: ruff_python_ast::ExprRef<'_>, + alias_resolution: ImportAliasResolution, ) -> Option>> { match expression { ast::ExprRef::Name(name) => Some(definitions_for_name( model, name.id.as_str(), expression.into(), + alias_resolution, )), ast::ExprRef::Attribute(attribute) => Some(ty_python_semantic::definitions_for_attribute( model, attribute, diff --git a/crates/ty_ide/src/references.rs b/crates/ty_ide/src/references.rs index d759b1daed..5bec65a356 100644 --- a/crates/ty_ide/src/references.rs +++ b/crates/ty_ide/src/references.rs @@ -37,6 +37,38 @@ pub enum ReferencesMode { DocumentHighlights, } +impl ReferencesMode { + pub(super) fn to_import_alias_resolution(self) -> ImportAliasResolution { + match self { + // Resolve import aliases for find references: + // ```py + // from warnings import deprecated as my_deprecated + // + // @my_deprecated + // def foo + // ``` + // + // When finding references on `my_deprecated`, we want to find all usages of `deprecated` across the entire + // project. + Self::References | Self::ReferencesSkipDeclaration => { + ImportAliasResolution::ResolveAliases + } + // For rename, don't resolve import aliases. + // + // ```py + // from warnings import deprecated as my_deprecated + // + // @my_deprecated + // def foo + // ``` + // When renaming `my_deprecated`, only rename the alias, but not the original definition in `warnings`. + Self::Rename | Self::RenameMultiFile | Self::DocumentHighlights => { + ImportAliasResolution::PreserveAliases + } + } + } +} + /// Find all references to a symbol at the given position. /// Search for references across all files in the project. pub(crate) fn references( @@ -45,12 +77,9 @@ pub(crate) fn references( goto_target: &GotoTarget, mode: ReferencesMode, ) -> Option> { - // Get the definitions for the symbol at the cursor position - - // When finding references, do not resolve any local aliases. let model = SemanticModel::new(db, file); let target_definitions = goto_target - .get_definition_targets(&model, ImportAliasResolution::PreserveAliases)? + .get_definition_targets(&model, mode.to_import_alias_resolution())? .declaration_targets(db)?; // Extract the target text from the goto target for fast comparison @@ -318,7 +347,7 @@ impl LocalReferencesFinder<'_> { { // Get the definitions for this goto target if let Some(current_definitions) = goto_target - .get_definition_targets(self.model, ImportAliasResolution::PreserveAliases) + .get_definition_targets(self.model, self.mode.to_import_alias_resolution()) .and_then(|definitions| definitions.declaration_targets(self.model.db())) { // Check if any of the current definitions match our target definitions diff --git a/crates/ty_ide/src/rename.rs b/crates/ty_ide/src/rename.rs index a8e91ebdcd..fe51f06615 100644 --- a/crates/ty_ide/src/rename.rs +++ b/crates/ty_ide/src/rename.rs @@ -3,7 +3,7 @@ use crate::references::{ReferencesMode, references}; use crate::{Db, ReferenceTarget}; use ruff_db::files::File; use ruff_text_size::{Ranged, TextSize}; -use ty_python_semantic::{ImportAliasResolution, SemanticModel}; +use ty_python_semantic::SemanticModel; /// Returns the range of the symbol if it can be renamed, None if not. pub fn can_rename(db: &dyn Db, file: File, offset: TextSize) -> Option { @@ -24,26 +24,22 @@ pub fn can_rename(db: &dyn Db, file: File, offset: TextSize) -> Option main.py:3:20 + | + 2 | import warnings + 3 | import warnings as abc + | ^^^ + 4 | + 5 | x = abc + | --- + 6 | y = warnings + | + "); + } + + #[test] + fn import_alias_to_first_party_definition() { + let test = CursorTest::builder() + .source("lib.py", "def deprecated(): pass") + .source( + "main.py", + r#" + import lib as lib2 + + x = lib2 + "#, + ) + .build(); + + assert_snapshot!(test.rename("z"), @r" + info[rename]: Rename symbol (found 2 locations) + --> main.py:2:15 + | + 2 | import lib as lib2 + | ^^^^ + 3 | + 4 | x = lib2 + | ---- + | + "); + } + + #[test] + fn imported_first_party_definition() { + let test = CursorTest::builder() + .source("lib.py", "def deprecated(): pass") + .source( + "main.py", + r#" + from lib import deprecated + + x = deprecated + "#, + ) + .build(); + + assert_snapshot!(test.rename("z"), @r" + info[rename]: Rename symbol (found 3 locations) + --> main.py:2:17 + | + 2 | from lib import deprecated + | ^^^^^^^^^^ + 3 | + 4 | x = deprecated + | ---------- + | + ::: lib.py:1:5 + | + 1 | def deprecated(): pass + | ---------- + | + "); } - // TODO Should rename the alias #[test] fn import_alias_use() { let test = CursorTest::builder() @@ -1221,7 +1286,19 @@ result = func(10, y=20) ) .build(); - assert_snapshot!(test.rename("z"), @"Cannot rename"); + assert_snapshot!(test.rename("z"), @r" + info[rename]: Rename symbol (found 2 locations) + --> main.py:3:20 + | + 2 | import warnings + 3 | import warnings as abc + | ^^^ + 4 | + 5 | x = abc + | --- + 6 | y = warnings + | + "); } #[test] diff --git a/crates/ty_ide/src/semantic_tokens.rs b/crates/ty_ide/src/semantic_tokens.rs index 88e48d1470..5667d1506f 100644 --- a/crates/ty_ide/src/semantic_tokens.rs +++ b/crates/ty_ide/src/semantic_tokens.rs @@ -259,7 +259,11 @@ impl<'db> SemanticTokenVisitor<'db> { fn classify_name(&self, name: &ast::ExprName) -> (SemanticTokenType, SemanticTokenModifier) { // First try to classify the token based on its definition kind. - let definition = definition_for_name(self.model, name); + let definition = definition_for_name( + self.model, + name, + ty_python_semantic::ImportAliasResolution::ResolveAliases, + ); if let Some(definition) = definition { let name_str = name.id.as_str(); diff --git a/crates/ty_python_semantic/src/types/ide_support.rs b/crates/ty_python_semantic/src/types/ide_support.rs index 111edcabc5..a74cc82f7e 100644 --- a/crates/ty_python_semantic/src/types/ide_support.rs +++ b/crates/ty_python_semantic/src/types/ide_support.rs @@ -1,5 +1,6 @@ use std::collections::HashMap; +use crate::FxIndexSet; use crate::place::builtins_module_scope; use crate::semantic_index::definition::Definition; use crate::semantic_index::definition::DefinitionKind; @@ -24,8 +25,9 @@ use resolve_definition::{find_symbol_in_scope, resolve_definition}; pub fn definition_for_name<'db>( model: &SemanticModel<'db>, name: &ast::ExprName, + alias_resolution: ImportAliasResolution, ) -> Option> { - let definitions = definitions_for_name(model, name.id.as_str(), name.into()); + let definitions = definitions_for_name(model, name.id.as_str(), name.into(), alias_resolution); // Find the first valid definition and return its kind for declaration in definitions { @@ -43,6 +45,7 @@ pub fn definitions_for_name<'db>( model: &SemanticModel<'db>, name_str: &str, node: AnyNodeRef<'_>, + alias_resolution: ImportAliasResolution, ) -> Vec> { let db = model.db(); let file = model.file(); @@ -53,7 +56,7 @@ pub fn definitions_for_name<'db>( return vec![]; }; - let mut all_definitions = Vec::new(); + let mut all_definitions = FxIndexSet::default(); // Search through the scope hierarchy: start from the current scope and // traverse up through parent scopes to find definitions @@ -89,13 +92,13 @@ pub fn definitions_for_name<'db>( for binding in global_bindings { if let Some(def) = binding.binding.definition() { - all_definitions.push(def); + all_definitions.insert(def); } } for declaration in global_declarations { if let Some(def) = declaration.declaration.definition() { - all_definitions.push(def); + all_definitions.insert(def); } } } @@ -116,13 +119,13 @@ pub fn definitions_for_name<'db>( for binding in bindings { if let Some(def) = binding.binding.definition() { - all_definitions.push(def); + all_definitions.insert(def); } } for declaration in declarations { if let Some(def) = declaration.declaration.definition() { - all_definitions.push(def); + all_definitions.insert(def); } } @@ -136,21 +139,14 @@ pub fn definitions_for_name<'db>( let mut resolved_definitions = Vec::new(); for definition in &all_definitions { - let resolved = resolve_definition( - db, - *definition, - Some(name_str), - ImportAliasResolution::ResolveAliases, - ); + let resolved = resolve_definition(db, *definition, Some(name_str), alias_resolution); resolved_definitions.extend(resolved); } // If we didn't find any definitions in scopes, fallback to builtins - if resolved_definitions.is_empty() { - let Some(builtins_scope) = builtins_module_scope(db) else { - return resolved_definitions; - }; - + if resolved_definitions.is_empty() + && let Some(builtins_scope) = builtins_module_scope(db) + { // Special cases for `float` and `complex` in type annotation positions. // We don't know whether we're in a type annotation position, so we'll just ask `Name`'s type, // which resolves to `int | float` or `int | float | complex` if `float` or `complex` is used in @@ -932,6 +928,12 @@ mod resolve_definition { let module = parsed_module(db, file).load(db); let alias = import_def.alias(&module); + if alias.asname.is_some() + && alias_resolution == ImportAliasResolution::PreserveAliases + { + return vec![ResolvedDefinition::Definition(definition)]; + } + // Get the full module name being imported let Some(module_name) = ModuleName::new(&alias.name) else { return Vec::new(); // Invalid module name, return empty list @@ -955,7 +957,13 @@ mod resolve_definition { let file = definition.file(db); let module = parsed_module(db, file).load(db); let import_node = import_from_def.import(&module); - let name = &import_from_def.alias(&module).name; + let alias = import_from_def.alias(&module); + + if alias.asname.is_some() + && alias_resolution == ImportAliasResolution::PreserveAliases + { + return vec![ResolvedDefinition::Definition(definition)]; + } // For `ImportFrom`, we need to resolve the original imported symbol name // (alias.name), not the local alias (symbol_name) @@ -963,7 +971,7 @@ mod resolve_definition { db, file, import_node, - name, + &alias.name, visited, alias_resolution, ) From ef45c97dab2e1ab8268308a53e6dd452db40b0db Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Fri, 5 Dec 2025 11:04:23 -0800 Subject: [PATCH 32/65] [ty] Allow `tuple[Any, ...]` to assign to `tuple[int, *tuple[int, ...]]` (#21803) ## Summary Closes https://github.com/astral-sh/ty/issues/1750. --- .../type_properties/is_assignable_to.md | 10 ++++++ crates/ty_python_semantic/src/types/tuple.rs | 36 +++++++++++++++---- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/type_properties/is_assignable_to.md b/crates/ty_python_semantic/resources/mdtest/type_properties/is_assignable_to.md index 3bd3cd1f09..f9f85641f7 100644 --- a/crates/ty_python_semantic/resources/mdtest/type_properties/is_assignable_to.md +++ b/crates/ty_python_semantic/resources/mdtest/type_properties/is_assignable_to.md @@ -537,6 +537,9 @@ static_assert(is_assignable_to(tuple[Any, ...], tuple[Any, Any])) static_assert(is_assignable_to(tuple[Any, ...], tuple[int, ...])) static_assert(is_assignable_to(tuple[Any, ...], tuple[int])) static_assert(is_assignable_to(tuple[Any, ...], tuple[int, int])) +static_assert(is_assignable_to(tuple[Any, ...], tuple[int, *tuple[int, ...]])) +static_assert(is_assignable_to(tuple[Any, ...], tuple[*tuple[int, ...], int])) +static_assert(is_assignable_to(tuple[Any, ...], tuple[int, *tuple[int, ...], int])) ``` This also applies when `tuple[Any, ...]` is unpacked into a mixed tuple. @@ -560,6 +563,10 @@ static_assert(is_assignable_to(tuple[*tuple[Any, ...], int], tuple[int, ...])) static_assert(is_assignable_to(tuple[*tuple[Any, ...], int], tuple[int])) static_assert(is_assignable_to(tuple[*tuple[Any, ...], int], tuple[int, int])) +# `*tuple[Any, ...]` can materialize to a tuple of any length as a special case, +# so this passes: +static_assert(is_assignable_to(tuple[*tuple[Any, ...], Any], tuple[*tuple[Any, ...], Any, Any])) + static_assert(is_assignable_to(tuple[int, *tuple[Any, ...], int], tuple[int, *tuple[Any, ...], int])) static_assert(is_assignable_to(tuple[int, *tuple[Any, ...], int], tuple[Any, ...])) static_assert(not is_assignable_to(tuple[int, *tuple[Any, ...], int], tuple[Any])) @@ -580,6 +587,9 @@ static_assert(not is_assignable_to(tuple[int, ...], tuple[Any, Any])) static_assert(is_assignable_to(tuple[int, ...], tuple[int, ...])) static_assert(not is_assignable_to(tuple[int, ...], tuple[int])) static_assert(not is_assignable_to(tuple[int, ...], tuple[int, int])) +static_assert(not is_assignable_to(tuple[int, ...], tuple[int, *tuple[int, ...]])) +static_assert(not is_assignable_to(tuple[int, ...], tuple[*tuple[int, ...], int])) +static_assert(not is_assignable_to(tuple[int, ...], tuple[int, *tuple[int, ...], int])) static_assert(is_assignable_to(tuple[int, *tuple[int, ...]], tuple[int, *tuple[Any, ...]])) static_assert(is_assignable_to(tuple[int, *tuple[int, ...]], tuple[Any, ...])) diff --git a/crates/ty_python_semantic/src/types/tuple.rs b/crates/ty_python_semantic/src/types/tuple.rs index 787bbe0688..9b046cd4cf 100644 --- a/crates/ty_python_semantic/src/types/tuple.rs +++ b/crates/ty_python_semantic/src/types/tuple.rs @@ -998,10 +998,22 @@ impl<'db> VariableLengthTuple> { relation_visitor, disjointness_visitor, ), - EitherOrBoth::Right(_) => { + EitherOrBoth::Right(other_ty) => { // The rhs has a required element that the lhs is not guaranteed to - // provide. - return ConstraintSet::from(false); + // provide, unless the lhs has a dynamic variable-length portion + // that can materialize to provide it (for assignability only), + // as in `tuple[Any, ...]` matching `tuple[int, int]`. + if !relation.is_assignability() || !self.variable.is_dynamic() { + return ConstraintSet::from(false); + } + self.variable.has_relation_to_impl( + db, + other_ty, + inferable, + relation, + relation_visitor, + disjointness_visitor, + ) } }; if result @@ -1037,10 +1049,22 @@ impl<'db> VariableLengthTuple> { relation_visitor, disjointness_visitor, ), - EitherOrBoth::Right(_) => { + EitherOrBoth::Right(other_ty) => { // The rhs has a required element that the lhs is not guaranteed to - // provide. - return ConstraintSet::from(false); + // provide, unless the lhs has a dynamic variable-length portion + // that can materialize to provide it (for assignability only), + // as in `tuple[Any, ...]` matching `tuple[int, int]`. + if !relation.is_assignability() || !self.variable.is_dynamic() { + return ConstraintSet::from(false); + } + self.variable.has_relation_to_impl( + db, + *other_ty, + inferable, + relation, + relation_visitor, + disjointness_visitor, + ) } }; if result From 6e0e49eda88118f69b5521dd8138dd09a384e5ee Mon Sep 17 00:00:00 2001 From: Louis Maddox Date: Sat, 6 Dec 2025 18:19:04 +0000 Subject: [PATCH 33/65] Add minimal-size build profile (#21826) This PR adds the same `minimal-size` profile as `uv` repo workspace has ```toml # Profile to build a minimally sized binary for uv-build [profile.minimal-size] inherits = "release" opt-level = "z" # This will still show a panic message, we only skip the unwind panic = "abort" codegen-units = 1 ``` but removes its `panic = "abort"` setting - As discussed in #21825 Compared to the ones pre-built via `uv tool install`, this builds 35% smaller ruff and 24% smaller ty binaries (as measured [here](https://github.com/lmmx/just-pre-commit/blob/master/refresh_binaries.sh)) --- Cargo.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index e948f46085..554ad219d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -272,6 +272,12 @@ large_stack_arrays = "allow" lto = "fat" codegen-units = 16 +# Profile to build a minimally sized binary for ruff/ty +[profile.minimal-size] +inherits = "release" +opt-level = "z" +codegen-units = 1 + # Some crates don't change as much but benefit more from # more expensive optimization passes, so we selectively # decrease codegen-units in some cases. From cbff09b9aff3f06845d7cc39a7af37f207981c98 Mon Sep 17 00:00:00 2001 From: Prakhar Pratyush Date: Sun, 7 Dec 2025 16:10:46 +0530 Subject: [PATCH 34/65] [flake8-bandit] Fix false positive when using non-standard `CSafeLoader` path (S506). (#21830) --- .../ruff_linter/resources/test/fixtures/flake8_bandit/S506.py | 2 ++ .../src/rules/flake8_bandit/rules/unsafe_yaml_load.rs | 1 + 2 files changed, 3 insertions(+) diff --git a/crates/ruff_linter/resources/test/fixtures/flake8_bandit/S506.py b/crates/ruff_linter/resources/test/fixtures/flake8_bandit/S506.py index 9fd87de3e3..b316ca8aea 100644 --- a/crates/ruff_linter/resources/test/fixtures/flake8_bandit/S506.py +++ b/crates/ruff_linter/resources/test/fixtures/flake8_bandit/S506.py @@ -28,9 +28,11 @@ yaml.load("{}", SafeLoader) yaml.load("{}", yaml.SafeLoader) yaml.load("{}", CSafeLoader) yaml.load("{}", yaml.CSafeLoader) +yaml.load("{}", yaml.cyaml.CSafeLoader) yaml.load("{}", NewSafeLoader) yaml.load("{}", Loader=SafeLoader) yaml.load("{}", Loader=yaml.SafeLoader) yaml.load("{}", Loader=CSafeLoader) yaml.load("{}", Loader=yaml.CSafeLoader) +yaml.load("{}", Loader=yaml.cyaml.CSafeLoader) yaml.load("{}", Loader=NewSafeLoader) diff --git a/crates/ruff_linter/src/rules/flake8_bandit/rules/unsafe_yaml_load.rs b/crates/ruff_linter/src/rules/flake8_bandit/rules/unsafe_yaml_load.rs index 593f5e01da..bc5e846f99 100644 --- a/crates/ruff_linter/src/rules/flake8_bandit/rules/unsafe_yaml_load.rs +++ b/crates/ruff_linter/src/rules/flake8_bandit/rules/unsafe_yaml_load.rs @@ -75,6 +75,7 @@ pub(crate) fn unsafe_yaml_load(checker: &Checker, call: &ast::ExprCall) { qualified_name.segments(), ["yaml", "SafeLoader" | "CSafeLoader"] | ["yaml", "loader", "SafeLoader" | "CSafeLoader"] + | ["yaml", "cyaml", "CSafeLoader"] ) }) { From 285d6410d3dcc0567fee1d72bc46bfe3008af36b Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Sun, 7 Dec 2025 09:27:14 -0500 Subject: [PATCH 35/65] [ty] Avoid double-analyzing tuple in `Final` subscript (#21828) ## Summary As-is, a single-element tuple gets destructured via: ```rust let arguments = if let ast::Expr::Tuple(tuple) = slice { &*tuple.elts } else { std::slice::from_ref(slice) }; ``` But then, because it's a single element, we call `infer_annotation_expression_impl`, passing in the tuple, rather than the first element. Closes https://github.com/astral-sh/ty/issues/1793. Closes https://github.com/astral-sh/ty/issues/1768. --------- Co-authored-by: Claude Opus 4.5 --- .../mdtest/type_qualifiers/classvar.md | 31 +++++++++++++++++++ .../resources/mdtest/type_qualifiers/final.md | 16 ++++++++++ .../mdtest/type_qualifiers/initvar.md | 19 ++++++++++++ .../infer/builder/annotation_expression.rs | 20 +++++++----- 4 files changed, 78 insertions(+), 8 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/type_qualifiers/classvar.md b/crates/ty_python_semantic/resources/mdtest/type_qualifiers/classvar.md index f697543c1b..5578332677 100644 --- a/crates/ty_python_semantic/resources/mdtest/type_qualifiers/classvar.md +++ b/crates/ty_python_semantic/resources/mdtest/type_qualifiers/classvar.md @@ -101,6 +101,37 @@ class C: x: ClassVar[int, str] = 1 ``` +## Trailing comma creates a tuple + +A trailing comma in a subscript creates a single-element tuple. We need to handle this gracefully +and emit a proper error rather than crashing (see +[ty#1793](https://github.com/astral-sh/ty/issues/1793)). + +```py +from typing import ClassVar + +class C: + # error: [invalid-type-form] "Tuple literals are not allowed in this context in a type expression: Did you mean `tuple[()]`?" + x: ClassVar[(),] + +# error: [invalid-attribute-access] "Cannot assign to ClassVar `x` from an instance of type `C`" +C().x = 42 +reveal_type(C.x) # revealed: Unknown +``` + +This also applies when the trailing comma is inside the brackets (see +[ty#1768](https://github.com/astral-sh/ty/issues/1768)): + +```py +from typing import ClassVar + +class D: + # A trailing comma here doesn't change the meaning; it's still one argument. + a: ClassVar[int,] = 1 + +reveal_type(D.a) # revealed: int +``` + ## Illegal `ClassVar` in type expression ```py diff --git a/crates/ty_python_semantic/resources/mdtest/type_qualifiers/final.md b/crates/ty_python_semantic/resources/mdtest/type_qualifiers/final.md index 1c42ded723..af468f6132 100644 --- a/crates/ty_python_semantic/resources/mdtest/type_qualifiers/final.md +++ b/crates/ty_python_semantic/resources/mdtest/type_qualifiers/final.md @@ -340,6 +340,22 @@ class C: x: Final[int, str] = 1 ``` +### Trailing comma creates a tuple + +A trailing comma in a subscript creates a single-element tuple. We need to handle this gracefully +and emit a proper error rather than crashing (see +[ty#1793](https://github.com/astral-sh/ty/issues/1793)). + +```py +from typing import Final + +# error: [invalid-type-form] "Tuple literals are not allowed in this context in a type expression: Did you mean `tuple[()]`?" +x: Final[(),] = 42 + +# error: [invalid-assignment] "Reassignment of `Final` symbol `x` is not allowed" +x = 56 +``` + ### Illegal `Final` in type expression ```py diff --git a/crates/ty_python_semantic/resources/mdtest/type_qualifiers/initvar.md b/crates/ty_python_semantic/resources/mdtest/type_qualifiers/initvar.md index 9282782ce4..7d6c14b1c6 100644 --- a/crates/ty_python_semantic/resources/mdtest/type_qualifiers/initvar.md +++ b/crates/ty_python_semantic/resources/mdtest/type_qualifiers/initvar.md @@ -112,6 +112,25 @@ class Wrong: x: InitVar[int, str] # error: [invalid-type-form] "Type qualifier `InitVar` expected exactly 1 argument, got 2" ``` +A trailing comma in a subscript creates a single-element tuple. We need to handle this gracefully +and emit a proper error rather than crashing (see +[ty#1793](https://github.com/astral-sh/ty/issues/1793)). + +```py +from dataclasses import InitVar, dataclass + +@dataclass +class AlsoWrong: + # error: [invalid-type-form] "Tuple literals are not allowed in this context in a type expression: Did you mean `tuple[()]`?" + x: InitVar[(),] + +# revealed: (self: AlsoWrong, x: Unknown) -> None +reveal_type(AlsoWrong.__init__) + +# error: [unresolved-attribute] +reveal_type(AlsoWrong(42).x) # revealed: Unknown +``` + A bare `InitVar` is not allowed according to the [type annotation grammar]: ```py diff --git a/crates/ty_python_semantic/src/types/infer/builder/annotation_expression.rs b/crates/ty_python_semantic/src/types/infer/builder/annotation_expression.rs index ce3b2a4a92..374f65878b 100644 --- a/crates/ty_python_semantic/src/types/infer/builder/annotation_expression.rs +++ b/crates/ty_python_semantic/src/types/infer/builder/annotation_expression.rs @@ -273,10 +273,11 @@ impl<'db> TypeInferenceBuilder<'db, '_> { } else { std::slice::from_ref(slice) }; - let num_arguments = arguments.len(); - let type_and_qualifiers = if num_arguments == 1 { - let mut type_and_qualifiers = self - .infer_annotation_expression_impl(slice, PEP613Policy::Disallowed); + let type_and_qualifiers = if let [argument] = arguments { + let mut type_and_qualifiers = self.infer_annotation_expression_impl( + argument, + PEP613Policy::Disallowed, + ); match type_qualifier { SpecialFormType::ClassVar => { @@ -307,6 +308,7 @@ impl<'db> TypeInferenceBuilder<'db, '_> { if let Some(builder) = self.context.report_lint(&INVALID_TYPE_FORM, subscript) { + let num_arguments = arguments.len(); builder.into_diagnostic(format_args!( "Type qualifier `{type_qualifier}` expected exactly 1 argument, \ got {num_arguments}", @@ -325,10 +327,11 @@ impl<'db> TypeInferenceBuilder<'db, '_> { } else { std::slice::from_ref(slice) }; - let num_arguments = arguments.len(); - let type_and_qualifiers = if num_arguments == 1 { - let mut type_and_qualifiers = self - .infer_annotation_expression_impl(slice, PEP613Policy::Disallowed); + let type_and_qualifiers = if let [argument] = arguments { + let mut type_and_qualifiers = self.infer_annotation_expression_impl( + argument, + PEP613Policy::Disallowed, + ); type_and_qualifiers.add_qualifier(TypeQualifiers::INIT_VAR); type_and_qualifiers } else { @@ -341,6 +344,7 @@ impl<'db> TypeInferenceBuilder<'db, '_> { if let Some(builder) = self.context.report_lint(&INVALID_TYPE_FORM, subscript) { + let num_arguments = arguments.len(); builder.into_diagnostic(format_args!( "Type qualifier `InitVar` expected exactly 1 argument, \ got {num_arguments}", From 857fd4f6837060626a5a2cc5a1e00355e78b9970 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sun, 7 Dec 2025 15:58:11 +0000 Subject: [PATCH 36/65] [ty] Add test case for fixed panic (#21832) --- .../corpus/future_annotations_recursive_annotation.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 crates/ty_python_semantic/resources/corpus/future_annotations_recursive_annotation.py diff --git a/crates/ty_python_semantic/resources/corpus/future_annotations_recursive_annotation.py b/crates/ty_python_semantic/resources/corpus/future_annotations_recursive_annotation.py new file mode 100644 index 0000000000..0e14c6a985 --- /dev/null +++ b/crates/ty_python_semantic/resources/corpus/future_annotations_recursive_annotation.py @@ -0,0 +1,4 @@ +from __future__ import annotations + +class MyClass: + type: type = str From ac882f7e63ffc62849f288096b2c6f35f78032ab Mon Sep 17 00:00:00 2001 From: Dhruv Manilawala Date: Mon, 8 Dec 2025 10:50:41 +0530 Subject: [PATCH 37/65] [ty] Handle various invalid explicit specializations for `ParamSpec` (#21821) ## Summary fixes: https://github.com/astral-sh/ty/issues/1788 ## Test Plan Add new mdtests. --------- Co-authored-by: Alex Waygood --- .../mdtest/generics/legacy/paramspec.md | 28 ++++++++++++++++++- .../mdtest/generics/pep695/paramspec.md | 28 ++++++++++++++++++- .../src/types/infer/builder.rs | 22 +++++++-------- 3 files changed, 65 insertions(+), 13 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md b/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md index c4764c3886..49399f9c5a 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md @@ -244,6 +244,7 @@ Explicit specialization of a generic class involving `ParamSpec` is done by prov of types, `...`, or another in-scope `ParamSpec`. ```py +reveal_type(OnlyParamSpec[[]]().attr) # revealed: () -> None reveal_type(OnlyParamSpec[[int, str]]().attr) # revealed: (int, str, /) -> None reveal_type(OnlyParamSpec[...]().attr) # revealed: (...) -> None @@ -252,8 +253,28 @@ def func(c: Callable[P2, None]): # TODO: error: paramspec is unbound reveal_type(OnlyParamSpec[P2]().attr) # revealed: (...) -> None + +# error: [invalid-type-arguments] "No type argument provided for required type variable `P1` of class `OnlyParamSpec`" +reveal_type(OnlyParamSpec[()]().attr) # revealed: (...) -> None ``` +An explicit tuple expression (unlike an implicit one that omits the parentheses) is also accepted +when the `ParamSpec` is the only type variable. But, this isn't recommended is mainly a fallout of +it having the same AST as the one without the parentheses. Both mypy and Pyright also allow this. + +```py +reveal_type(OnlyParamSpec[(int, str)]().attr) # revealed: (int, str, /) -> None +``` + + + +```py +# error: [invalid-syntax] +reveal_type(OnlyParamSpec[]().attr) # revealed: (...) -> None +``` + + + The square brackets can be omitted when `ParamSpec` is the only type variable ```py @@ -269,6 +290,7 @@ reveal_type(OnlyParamSpec[int]().attr) # revealed: (int, /) -> None But, they cannot be omitted when there are multiple type variables. ```py +reveal_type(TypeVarAndParamSpec[int, []]().attr) # revealed: () -> int reveal_type(TypeVarAndParamSpec[int, [int, str]]().attr) # revealed: (int, str, /) -> int reveal_type(TypeVarAndParamSpec[int, [str]]().attr) # revealed: (str, /) -> int reveal_type(TypeVarAndParamSpec[int, ...]().attr) # revealed: (...) -> int @@ -276,8 +298,12 @@ reveal_type(TypeVarAndParamSpec[int, ...]().attr) # revealed: (...) -> int # TODO: We could still specialize for `T1` as the type is valid which would reveal `(...) -> int` # TODO: error: paramspec is unbound reveal_type(TypeVarAndParamSpec[int, P2]().attr) # revealed: (...) -> Unknown -# error: [invalid-type-arguments] "Type argument for `ParamSpec` must be either a list of types, `ParamSpec`, `Concatenate`, or `...`" +# error: [invalid-type-arguments] "Type argument for `ParamSpec` must be" reveal_type(TypeVarAndParamSpec[int, int]().attr) # revealed: (...) -> Unknown +# error: [invalid-type-arguments] "Type argument for `ParamSpec` must be" +reveal_type(TypeVarAndParamSpec[int, ()]().attr) # revealed: (...) -> Unknown +# error: [invalid-type-arguments] "Type argument for `ParamSpec` must be" +reveal_type(TypeVarAndParamSpec[int, (int, str)]().attr) # revealed: (...) -> Unknown ``` Nor can they be omitted when there are more than one `ParamSpec`s. diff --git a/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md b/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md index 6483428bb3..75c76d5d02 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md @@ -228,6 +228,7 @@ Explicit specialization of a generic class involving `ParamSpec` is done by prov of types, `...`, or another in-scope `ParamSpec`. ```py +reveal_type(OnlyParamSpec[[]]().attr) # revealed: () -> None reveal_type(OnlyParamSpec[[int, str]]().attr) # revealed: (int, str, /) -> None reveal_type(OnlyParamSpec[...]().attr) # revealed: (...) -> None @@ -238,8 +239,28 @@ P2 = ParamSpec("P2") # TODO: error: paramspec is unbound reveal_type(OnlyParamSpec[P2]().attr) # revealed: (...) -> None + +# error: [invalid-type-arguments] "No type argument provided for required type variable `P1` of class `OnlyParamSpec`" +reveal_type(OnlyParamSpec[()]().attr) # revealed: (...) -> None ``` +An explicit tuple expression (unlike an implicit one that omits the parentheses) is also accepted +when the `ParamSpec` is the only type variable. But, this isn't recommended is mainly a fallout of +it having the same AST as the one without the parentheses. Both mypy and Pyright also allow this. + +```py +reveal_type(OnlyParamSpec[(int, str)]().attr) # revealed: (int, str, /) -> None +``` + + + +```py +# error: [invalid-syntax] +reveal_type(OnlyParamSpec[]().attr) # revealed: (...) -> None +``` + + + The square brackets can be omitted when `ParamSpec` is the only type variable ```py @@ -255,14 +276,19 @@ reveal_type(OnlyParamSpec[int]().attr) # revealed: (int, /) -> None But, they cannot be omitted when there are multiple type variables. ```py +reveal_type(TypeVarAndParamSpec[int, []]().attr) # revealed: () -> int reveal_type(TypeVarAndParamSpec[int, [int, str]]().attr) # revealed: (int, str, /) -> int reveal_type(TypeVarAndParamSpec[int, [str]]().attr) # revealed: (str, /) -> int reveal_type(TypeVarAndParamSpec[int, ...]().attr) # revealed: (...) -> int # TODO: error: paramspec is unbound reveal_type(TypeVarAndParamSpec[int, P2]().attr) # revealed: (...) -> Unknown -# error: [invalid-type-arguments] +# error: [invalid-type-arguments] "Type argument for `ParamSpec` must be" reveal_type(TypeVarAndParamSpec[int, int]().attr) # revealed: (...) -> Unknown +# error: [invalid-type-arguments] "Type argument for `ParamSpec` must be" +reveal_type(TypeVarAndParamSpec[int, ()]().attr) # revealed: (...) -> Unknown +# error: [invalid-type-arguments] "Type argument for `ParamSpec` must be" +reveal_type(TypeVarAndParamSpec[int, (int, str)]().attr) # revealed: (...) -> Unknown ``` Nor can they be omitted when there are more than one `ParamSpec`. diff --git a/crates/ty_python_semantic/src/types/infer/builder.rs b/crates/ty_python_semantic/src/types/infer/builder.rs index 6ddaea40a4..6014bb1f3f 100644 --- a/crates/ty_python_semantic/src/types/infer/builder.rs +++ b/crates/ty_python_semantic/src/types/infer/builder.rs @@ -3472,17 +3472,13 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { )); } + ast::Expr::Tuple(_) if !exactly_one_paramspec => { + // Tuple expression is only allowed when the generic context contains only one + // `ParamSpec` type variable and no other type variables. + } + ast::Expr::Tuple(ast::ExprTuple { elts, .. }) | ast::Expr::List(ast::ExprList { elts, .. }) => { - // This should be taken care of by the caller. - if expr.is_tuple_expr() { - assert!( - exactly_one_paramspec, - "Inferring ParamSpec value during explicit specialization for a \ - tuple expression should only happen when it contains exactly one ParamSpec" - ); - } - let mut parameter_types = Vec::with_capacity(elts.len()); // Whether to infer `Todo` for the parameters @@ -3519,7 +3515,11 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { return Ok(Type::paramspec_value_callable(db, Parameters::todo())); } - ast::Expr::Name(_) => { + ast::Expr::Name(name) => { + if name.is_invalid() { + return Err(()); + } + let param_type = self.infer_type_expression(expr); match param_type { @@ -11632,7 +11632,7 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { let exactly_one_paramspec = generic_context.exactly_one_paramspec(db); let (type_arguments, store_inferred_type_arguments) = match slice_node { ast::Expr::Tuple(tuple) => { - if exactly_one_paramspec { + if exactly_one_paramspec && !tuple.elts.is_empty() { (std::slice::from_ref(slice_node), false) } else { (tuple.elts.as_slice(), true) From dfd6ed052483e628038ceebd4f4738fc8c3ad50f Mon Sep 17 00:00:00 2001 From: David Peter Date: Mon, 8 Dec 2025 11:44:20 +0100 Subject: [PATCH 38/65] [ty] mdtests with external dependencies (#20904) ## Summary This PR adds the possibility to write mdtests that specify external dependencies in a `project` section of TOML blocks. For example, here is a test that makes sure that we understand Pydantic's dataclass-transform setup: ````markdown ```toml [environment] python-version = "3.12" python-platform = "linux" [project] dependencies = ["pydantic==2.12.2"] ``` ```py from pydantic import BaseModel class User(BaseModel): id: int name: str user = User(id=1, name="Alice") reveal_type(user.id) # revealed: int reveal_type(user.name) # revealed: str # error: [missing-argument] "No argument provided for required parameter `name`" invalid_user = User(id=2) ``` ```` ## How? Using the `python-version` and the `dependencies` fields from the Markdown section, we generate a `pyproject.toml` file, write it to a temporary directory, and use `uv sync` to install the dependencies into a virtual environment. We then copy the Python source files from that venv's `site-packages` folder to a corresponding directory structure in the in-memory filesystem. Finally, we configure the search paths accordingly, and run the mdtest as usual. I fully understand that there are valid concerns here: * Doesn't this require network access? (yes, it does) * Is this fast enough? (`uv` caching makes this almost unnoticeable, actually) * Is this deterministic? ~~(probably not, package resolution can depend on the platform you're on)~~ (yes, hopefully) For this reason, this first version is opt-in, locally. ~~We don't even run these tests in CI (even though they worked fine in a previous iteration of this PR).~~ You need to set `MDTEST_EXTERNAL=1`, or use the new `-e/--enable-external` command line option of the `mdtest.py` runner. For example: ```bash # Skip mdtests with external dependencies (default): uv run crates/ty_python_semantic/mdtest.py # Run all mdtests, including those with external dependencies: uv run crates/ty_python_semantic/mdtest.py -e # Only run the `pydantic` tests. Use `-e` to make sure it is not skipped: uv run crates/ty_python_semantic/mdtest.py -e pydantic ``` ## Why? I believe that this can be a useful addition to our testing strategy, which lies somewhere between ecosystem tests and normal mdtests. Ecosystem tests cover much more code, but they have the disadvantage that we only see second- or third-order effects via diagnostic diffs. If we unexpectedly gain or lose type coverage somewhere, we might not even notice (assuming the gradual guarantee holds, and ecosystem code is mostly correct). Another disadvantage of ecosystem checks is that they only test checked-in code that is usually correct. However, we also want to test what happens on wrong code, like the code that is momentarily written in an editor, before fixing it. On the other end of the spectrum we have normal mdtests, which have the disadvantage that they do not reflect the reality of complex real-world code. We experience this whenever we're surprised by an ecosystem report on a PR. That said, these tests should not be seen as a replacement for either of these things. For example, we should still strive to write detailed self-contained mdtests for user-reported issues. But we might use this new layer for regression tests, or simply as a debugging tool. It can also serve as a tool to document our support for popular third-party libraries. ## Test Plan * I've been locally using this for a couple of weeks now. * `uv run crates/ty_python_semantic/mdtest.py -e` --- .github/workflows/ci.yaml | 2 + Cargo.lock | 1 + crates/ty_python_semantic/mdtest.py | 15 +- .../resources/mdtest/external/README.md | 4 + .../resources/mdtest/external/attrs.md | 78 ++++++++ .../resources/mdtest/external/numpy.md | 23 +++ .../resources/mdtest/external/pydantic.md | 48 +++++ .../resources/mdtest/external/pytest.md | 27 +++ .../resources/mdtest/external/sqlalchemy.md | 124 ++++++++++++ .../resources/mdtest/external/sqlmodel.md | 30 +++ .../resources/mdtest/external/strawberry.md | 27 +++ crates/ty_test/Cargo.toml | 1 + crates/ty_test/README.md | 38 ++++ crates/ty_test/src/config.rs | 24 +++ crates/ty_test/src/external_dependencies.rs | 186 ++++++++++++++++++ crates/ty_test/src/lib.rs | 65 +++++- 16 files changed, 684 insertions(+), 9 deletions(-) create mode 100644 crates/ty_python_semantic/resources/mdtest/external/README.md create mode 100644 crates/ty_python_semantic/resources/mdtest/external/attrs.md create mode 100644 crates/ty_python_semantic/resources/mdtest/external/numpy.md create mode 100644 crates/ty_python_semantic/resources/mdtest/external/pydantic.md create mode 100644 crates/ty_python_semantic/resources/mdtest/external/pytest.md create mode 100644 crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md create mode 100644 crates/ty_python_semantic/resources/mdtest/external/sqlmodel.md create mode 100644 crates/ty_python_semantic/resources/mdtest/external/strawberry.md create mode 100644 crates/ty_test/src/external_dependencies.rs diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 83b6b83bc3..993ecfac97 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -24,6 +24,8 @@ env: PACKAGE_NAME: ruff PYTHON_VERSION: "3.14" NEXTEST_PROFILE: ci + # Enable mdtests that require external dependencies + MDTEST_EXTERNAL: "1" jobs: determine_changes: diff --git a/Cargo.lock b/Cargo.lock index 6bc8bf881c..6bde255074 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4557,6 +4557,7 @@ dependencies = [ "anyhow", "camino", "colored 3.0.0", + "dunce", "insta", "memchr", "path-slash", diff --git a/crates/ty_python_semantic/mdtest.py b/crates/ty_python_semantic/mdtest.py index c3260637cc..2acc6f452b 100644 --- a/crates/ty_python_semantic/mdtest.py +++ b/crates/ty_python_semantic/mdtest.py @@ -37,14 +37,16 @@ class MDTestRunner: mdtest_executable: Path | None console: Console filters: list[str] + enable_external: bool - def __init__(self, filters: list[str] | None = None) -> None: + def __init__(self, filters: list[str] | None, enable_external: bool) -> None: self.mdtest_executable = None self.console = Console() self.filters = [ f.removesuffix(".md").replace("/", "_").replace("-", "_") for f in (filters or []) ] + self.enable_external = enable_external def _run_cargo_test(self, *, message_format: Literal["human", "json"]) -> str: return subprocess.check_output( @@ -120,6 +122,7 @@ class MDTestRunner: CLICOLOR_FORCE="1", INSTA_FORCE_PASS="1", INSTA_OUTPUT="none", + MDTEST_EXTERNAL="1" if self.enable_external else "0", ), capture_output=capture_output, text=True, @@ -266,11 +269,19 @@ def main() -> None: nargs="*", help="Partial paths or mangled names, e.g., 'loops/for.md' or 'loops_for'", ) + parser.add_argument( + "--enable-external", + "-e", + action="store_true", + help="Enable tests with external dependencies", + ) args = parser.parse_args() try: - runner = MDTestRunner(filters=args.filters) + runner = MDTestRunner( + filters=args.filters, enable_external=args.enable_external + ) runner.watch() except KeyboardInterrupt: print() diff --git a/crates/ty_python_semantic/resources/mdtest/external/README.md b/crates/ty_python_semantic/resources/mdtest/external/README.md new file mode 100644 index 0000000000..a54c31c862 --- /dev/null +++ b/crates/ty_python_semantic/resources/mdtest/external/README.md @@ -0,0 +1,4 @@ +# mdtests with external dependencies + +This directory contains mdtests that make use of external packages. See the mdtest `README.md` for +more information. diff --git a/crates/ty_python_semantic/resources/mdtest/external/attrs.md b/crates/ty_python_semantic/resources/mdtest/external/attrs.md new file mode 100644 index 0000000000..3b4bc342a6 --- /dev/null +++ b/crates/ty_python_semantic/resources/mdtest/external/attrs.md @@ -0,0 +1,78 @@ +# attrs + +```toml +[environment] +python-version = "3.13" +python-platform = "linux" + +[project] +dependencies = ["attrs==25.4.0"] +``` + +## Basic class (`attr`) + +```py +import attr + +@attr.s +class User: + id: int = attr.ib() + name: str = attr.ib() + +user = User(id=1, name="John Doe") + +reveal_type(user.id) # revealed: int +reveal_type(user.name) # revealed: str +``` + +## Basic class (`define`) + +```py +from attrs import define, field + +@define +class User: + id: int = field() + internal_name: str = field(alias="name") + +user = User(id=1, name="John Doe") +reveal_type(user.id) # revealed: int +reveal_type(user.internal_name) # revealed: str +``` + +## Usage of `field` parameters + +```py +from attrs import define, field + +@define +class Product: + id: int = field(init=False) + name: str = field() + price_cent: int = field(kw_only=True) + +reveal_type(Product.__init__) # revealed: (self: Product, name: str, *, price_cent: int) -> None +``` + +## Dedicated support for the `default` decorator? + +We currently do not support this: + +```py +from attrs import define, field + +@define +class Person: + id: int = field() + name: str = field() + + # error: [call-non-callable] "Object of type `_MISSING_TYPE` is not callable" + @id.default + def _default_id(self) -> int: + raise NotImplementedError + +# error: [missing-argument] "No argument provided for required parameter `id`" +person = Person(name="Alice") +reveal_type(person.id) # revealed: int +reveal_type(person.name) # revealed: str +``` diff --git a/crates/ty_python_semantic/resources/mdtest/external/numpy.md b/crates/ty_python_semantic/resources/mdtest/external/numpy.md new file mode 100644 index 0000000000..39bfa6d110 --- /dev/null +++ b/crates/ty_python_semantic/resources/mdtest/external/numpy.md @@ -0,0 +1,23 @@ +# numpy + +```toml +[environment] +python-version = "3.13" +python-platform = "linux" + +[project] +dependencies = ["numpy==2.3.0"] +``` + +## Basic usage + +```py +import numpy as np + +xs = np.array([1, 2, 3]) +reveal_type(xs) # revealed: ndarray[tuple[Any, ...], dtype[Any]] + +xs = np.array([1.0, 2.0, 3.0], dtype=np.float64) +# TODO: should be `ndarray[tuple[Any, ...], dtype[float64]]` +reveal_type(xs) # revealed: ndarray[tuple[Any, ...], dtype[Unknown]] +``` diff --git a/crates/ty_python_semantic/resources/mdtest/external/pydantic.md b/crates/ty_python_semantic/resources/mdtest/external/pydantic.md new file mode 100644 index 0000000000..6fb82840f5 --- /dev/null +++ b/crates/ty_python_semantic/resources/mdtest/external/pydantic.md @@ -0,0 +1,48 @@ +# Pydantic + +```toml +[environment] +python-version = "3.12" +python-platform = "linux" + +[project] +dependencies = ["pydantic==2.12.2"] +``` + +## Basic model + +```py +from pydantic import BaseModel + +class User(BaseModel): + id: int + name: str + +reveal_type(User.__init__) # revealed: (self: User, *, id: int, name: str) -> None + +user = User(id=1, name="John Doe") +reveal_type(user.id) # revealed: int +reveal_type(user.name) # revealed: str + +# error: [missing-argument] "No argument provided for required parameter `name`" +invalid_user = User(id=2) +``` + +## Usage of `Field` + +```py +from pydantic import BaseModel, Field + +class Product(BaseModel): + id: int = Field(init=False) + name: str = Field(..., kw_only=False, min_length=1) + internal_price_cent: int = Field(..., gt=0, alias="price_cent") + +reveal_type(Product.__init__) # revealed: (self: Product, name: str = Any, *, price_cent: int = Any) -> None + +product = Product("Laptop", price_cent=999_00) + +reveal_type(product.id) # revealed: int +reveal_type(product.name) # revealed: str +reveal_type(product.internal_price_cent) # revealed: int +``` diff --git a/crates/ty_python_semantic/resources/mdtest/external/pytest.md b/crates/ty_python_semantic/resources/mdtest/external/pytest.md new file mode 100644 index 0000000000..823ef4d162 --- /dev/null +++ b/crates/ty_python_semantic/resources/mdtest/external/pytest.md @@ -0,0 +1,27 @@ +# pytest + +```toml +[environment] +python-version = "3.13" +python-platform = "linux" + +[project] +dependencies = ["pytest==9.0.1"] +``` + +## `pytest.fail` + +Make sure that we recognize `pytest.fail` calls as terminal: + +```py +import pytest + +def some_runtime_condition() -> bool: + return True + +def test_something(): + if not some_runtime_condition(): + pytest.fail("Runtime condition failed") + + no_error_here_this_is_unreachable +``` diff --git a/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md b/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md new file mode 100644 index 0000000000..0ac9c4c219 --- /dev/null +++ b/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md @@ -0,0 +1,124 @@ +# SQLAlchemy + +```toml +[environment] +python-version = "3.13" +python-platform = "linux" + +[project] +dependencies = ["SQLAlchemy==2.0.44"] +``` + +## Basic model + +Here, we mostly make sure that ty understands SQLAlchemy's dataclass-transformer setup: + +```py +from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column + +class Base(DeclarativeBase): + pass + +class User(Base): + __tablename__ = "user" + + id: Mapped[int] = mapped_column(primary_key=True, init=False) + internal_name: Mapped[str] = mapped_column(alias="name") + +user = User(name="John Doe") +reveal_type(user.id) # revealed: int +reveal_type(user.internal_name) # revealed: str +``` + +Unfortunately, SQLAlchemy overrides `__init__` and explicitly accepts all combinations of keyword +arguments. This is why we currently cannot flag invalid constructor calls: + +```py +reveal_type(User.__init__) # revealed: def __init__(self, **kw: Any) -> Unknown + +# TODO: this should ideally be an error +invalid_user = User(invalid_arg=42) +``` + +## Queries + +First, the basic setup: + +```py +from datetime import datetime + +from sqlalchemy import select, Integer, Text, Boolean, DateTime +from sqlalchemy.orm import Session +from sqlalchemy.orm import DeclarativeBase +from sqlalchemy.orm import Mapped, mapped_column +from sqlalchemy import create_engine + +engine = create_engine("sqlite://example.db") +session = Session(engine) +``` + +Now we can declare a simple model: + +```py +class Base(DeclarativeBase): + pass + +class User(Base): + __tablename__ = "users" + + id: Mapped[int] = mapped_column(Integer, primary_key=True) + name: Mapped[str] = mapped_column(Text) + is_admin: Mapped[bool] = mapped_column(Boolean, default=False) +``` + +And perform simple queries: + +```py +stmt = select(User) +reveal_type(stmt) # revealed: Select[tuple[User]] + +users = session.scalars(stmt).all() +reveal_type(users) # revealed: Sequence[User] + +for row in session.execute(stmt): + reveal_type(row) # revealed: Row[tuple[User]] + +stmt = select(User).where(User.name == "Alice") +alice = session.scalars(stmt).first() +reveal_type(alice) # revealed: User | None + +stmt = select(User).where(User.is_admin == True).order_by(User.name).limit(10) +admin_users = session.scalars(stmt).all() +reveal_type(admin_users) # revealed: Sequence[User] +``` + +This also works with the legacy `query` API: + +```py +users_legacy = session.query(User).all() +reveal_type(users_legacy) # revealed: list[User] +``` + +We can also specify particular columns to select: + +```py +stmt = select(User.id, User.name) +# TODO: should be `Select[tuple[int, str]]` +reveal_type(stmt) # revealed: Select[tuple[Unknown, Unknown]] + +for row in session.execute(stmt): + # TODO: should be `Row[Tuple[int, str]]` + reveal_type(row) # revealed: Row[tuple[Unknown, Unknown]] +``` + +And similarly with the legacy `query` API: + +```py +query = session.query(User.id, User.name) +# TODO: should be `RowReturningQuery[tuple[int, str]]` +reveal_type(query) # revealed: RowReturningQuery[tuple[Unknown, Unknown]] + +for row in query.all(): + # TODO: should be `Row[Tuple[int, str]]` + reveal_type(row) # revealed: Row[tuple[Unknown, Unknown]] +``` diff --git a/crates/ty_python_semantic/resources/mdtest/external/sqlmodel.md b/crates/ty_python_semantic/resources/mdtest/external/sqlmodel.md new file mode 100644 index 0000000000..7dafa336db --- /dev/null +++ b/crates/ty_python_semantic/resources/mdtest/external/sqlmodel.md @@ -0,0 +1,30 @@ +# SQLModel + +```toml +[environment] +python-version = "3.13" +python-platform = "linux" + +[project] +dependencies = ["sqlmodel==0.0.27"] +``` + +## Basic model + +```py +from sqlmodel import SQLModel + +class User(SQLModel): + id: int + name: str + +user = User(id=1, name="John Doe") +reveal_type(user.id) # revealed: int +reveal_type(user.name) # revealed: str + +# TODO: this should not mention `__pydantic_self__`, and have proper parameters defined by the fields +reveal_type(User.__init__) # revealed: def __init__(__pydantic_self__, **data: Any) -> None + +# TODO: this should be an error +User() +``` diff --git a/crates/ty_python_semantic/resources/mdtest/external/strawberry.md b/crates/ty_python_semantic/resources/mdtest/external/strawberry.md new file mode 100644 index 0000000000..849b50aa74 --- /dev/null +++ b/crates/ty_python_semantic/resources/mdtest/external/strawberry.md @@ -0,0 +1,27 @@ +# Strawberry GraphQL + +```toml +[environment] +python-version = "3.13" +python-platform = "linux" + +[project] +dependencies = ["strawberry-graphql==0.283.3"] +``` + +## Basic model + +```py +import strawberry + +@strawberry.type +class User: + id: int + role: str = strawberry.field(default="user") + +reveal_type(User.__init__) # revealed: (self: User, *, id: int, role: str = Any) -> None + +user = User(id=1) +reveal_type(user.id) # revealed: int +reveal_type(user.role) # revealed: str +``` diff --git a/crates/ty_test/Cargo.toml b/crates/ty_test/Cargo.toml index f300b614a0..a7c18b9d00 100644 --- a/crates/ty_test/Cargo.toml +++ b/crates/ty_test/Cargo.toml @@ -25,6 +25,7 @@ ty_vendored = { workspace = true } anyhow = { workspace = true } camino = { workspace = true } +dunce = { workspace = true } colored = { workspace = true } insta = { workspace = true, features = ["filters"] } memchr = { workspace = true } diff --git a/crates/ty_test/README.md b/crates/ty_test/README.md index ecf4614d94..b31a45e877 100644 --- a/crates/ty_test/README.md +++ b/crates/ty_test/README.md @@ -316,6 +316,44 @@ To enable logging in an mdtest, set `log = true` at the top level of the TOML bl See [`MarkdownTestConfig`](https://github.com/astral-sh/ruff/blob/main/crates/ty_test/src/config.rs) for the full list of supported configuration options. +### Testing with external dependencies + +Tests can specify external Python dependencies using a `[project]` section in the TOML configuration. +This allows testing code that uses third-party libraries like `pydantic`, `numpy`, etc. + +It is recommended to specify exact versions of packages to ensure reproducibility. The specified +Python version and platform are required for tests with external dependencies, as they are used +during package resolution. + +````markdown +```toml +[environment] +python-version = "3.13" +python-platform = "linux" + +[project] +dependencies = ["pydantic==2.12.2"] +``` + +```py +import pydantic + +# use pydantic in the test +``` +```` + +When a test has dependencies: + +1. The test framework creates a `pyproject.toml` in a temporary directory. +1. Runs `uv sync` to install the dependencies. +1. Copies the installed packages from the virtual environment's `site-packages` directory into the test's + in-memory filesystem. +1. Configures the type checker to use these packages. + +**Note**: This feature requires `uv` to be installed and available in your `PATH`. The dependencies +are installed fresh for each test that specifies them, so tests with many dependencies may be slower +to run. + ### Specifying a custom typeshed Some tests will need to override the default typeshed with custom files. The `[environment]` diff --git a/crates/ty_test/src/config.rs b/crates/ty_test/src/config.rs index 6fe3a17fd0..6154208d69 100644 --- a/crates/ty_test/src/config.rs +++ b/crates/ty_test/src/config.rs @@ -4,8 +4,12 @@ //! //! ```toml //! log = true # or log = "ty=WARN" +//! //! [environment] //! python-version = "3.10" +//! +//! [project] +//! dependencies = ["pydantic==2.12.2"] //! ``` use anyhow::Context; @@ -25,6 +29,9 @@ pub(crate) struct MarkdownTestConfig { /// /// Defaults to the case-sensitive [`ruff_db::system::InMemorySystem`]. pub(crate) system: Option, + + /// Project configuration for installing external dependencies. + pub(crate) project: Option, } impl MarkdownTestConfig { @@ -51,6 +58,10 @@ impl MarkdownTestConfig { pub(crate) fn python(&self) -> Option<&SystemPath> { self.environment.as_ref()?.python.as_deref() } + + pub(crate) fn dependencies(&self) -> Option<&[String]> { + self.project.as_ref()?.dependencies.as_deref() + } } #[derive(Deserialize, Debug, Default, Clone)] @@ -116,3 +127,16 @@ pub(crate) enum SystemKind { /// This system should only be used when testing system or OS specific behavior. Os, } + +/// Project configuration for tests that need external dependencies. +#[derive(Deserialize, Debug, Default, Clone)] +#[serde(rename_all = "kebab-case", deny_unknown_fields)] +pub(crate) struct Project { + /// List of Python package dependencies in `pyproject.toml` format. + /// + /// These will be installed using `uv sync` into a temporary virtual environment. + /// The site-packages directory will then be copied into the test's filesystem. + /// + /// Example: `dependencies = ["pydantic==2.12.2"]` + pub(crate) dependencies: Option>, +} diff --git a/crates/ty_test/src/external_dependencies.rs b/crates/ty_test/src/external_dependencies.rs new file mode 100644 index 0000000000..38a14d78c9 --- /dev/null +++ b/crates/ty_test/src/external_dependencies.rs @@ -0,0 +1,186 @@ +use crate::db::Db; + +use anyhow::{Context, Result, anyhow, bail}; +use ruff_db::system::{DbWithWritableSystem as _, OsSystem, SystemPath}; +use ruff_python_ast::PythonVersion; +use ty_python_semantic::{PythonEnvironment, PythonPlatform, SysPrefixPathOrigin}; + +/// Setup a virtual environment in the in-memory filesystem of `db` with +/// the specified dependencies installed. +pub(crate) fn setup_venv( + db: &mut Db, + dependencies: &[String], + python_version: PythonVersion, + python_platform: &PythonPlatform, + dest_venv_path: &SystemPath, +) -> Result<()> { + // Create a temporary directory for the project + let temp_dir = tempfile::Builder::new() + .prefix("mdtest-venv-") + .tempdir() + .context("Failed to create temporary directory for mdtest virtual environment")?; + + // Canonicalize here to fix problems with `.strip_prefix()` later on Windows + let temp_dir_path = dunce::canonicalize(temp_dir.path()) + .context("Failed to canonicalize temporary directory path")?; + + let temp_path = SystemPath::from_std_path(&temp_dir_path) + .ok_or_else(|| { + anyhow!( + "Temporary directory path is not valid UTF-8: {}", + temp_dir_path.display() + ) + })? + .to_path_buf(); + + // Generate a minimal pyproject.toml + let pyproject_toml = format!( + r#"[project] +name = "mdtest-deps" +version = "0.1.0" +requires-python = "~={python_version}.0" +dependencies = [ +{deps} +] +"#, + python_version = python_version, + deps = dependencies + .iter() + .map(|dep| format!(" \"{dep}\",")) + .collect::>() + .join("\n") + ); + + std::fs::write( + temp_path.join("pyproject.toml").as_std_path(), + pyproject_toml, + ) + .context("Failed to write pyproject.toml")?; + + // Convert PythonPlatform to uv's platform format + let uv_platform = match python_platform { + PythonPlatform::Identifier(id) => match id.as_str() { + "win32" => "windows", + "darwin" => "macos", + "linux" => "linux", + other => other, + }, + PythonPlatform::All => { + bail!("For an mdtest with external dependencies, a Python platform must be specified"); + } + }; + + // Run `uv sync` to install dependencies + let uv_sync_output = std::process::Command::new("uv") + .args(["sync", "--python-platform", uv_platform]) + .current_dir(temp_path.as_std_path()) + .output() + .context("Failed to run `uv sync`. Is `uv` installed?")?; + + if !uv_sync_output.status.success() { + let stderr = String::from_utf8_lossy(&uv_sync_output.stderr); + bail!( + "`uv sync` failed with exit code {:?}:\n{}", + uv_sync_output.status.code(), + stderr + ); + } + + let venv_path = temp_path.join(".venv"); + + copy_site_packages_to_db(db, &venv_path, dest_venv_path, python_version) +} + +/// Copy the site-packages directory from a real virtual environment to the in-memory filesystem of `db`. +/// +/// This recursively copies all files from the venv's site-packages directory into the +/// in-memory filesystem at the specified destination path. +fn copy_site_packages_to_db( + db: &mut Db, + venv_path: &SystemPath, + dest_venv_path: &SystemPath, + _python_version: PythonVersion, +) -> Result<()> { + // Discover the site-packages directory in the virtual environment + let system = OsSystem::new(venv_path); + let env = PythonEnvironment::new(venv_path, SysPrefixPathOrigin::LocalVenv, &system) + .context("Failed to create Python environment for temporary virtual environment")?; + + let site_packages_paths = env + .site_packages_paths(&system) + .context(format!("Failed to discover site-packages in '{venv_path}'"))?; + + let site_packages_path = site_packages_paths + .into_iter() + .next() + .ok_or_else(|| anyhow!("No site-packages directory found in '{venv_path}'"))?; + + // Create the destination directory structure + let relative_site_packages = site_packages_path.strip_prefix(venv_path).map_err(|_| { + anyhow!("site-packages path '{site_packages_path}' is not under venv path '{venv_path}'") + })?; + let dest_site_packages = dest_venv_path.join(relative_site_packages); + db.create_directory_all(&dest_site_packages) + .context("Failed to create site-packages directory in database")?; + + // Recursively copy all files from site-packages + copy_directory_recursive(db, &site_packages_path, &dest_site_packages)?; + + Ok(()) +} + +fn copy_directory_recursive(db: &mut Db, src: &SystemPath, dest: &SystemPath) -> Result<()> { + use std::fs; + + for entry in fs::read_dir(src.as_std_path()) + .with_context(|| format!("Failed to read directory {src}"))? + { + let entry = entry.with_context(|| format!("Failed to read directory entry in {src}"))?; + let entry_path = entry.path(); + let file_type = entry + .file_type() + .with_context(|| format!("Failed to get file type for {}", entry_path.display()))?; + + let src_path = SystemPath::from_std_path(&entry_path) + .ok_or_else(|| anyhow!("Path {} is not valid UTF-8", entry_path.display()))?; + + let file_name = entry.file_name(); + let file_name_str = file_name.to_str().ok_or_else(|| { + anyhow!( + "File name {} is not valid UTF-8", + file_name.to_string_lossy() + ) + })?; + + let dest_path = dest.join(file_name_str); + + if file_type.is_dir() { + // Skip __pycache__ directories and other unnecessary directories + if file_name_str == "__pycache__" || file_name_str.ends_with(".dist-info") { + continue; + } + + db.create_directory_all(&dest_path) + .with_context(|| format!("Failed to create directory {dest_path}"))?; + + copy_directory_recursive(db, src_path, &dest_path)?; + } else if file_type.is_file() { + let is_python_source = entry_path.extension().is_some_and(|ext| { + ext.eq_ignore_ascii_case("py") || ext.eq_ignore_ascii_case("pyi") + }); + + if !is_python_source { + // Skip all non-Python files (binaries, data files, etc.) + continue; + } + + let contents = fs::read_to_string(src_path.as_std_path()) + .with_context(|| format!("Failed to read file {src_path}"))?; + + db.write_file(&dest_path, contents) + .with_context(|| format!("Failed to write file {dest_path}"))?; + } + } + + Ok(()) +} diff --git a/crates/ty_test/src/lib.rs b/crates/ty_test/src/lib.rs index feb38bdf66..ad49261739 100644 --- a/crates/ty_test/src/lib.rs +++ b/crates/ty_test/src/lib.rs @@ -28,6 +28,7 @@ mod assertion; mod config; mod db; mod diagnostic; +mod external_dependencies; mod matcher; mod parser; @@ -70,16 +71,21 @@ pub fn run( Log::Filter(filter) => setup_logging_with_filter(filter), }); - let failures = run_test(&mut db, relative_fixture_path, snapshot_path, &test); - let inconsistencies = run_module_resolution_consistency_test(&db); - let this_test_failed = failures.is_err() || inconsistencies.is_err(); + let result = run_test(&mut db, relative_fixture_path, snapshot_path, &test); + let inconsistencies = if result.as_ref().is_ok_and(|t| t.has_been_skipped()) { + Ok(()) + } else { + run_module_resolution_consistency_test(&db) + }; + + let this_test_failed = result.is_err() || inconsistencies.is_err(); any_failures = any_failures || this_test_failed; if this_test_failed && output_format.is_cli() { println!("\n{}\n", test.name().bold().underline()); } - if let Err(failures) = failures { + if let Err(failures) = result { let md_index = LineIndex::from_source_text(&source); for test_failures in failures { @@ -212,12 +218,24 @@ impl OutputFormat { } } +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum TestOutcome { + Success, + Skipped, +} + +impl TestOutcome { + const fn has_been_skipped(self) -> bool { + matches!(self, TestOutcome::Skipped) + } +} + fn run_test( db: &mut db::Db, relative_fixture_path: &Utf8Path, snapshot_path: &Utf8Path, test: &parser::MarkdownTest, -) -> Result<(), Failures> { +) -> Result { // Initialize the system and remove all files and directories to reset the system to a clean state. match test.configuration().system.unwrap_or_default() { SystemKind::InMemory => { @@ -248,6 +266,27 @@ fn run_test( let custom_typeshed_path = test.configuration().typeshed(); let python_version = test.configuration().python_version().unwrap_or_default(); + // Setup virtual environment with dependencies if specified + let venv_for_external_dependencies = SystemPathBuf::from("/.venv"); + if let Some(dependencies) = test.configuration().dependencies() { + if !std::env::var("MDTEST_EXTERNAL").is_ok_and(|v| v == "1") { + return Ok(TestOutcome::Skipped); + } + + let python_platform = test.configuration().python_platform().expect( + "Tests with external dependencies must specify `python-platform` in the configuration", + ); + + external_dependencies::setup_venv( + db, + dependencies, + python_version, + &python_platform, + &venv_for_external_dependencies, + ) + .expect("Failed to setup in-memory virtual environment with dependencies"); + } + let mut typeshed_files = vec![]; let mut has_custom_versions_file = false; @@ -350,7 +389,19 @@ fn run_test( let configuration = test.configuration(); - let site_packages_paths = if let Some(python) = configuration.python() { + let site_packages_paths = if configuration.dependencies().is_some() { + // If dependencies were specified, use the venv we just set up + let environment = PythonEnvironment::new( + &venv_for_external_dependencies, + SysPrefixPathOrigin::PythonCliFlag, + db.system(), + ) + .expect("Python environment to point to a valid path"); + environment + .site_packages_paths(db.system()) + .expect("Python environment to be valid") + .into_vec() + } else if let Some(python) = configuration.python() { let environment = PythonEnvironment::new(python, SysPrefixPathOrigin::PythonCliFlag, db.system()) .expect("Python environment to point to a valid path"); @@ -551,7 +602,7 @@ fn run_test( } if failures.is_empty() { - Ok(()) + Ok(TestOutcome::Success) } else { Err(failures) } From a364195335eb920ff429c43832c4ee464051ea9a Mon Sep 17 00:00:00 2001 From: Dhruv Manilawala Date: Mon, 8 Dec 2025 18:04:30 +0530 Subject: [PATCH 39/65] [ty] Avoid diagnostic when `typing_extensions.ParamSpec` uses `default` parameter (#21839) ## Summary fixes: https://github.com/astral-sh/ty/issues/1798 ## Test Plan Add mdtest. --- .../mdtest/generics/legacy/paramspec.md | 32 +++++++++++++++++++ .../regression/paramspec_on_python39.md | 19 +++++++++++ crates/ty_python_semantic/src/types/class.rs | 26 +++++++++++++-- .../src/types/infer/builder.rs | 25 +++++++++++---- 4 files changed, 92 insertions(+), 10 deletions(-) create mode 100644 crates/ty_python_semantic/resources/mdtest/regression/paramspec_on_python39.md diff --git a/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md b/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md index 49399f9c5a..201ce8d0e2 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/legacy/paramspec.md @@ -102,6 +102,38 @@ Other values are invalid. P4 = ParamSpec("P4", default=int) ``` +### `default` parameter in `typing_extensions.ParamSpec` + +```toml +[environment] +python-version = "3.12" +``` + +The `default` parameter to `ParamSpec` is available from `typing_extensions` in Python 3.12 and +earlier. + +```py +from typing import ParamSpec +from typing_extensions import ParamSpec as ExtParamSpec + +# This shouldn't emit a diagnostic +P1 = ExtParamSpec("P1", default=[int, str]) + +# But, this should +# error: [invalid-paramspec] "The `default` parameter of `typing.ParamSpec` was added in Python 3.13" +P2 = ParamSpec("P2", default=[int, str]) +``` + +And, it allows the same set of values as `typing.ParamSpec`. + +```py +P3 = ExtParamSpec("P3", default=...) +P4 = ExtParamSpec("P4", default=P3) + +# error: [invalid-paramspec] +P5 = ExtParamSpec("P5", default=int) +``` + ### Forward references in stub files Stubs natively support forward references, so patterns that would raise `NameError` at runtime are diff --git a/crates/ty_python_semantic/resources/mdtest/regression/paramspec_on_python39.md b/crates/ty_python_semantic/resources/mdtest/regression/paramspec_on_python39.md new file mode 100644 index 0000000000..1760669cf0 --- /dev/null +++ b/crates/ty_python_semantic/resources/mdtest/regression/paramspec_on_python39.md @@ -0,0 +1,19 @@ +# `ParamSpec` regression on 3.9 + +```toml +[environment] +python-version = "3.9" +``` + +This used to panic when run on Python 3.9 because `ParamSpec` was introduced in Python 3.10 and the +diagnostic message for `invalid-exception-caught` expects to construct `typing.ParamSpec`. + +```py +# error: [invalid-syntax] +def foo[**P]() -> None: + try: + pass + # error: [invalid-exception-caught] "Invalid object caught in an exception handler: Object has type `typing.ParamSpec`" + except P: + pass +``` diff --git a/crates/ty_python_semantic/src/types/class.rs b/crates/ty_python_semantic/src/types/class.rs index 514b312313..855e8922a0 100644 --- a/crates/ty_python_semantic/src/types/class.rs +++ b/crates/ty_python_semantic/src/types/class.rs @@ -4168,6 +4168,8 @@ pub enum KnownClass { SpecialForm, TypeVar, ParamSpec, + // typing_extensions.ParamSpec + ExtensionsParamSpec, // must be distinct from typing.ParamSpec, backports new features ParamSpecArgs, ParamSpecKwargs, ProtocolMeta, @@ -4239,6 +4241,7 @@ impl KnownClass { | Self::TypeVar | Self::ExtensionsTypeVar | Self::ParamSpec + | Self::ExtensionsParamSpec | Self::ParamSpecArgs | Self::ParamSpecKwargs | Self::TypeVarTuple @@ -4371,6 +4374,7 @@ impl KnownClass { | KnownClass::TypeVar | KnownClass::ExtensionsTypeVar | KnownClass::ParamSpec + | KnownClass::ExtensionsParamSpec | KnownClass::ParamSpecArgs | KnownClass::ParamSpecKwargs | KnownClass::TypeVarTuple @@ -4457,6 +4461,7 @@ impl KnownClass { | KnownClass::TypeVar | KnownClass::ExtensionsTypeVar | KnownClass::ParamSpec + | KnownClass::ExtensionsParamSpec | KnownClass::ParamSpecArgs | KnownClass::ParamSpecKwargs | KnownClass::TypeVarTuple @@ -4543,6 +4548,7 @@ impl KnownClass { | KnownClass::TypeVar | KnownClass::ExtensionsTypeVar | KnownClass::ParamSpec + | KnownClass::ExtensionsParamSpec | KnownClass::ParamSpecArgs | KnownClass::ParamSpecKwargs | KnownClass::TypeVarTuple @@ -4634,6 +4640,7 @@ impl KnownClass { | Self::TypeVar | Self::ExtensionsTypeVar | Self::ParamSpec + | Self::ExtensionsParamSpec | Self::ParamSpecArgs | Self::ParamSpecKwargs | Self::TypeVarTuple @@ -4733,6 +4740,7 @@ impl KnownClass { | KnownClass::TypeVar | KnownClass::ExtensionsTypeVar | KnownClass::ParamSpec + | KnownClass::ExtensionsParamSpec | KnownClass::ParamSpecArgs | KnownClass::ParamSpecKwargs | KnownClass::ProtocolMeta @@ -4806,6 +4814,7 @@ impl KnownClass { Self::TypeVar => "TypeVar", Self::ExtensionsTypeVar => "TypeVar", Self::ParamSpec => "ParamSpec", + Self::ExtensionsParamSpec => "ParamSpec", Self::ParamSpecArgs => "ParamSpecArgs", Self::ParamSpecKwargs => "ParamSpecKwargs", Self::TypeVarTuple => "TypeVarTuple", @@ -5139,11 +5148,18 @@ impl KnownClass { Self::TypeAliasType | Self::ExtensionsTypeVar | Self::TypeVarTuple - | Self::ParamSpec + | Self::ExtensionsParamSpec | Self::ParamSpecArgs | Self::ParamSpecKwargs | Self::Deprecated | Self::NewType => KnownModule::TypingExtensions, + Self::ParamSpec => { + if Program::get(db).python_version(db) >= PythonVersion::PY310 { + KnownModule::Typing + } else { + KnownModule::TypingExtensions + } + } Self::NoDefaultType => { let python_version = Program::get(db).python_version(db); @@ -5247,6 +5263,7 @@ impl KnownClass { | Self::TypeVar | Self::ExtensionsTypeVar | Self::ParamSpec + | Self::ExtensionsParamSpec | Self::ParamSpecArgs | Self::ParamSpecKwargs | Self::TypeVarTuple @@ -5337,6 +5354,7 @@ impl KnownClass { | Self::TypeVar | Self::ExtensionsTypeVar | Self::ParamSpec + | Self::ExtensionsParamSpec | Self::ParamSpecArgs | Self::ParamSpecKwargs | Self::TypeVarTuple @@ -5420,7 +5438,7 @@ impl KnownClass { "Iterable" => &[Self::Iterable], "Iterator" => &[Self::Iterator], "Mapping" => &[Self::Mapping], - "ParamSpec" => &[Self::ParamSpec], + "ParamSpec" => &[Self::ParamSpec, Self::ExtensionsParamSpec], "ParamSpecArgs" => &[Self::ParamSpecArgs], "ParamSpecKwargs" => &[Self::ParamSpecKwargs], "TypeVarTuple" => &[Self::TypeVarTuple], @@ -5542,6 +5560,8 @@ impl KnownClass { | Self::TypedDictFallback | Self::TypeVar | Self::ExtensionsTypeVar + | Self::ParamSpec + | Self::ExtensionsParamSpec | Self::NamedTupleLike | Self::ConstraintSet | Self::GenericContext @@ -5555,7 +5575,6 @@ impl KnownClass { | Self::TypeAliasType | Self::NoDefaultType | Self::SupportsIndex - | Self::ParamSpec | Self::ParamSpecArgs | Self::ParamSpecKwargs | Self::TypeVarTuple @@ -5970,6 +5989,7 @@ mod tests { KnownClass::Member | KnownClass::Nonmember | KnownClass::StrEnum => { PythonVersion::PY311 } + KnownClass::ParamSpec => PythonVersion::PY310, _ => PythonVersion::PY37, }; (class, version_added) diff --git a/crates/ty_python_semantic/src/types/infer/builder.rs b/crates/ty_python_semantic/src/types/infer/builder.rs index 6014bb1f3f..b30dac0ac2 100644 --- a/crates/ty_python_semantic/src/types/infer/builder.rs +++ b/crates/ty_python_semantic/src/types/infer/builder.rs @@ -5033,9 +5033,15 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { ) => { self.infer_legacy_typevar(target, call_expr, definition, typevar_class) } - Some(KnownClass::ParamSpec) => { - self.infer_paramspec(target, call_expr, definition) - } + Some( + paramspec_class @ (KnownClass::ParamSpec + | KnownClass::ExtensionsParamSpec), + ) => self.infer_legacy_paramspec( + target, + call_expr, + definition, + paramspec_class, + ), Some(KnownClass::NewType) => { self.infer_newtype_expression(target, call_expr, definition) } @@ -5080,11 +5086,12 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { target_ty } - fn infer_paramspec( + fn infer_legacy_paramspec( &mut self, target: &ast::Expr, call_expr: &ast::ExprCall, definition: Definition<'db>, + known_class: KnownClass, ) -> Type<'db> { fn error<'db>( context: &InferContext<'db, '_>, @@ -5101,7 +5108,8 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { let db = self.db(); let arguments = &call_expr.arguments; - let assume_all_features = self.in_stub(); + let is_typing_extensions = known_class == KnownClass::ExtensionsParamSpec; + let assume_all_features = self.in_stub() || is_typing_extensions; let python_version = Program::get(db).python_version(db); let have_features_from = |version: PythonVersion| assume_all_features || python_version >= version; @@ -5594,7 +5602,10 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { self.infer_type_expression(&bound.value); } if let Some(default) = arguments.find_keyword("default") { - if let Some(KnownClass::ParamSpec) = known_class { + if matches!( + known_class, + Some(KnownClass::ParamSpec | KnownClass::ExtensionsParamSpec) + ) { self.infer_paramspec_default(&default.value); } else { self.infer_type_expression(&default.value); @@ -8440,7 +8451,7 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { ); } } - Some(KnownClass::ParamSpec) => { + Some(KnownClass::ParamSpec | KnownClass::ExtensionsParamSpec) => { if let Some(builder) = self .context .report_lint(&INVALID_PARAMSPEC, call_expression) From c99e10eedca552f43f89b25fde2512c3c1f19fa3 Mon Sep 17 00:00:00 2001 From: David Peter Date: Mon, 8 Dec 2025 14:36:13 +0100 Subject: [PATCH 40/65] [ty] Increase SQLAlchemy test coverage (#21843) ## Summary Increase our SQLAlchemy test coverage to make sure we understand `Session.scalar`, `Session.scalars`, `Session.execute` (and their async equivalents), as well as `Result.tuples`, `Result.one_or_none`, `Row._tuple`. --- .../resources/mdtest/external/sqlalchemy.md | 122 +++++++++++++++--- 1 file changed, 103 insertions(+), 19 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md b/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md index 0ac9c4c219..d4a01c7701 100644 --- a/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md +++ b/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md @@ -9,9 +9,9 @@ python-platform = "linux" dependencies = ["SQLAlchemy==2.0.44"] ``` -## Basic model +## ORM Model -Here, we mostly make sure that ty understands SQLAlchemy's dataclass-transformer setup: +This test makes sure that ty understands SQLAlchemy's `dataclass_transform` setup: ```py from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column @@ -40,9 +40,9 @@ reveal_type(User.__init__) # revealed: def __init__(self, **kw: Any) -> Unknown invalid_user = User(invalid_arg=42) ``` -## Queries +## Basic query example -First, the basic setup: +First, set up a `Session`: ```py from datetime import datetime @@ -57,7 +57,7 @@ engine = create_engine("sqlite://example.db") session = Session(engine) ``` -Now we can declare a simple model: +And define a simple model: ```py class Base(DeclarativeBase): @@ -71,7 +71,7 @@ class User(Base): is_admin: Mapped[bool] = mapped_column(Boolean, default=False) ``` -And perform simple queries: +Finally, we can execute queries: ```py stmt = select(User) @@ -84,21 +84,27 @@ for row in session.execute(stmt): reveal_type(row) # revealed: Row[tuple[User]] stmt = select(User).where(User.name == "Alice") -alice = session.scalars(stmt).first() -reveal_type(alice) # revealed: User | None +alice1 = session.scalars(stmt).first() +reveal_type(alice1) # revealed: User | None +alice2 = session.scalar(stmt) +reveal_type(alice2) # revealed: User | None + +result = session.execute(stmt) +row = result.one_or_none() +assert row is not None +(alice3,) = row._tuple() +reveal_type(alice3) # revealed: User +``` + +This also works with more complex queries: + +```py stmt = select(User).where(User.is_admin == True).order_by(User.name).limit(10) admin_users = session.scalars(stmt).all() reveal_type(admin_users) # revealed: Sequence[User] ``` -This also works with the legacy `query` API: - -```py -users_legacy = session.query(User).all() -reveal_type(users_legacy) # revealed: list[User] -``` - We can also specify particular columns to select: ```py @@ -106,19 +112,97 @@ stmt = select(User.id, User.name) # TODO: should be `Select[tuple[int, str]]` reveal_type(stmt) # revealed: Select[tuple[Unknown, Unknown]] +ids_and_names = session.execute(stmt).all() +# TODO: should be `Sequence[Row[tuple[int, str]]]` +reveal_type(ids_and_names) # revealed: Sequence[Row[tuple[Unknown, Unknown]]] + for row in session.execute(stmt): - # TODO: should be `Row[Tuple[int, str]]` + # TODO: should be `Row[tuple[int, str]]` reveal_type(row) # revealed: Row[tuple[Unknown, Unknown]] + +for user_id, name in session.execute(stmt).tuples(): + # TODO: should be `int` + reveal_type(user_id) # revealed: Unknown + # TODO: should be `str` + reveal_type(name) # revealed: Unknown + +stmt = select(User.id, User.name).where(User.name == "Alice") +alice1 = session.scalars(stmt).first() +# TODO: should be `tuple[int, str] | None` +reveal_type(alice1) # revealed: Any | None + +alice2 = session.scalar(stmt) +# TODO: should be `tuple[int, str] | None` +reveal_type(alice2) # revealed: Any + +result = session.execute(stmt) +row = result.one_or_none() +assert row is not None +(user_id, name) = row._tuple() +# TODO: should be `int` +reveal_type(user_id) # revealed: Unknown +# TODO: should be `str` +reveal_type(name) # revealed: Unknown ``` -And similarly with the legacy `query` API: +Using the legacy `query` API also works: + +```py +users_legacy = session.query(User).all() +reveal_type(users_legacy) # revealed: list[User] + +query = session.query(User) +reveal_type(query) # revealed: Query[User] + +reveal_type(query.all()) # revealed: list[User] + +for row in query: + reveal_type(row) # revealed: User +``` + +And similarly when specifying particular columns: ```py query = session.query(User.id, User.name) # TODO: should be `RowReturningQuery[tuple[int, str]]` reveal_type(query) # revealed: RowReturningQuery[tuple[Unknown, Unknown]] -for row in query.all(): - # TODO: should be `Row[Tuple[int, str]]` +# TODO: should be `list[Row[tuple[int, str]]]` +reveal_type(query.all()) # revealed: list[Row[tuple[Unknown, Unknown]]] + +for row in query: + # TODO: should be `Row[tuple[int, str]]` reveal_type(row) # revealed: Row[tuple[Unknown, Unknown]] ``` + +## Async API + +The async API is supported as well: + +```py +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy import select, Integer, Text +from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column + +class Base(DeclarativeBase): + pass + +class User(Base): + __tablename__ = "users" + + id: Mapped[int] = mapped_column(Integer, primary_key=True) + name: Mapped[str] = mapped_column(Text) + +async def test_async(session: AsyncSession): + stmt = select(User).where(User.name == "Alice") + alice = await session.scalar(stmt) + reveal_type(alice) # revealed: User | None + + stmt = select(User.id, User.name) + result = await session.execute(stmt) + for user_id, name in result.tuples(): + # TODO: should be `int` + reveal_type(user_id) # revealed: Unknown + # TODO: should be `str` + reveal_type(name) # revealed: Unknown +``` From b845e81c4a651386e0fa10571b85e8dfd914cd79 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Mon, 8 Dec 2025 08:50:51 -0500 Subject: [PATCH 41/65] Use `memchr` for computing line indexes (#21838) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Some benchmarks with Claude's help: | File | Size | Baseline | Optimized | Speedup | |---------------------|-------|----------------------|----------------------|---------| | numpy/globals.py | 3 KB | 1.48 µs (1.95 GiB/s) | 740 ns (3.89 GiB/s) | 2.0x | | unicode/pypinyin.py | 4 KB | 2.04 µs (2.01 GiB/s) | 1.18 µs (3.49 GiB/s) | 1.7x | | pydantic/types.py | 26 KB | 13.1 µs (1.90 GiB/s) | 5.88 µs (4.23 GiB/s) | 2.2x | | numpy/ctypeslib.py | 17 KB | 8.45 µs (1.92 GiB/s) | 3.94 µs (4.13 GiB/s) | 2.1x | | large/dataset.py | 41 KB | 21.6 µs (1.84 GiB/s) | 11.2 µs (3.55 GiB/s) | 1.9x | I think that I originally thought we _had_ to iterate character-by-character here because we needed to do the ASCII check, but the ASCII check can be vectorized by LLVM (and the "search for newlines" can be done with `memchr`). --- crates/ruff_source_file/src/line_index.rs | 31 +++++++++++++---------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/crates/ruff_source_file/src/line_index.rs b/crates/ruff_source_file/src/line_index.rs index 4adb9d17b7..c1d0769e83 100644 --- a/crates/ruff_source_file/src/line_index.rs +++ b/crates/ruff_source_file/src/line_index.rs @@ -33,26 +33,29 @@ impl LineIndex { line_starts.push(TextSize::default()); let bytes = text.as_bytes(); - let mut utf8 = false; assert!(u32::try_from(bytes.len()).is_ok()); - for (i, byte) in bytes.iter().enumerate() { - utf8 |= !byte.is_ascii(); - - match byte { - // Only track one line break for `\r\n`. - b'\r' if bytes.get(i + 1) == Some(&b'\n') => continue, - b'\n' | b'\r' => { - // SAFETY: Assertion above guarantees `i <= u32::MAX` - #[expect(clippy::cast_possible_truncation)] - line_starts.push(TextSize::from(i as u32) + TextSize::from(1)); - } - _ => {} + for i in memchr::memchr2_iter(b'\n', b'\r', bytes) { + // Skip `\r` in `\r\n` sequences (only count the `\n`). + if bytes[i] == b'\r' && bytes.get(i + 1) == Some(&b'\n') { + continue; } + // SAFETY: Assertion above guarantees `i <= u32::MAX` + #[expect(clippy::cast_possible_truncation)] + line_starts.push(TextSize::from(i as u32) + TextSize::from(1)); } - let kind = if utf8 { + // Determine whether the source text is ASCII. + // + // Empirically, this simple loop is auto-vectorized by LLVM and benchmarks faster than both + // `str::is_ascii()` and hand-written SIMD. + let mut has_non_ascii = false; + for byte in bytes { + has_non_ascii |= !byte.is_ascii(); + } + + let kind = if has_non_ascii { IndexKind::Utf8 } else { IndexKind::Ascii From 4364ffbdd33095ad72973d4afcf7aac5ab0c88ea Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Mon, 8 Dec 2025 15:22:11 +0100 Subject: [PATCH 42/65] [ty] Don't create a related diagnostic for the primary annotation of sub-diagnostics (#21845) --- crates/ruff_db/src/diagnostic/mod.rs | 4 ++++ crates/ty_server/src/server/api/diagnostics.rs | 1 + 2 files changed, 5 insertions(+) diff --git a/crates/ruff_db/src/diagnostic/mod.rs b/crates/ruff_db/src/diagnostic/mod.rs index 33348ddf2e..cf1114b11f 100644 --- a/crates/ruff_db/src/diagnostic/mod.rs +++ b/crates/ruff_db/src/diagnostic/mod.rs @@ -888,6 +888,10 @@ impl Annotation { pub fn hide_snippet(&mut self, yes: bool) { self.hide_snippet = yes; } + + pub fn is_primary(&self) -> bool { + self.is_primary + } } /// Tags that can be associated with an annotation. diff --git a/crates/ty_server/src/server/api/diagnostics.rs b/crates/ty_server/src/server/api/diagnostics.rs index d25e6f5243..3344738cbf 100644 --- a/crates/ty_server/src/server/api/diagnostics.rs +++ b/crates/ty_server/src/server/api/diagnostics.rs @@ -349,6 +349,7 @@ pub(super) fn to_lsp_diagnostic( sub_diagnostic .annotations() .iter() + .filter(|annotation| !annotation.is_primary()) .filter_map(|annotation| { annotation_to_related_information(db, annotation, encoding) }), From 46861116813e42ca4ca347a5c71f118be640a117 Mon Sep 17 00:00:00 2001 From: David Peter Date: Mon, 8 Dec 2025 15:22:55 +0100 Subject: [PATCH 43/65] [ty] More SQLAlchemy test updates (#21846) Minor updates to the SQLAlchemy test suite. I verified all expected results using pyright. --- .../resources/mdtest/external/sqlalchemy.md | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md b/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md index d4a01c7701..61e6668de1 100644 --- a/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md +++ b/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md @@ -45,9 +45,7 @@ invalid_user = User(invalid_arg=42) First, set up a `Session`: ```py -from datetime import datetime - -from sqlalchemy import select, Integer, Text, Boolean, DateTime +from sqlalchemy import select, Integer, Text, Boolean from sqlalchemy.orm import Session from sqlalchemy.orm import DeclarativeBase from sqlalchemy.orm import Mapped, mapped_column @@ -126,15 +124,6 @@ for user_id, name in session.execute(stmt).tuples(): # TODO: should be `str` reveal_type(name) # revealed: Unknown -stmt = select(User.id, User.name).where(User.name == "Alice") -alice1 = session.scalars(stmt).first() -# TODO: should be `tuple[int, str] | None` -reveal_type(alice1) # revealed: Any | None - -alice2 = session.scalar(stmt) -# TODO: should be `tuple[int, str] | None` -reveal_type(alice2) # revealed: Any - result = session.execute(stmt) row = result.one_or_none() assert row is not None @@ -143,6 +132,19 @@ assert row is not None reveal_type(user_id) # revealed: Unknown # TODO: should be `str` reveal_type(name) # revealed: Unknown + +stmt = select(User.id).where(User.name == "Alice") + +# TODO: should be `Select[tuple[int]]` +reveal_type(stmt) # revealed: Select[tuple[Unknown]] + +alice_id = session.scalars(stmt).first() +# TODO: should be `int | None` +reveal_type(alice_id) # revealed: Unknown | None + +alice_id = session.scalar(stmt) +# TODO: should be `int | None` +reveal_type(alice_id) # revealed: Unknown | None ``` Using the legacy `query` API also works: From 7519f6c27bc3e5634ea45f8231e5e27c576d3331 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Mon, 8 Dec 2025 14:35:36 +0000 Subject: [PATCH 44/65] Print Python version and Python platform in the fuzzer output when fuzzing fails (#21844) --- python/py-fuzzer/fuzz.py | 25 ++++++++++++++++++++++--- python/py-fuzzer/pyproject.toml | 2 +- python/py-fuzzer/uv.lock | 27 +++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/python/py-fuzzer/fuzz.py b/python/py-fuzzer/fuzz.py index 090f329b32..a9659b8cf0 100644 --- a/python/py-fuzzer/fuzz.py +++ b/python/py-fuzzer/fuzz.py @@ -33,7 +33,7 @@ from collections.abc import Callable from dataclasses import KW_ONLY, dataclass from functools import partial from pathlib import Path -from typing import NewType, NoReturn, assert_never +from typing import Final, NewType, NoReturn, assert_never from pysource_codegen import generate as generate_random_code from pysource_minimize import CouldNotMinimize, minimize as minimize_repro @@ -44,6 +44,12 @@ MinimizedSourceCode = NewType("MinimizedSourceCode", str) Seed = NewType("Seed", int) ExitCode = NewType("ExitCode", int) +TY_TARGET_PLATFORM: Final = "linux" + +# ty supports `--python-version=3.8`, but typeshed only supports 3.9+, +# so that's probably the oldest version we can usefully test with. +OLDEST_SUPPORTED_PYTHON: Final = "3.9" + def ty_contains_bug(code: str, *, ty_executable: Path) -> bool: """Return `True` if the code triggers a panic in type-checking code.""" @@ -51,7 +57,17 @@ def ty_contains_bug(code: str, *, ty_executable: Path) -> bool: input_file = Path(tempdir, "input.py") input_file.write_text(code) completed_process = subprocess.run( - [ty_executable, "check", input_file], capture_output=True, text=True + [ + ty_executable, + "check", + input_file, + "--python-version", + OLDEST_SUPPORTED_PYTHON, + "--python-platform", + TY_TARGET_PLATFORM, + ], + capture_output=True, + text=True, ) return completed_process.returncode not in {0, 1, 2} @@ -137,7 +153,10 @@ class FuzzResult: case Executable.RUFF: panic_message = f"The following code triggers a {new}parser bug:" case Executable.TY: - panic_message = f"The following code triggers a {new}ty panic:" + panic_message = ( + f"The following code triggers a {new}ty panic with " + f"`--python-version={OLDEST_SUPPORTED_PYTHON} --python-platform={TY_TARGET_PLATFORM}`:" + ) case _ as unreachable: assert_never(unreachable) diff --git a/python/py-fuzzer/pyproject.toml b/python/py-fuzzer/pyproject.toml index 52bc17f25a..de1af7cc26 100644 --- a/python/py-fuzzer/pyproject.toml +++ b/python/py-fuzzer/pyproject.toml @@ -19,7 +19,7 @@ requires = ["hatchling"] build-backend = "hatchling.build" [dependency-groups] -dev = ["mypy", "ruff"] +dev = ["mypy", "ruff", "ty"] [tool.hatch.build.targets.wheel] include = ["fuzz.py"] diff --git a/python/py-fuzzer/uv.lock b/python/py-fuzzer/uv.lock index 7716e16da9..096049a945 100644 --- a/python/py-fuzzer/uv.lock +++ b/python/py-fuzzer/uv.lock @@ -89,6 +89,7 @@ dependencies = [ dev = [ { name = "mypy" }, { name = "ruff" }, + { name = "ty" }, ] [package.metadata] @@ -104,6 +105,7 @@ requires-dist = [ dev = [ { name = "mypy" }, { name = "ruff" }, + { name = "ty" }, ] [[package]] @@ -196,6 +198,31 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4f/bd/de8d508070629b6d84a30d01d57e4a65c69aa7f5abe7560b8fad3b50ea59/termcolor-3.1.0-py3-none-any.whl", hash = "sha256:591dd26b5c2ce03b9e43f391264626557873ce1d379019786f99b0c2bee140aa", size = 7684, upload-time = "2025-04-30T11:37:52.382Z" }, ] +[[package]] +name = "ty" +version = "0.0.1a32" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/92/8da015685fb83734a2a83de02080e64d182509de77fa9bcf3eed12eeab4b/ty-0.0.1a32.tar.gz", hash = "sha256:12f62e8a3dd0eaeb9557d74b1c32f0616ae40eae10a4f411e1e2a73225f67ff2", size = 4689151, upload-time = "2025-12-05T21:04:26.885Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/e6/fdc35c9ba047f16afdfedf36fb51c221e0190ccde9f70ee28e77084d6612/ty-0.0.1a32-py3-none-linux_armv6l.whl", hash = "sha256:ffe595eaf616f06f58f951766477830a55c2502d2c9f77dde8f60d9a836e0645", size = 9673128, upload-time = "2025-12-05T21:04:17.702Z" }, + { url = "https://files.pythonhosted.org/packages/19/20/eaff31048e2f309f37478f7d715c8de9f9bab03cba4758da27b9311147af/ty-0.0.1a32-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:07f1dce88ad6028fb14665aefe4e6697012c34bd48edd37d02b7eb6a833dbf62", size = 9434094, upload-time = "2025-12-05T21:04:03.383Z" }, + { url = "https://files.pythonhosted.org/packages/67/d4/ea8ed57d11b81c459f23561fd6bfb0f54a8d4120cf72541e3bdf71d46202/ty-0.0.1a32-py3-none-macosx_11_0_arm64.whl", hash = "sha256:8fab7ed12528c77ddd600a9638ca859156a53c20f1e381353fa87a255bd397eb", size = 8980296, upload-time = "2025-12-05T21:04:28.912Z" }, + { url = "https://files.pythonhosted.org/packages/49/02/3ce98bbfbb3916678d717ee69358d38a404ca9a39391dda8874b66dd5ee7/ty-0.0.1a32-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ace395280fc21e25eff0a53cfbd68170f90a4b8ef2f85dfabe1ecbca2ced456b", size = 9263054, upload-time = "2025-12-05T21:04:05.619Z" }, + { url = "https://files.pythonhosted.org/packages/b7/be/a639638bcd1664de2d70a87da6c4fe0e3272a60b7fa3f0c108a956a456bd/ty-0.0.1a32-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2bcbeed7f5ed8e3c1c7e525fce541e7b943ac04ee7fe369a926551b5e50ea4a8", size = 9451396, upload-time = "2025-12-05T21:04:01.265Z" }, + { url = "https://files.pythonhosted.org/packages/1f/a4/2bcf54e842a3d10dc14b369f28a3bab530c5d7ddba624e910b212bda93ee/ty-0.0.1a32-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:60ff2e4493f90f81a260205d87719bb1d3420928a1e4a2a7454af7cbdfed2047", size = 9862726, upload-time = "2025-12-05T21:04:08.806Z" }, + { url = "https://files.pythonhosted.org/packages/5f/c7/19e6719496e59f2f082f34bcac312698366cf50879fdcc3ef76298bfe6a0/ty-0.0.1a32-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:53cad50a59a0d943b06872e0b10f9f2b564805c2ea93f64c7798852bc1901954", size = 10475051, upload-time = "2025-12-05T21:04:31.059Z" }, + { url = "https://files.pythonhosted.org/packages/88/77/bdf0ddb066d2b62f141d058f8a33bb7c8628cdbb8bfa75b20e296b79fb4e/ty-0.0.1a32-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:343d43cdc1d7f649ea2baa64ac2b479da3d679239b94509f1df12f7211561ea9", size = 10232712, upload-time = "2025-12-05T21:04:19.849Z" }, + { url = "https://files.pythonhosted.org/packages/ed/07/f73260a461762a581a007015c1019d40658828ce41576f8c1db88dee574d/ty-0.0.1a32-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f45483e4a84bcf622413712164ea687ce323a9f7013b9e7977c5d623ed937ca9", size = 10237705, upload-time = "2025-12-05T21:04:35.366Z" }, + { url = "https://files.pythonhosted.org/packages/2c/57/dbb92206cf2f798d8c51ea16504e8afb90a139d0ff105c31cec9a1db29f9/ty-0.0.1a32-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d452f30d47002a6bafc36d1b6aee42c321e9ec9f7f43a04a2ee7d48c208b86c", size = 9766469, upload-time = "2025-12-05T21:04:22.236Z" }, + { url = "https://files.pythonhosted.org/packages/c3/5e/143d93bd143abcebcbaa98c8aeec78898553d62d0a5a432cd79e0cf5bd6d/ty-0.0.1a32-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:86c4e31737fe954637890cef1f3e1b479ffb20e836cac3b76050bdbe80005010", size = 9238592, upload-time = "2025-12-05T21:04:11.33Z" }, + { url = "https://files.pythonhosted.org/packages/21/b8/225230ae097ed88f3c92ad974dd77f8e4f86f2594d9cd0c729da39769878/ty-0.0.1a32-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:daf15fa03bc39a76a0fbc9c2d81d79d528f584e3fbe08d71981e3f7912db91d6", size = 9502161, upload-time = "2025-12-05T21:04:37.642Z" }, + { url = "https://files.pythonhosted.org/packages/85/13/cc89955c9637f25f3aca2dd7749c6008639ef036f0b9bea3e9d89e892ff9/ty-0.0.1a32-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6128f6bab5c6dab3d08689fed1d529dc34f50f221f89c8e16064ed0c549dad7a", size = 9603058, upload-time = "2025-12-05T21:04:39.532Z" }, + { url = "https://files.pythonhosted.org/packages/46/77/1fe2793c8065a02d1f70ca7da1b87db49ca621bcbbdb79a18ad79d5d0ab2/ty-0.0.1a32-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:55aab688be1b46776a5a458a1993cae0da7725932c45393399c479c2fa979337", size = 9879903, upload-time = "2025-12-05T21:04:13.567Z" }, + { url = "https://files.pythonhosted.org/packages/fc/47/fd58e80a3e42310b4b649340d5d97403fe796146cae8678b3a031a414b8e/ty-0.0.1a32-py3-none-win32.whl", hash = "sha256:f55ec25088a09236ad1578b656a07fa009c3a353f5923486905ba48175d142a6", size = 9077703, upload-time = "2025-12-05T21:04:15.849Z" }, + { url = "https://files.pythonhosted.org/packages/8d/96/209c417c69317339ea8e9b3277fd98364a0e97dd1ffd3585e143ec7b4e57/ty-0.0.1a32-py3-none-win_amd64.whl", hash = "sha256:ed8d5cbd4e47dfed86aaa27e243008aa4e82b6a5434f3ab95c26d3ee5874d9d7", size = 9922426, upload-time = "2025-12-05T21:04:33.289Z" }, + { url = "https://files.pythonhosted.org/packages/e0/1c/350fd851fb91244f8c80cec218009cbee7564d76c14e2f423b47e69a5cbc/ty-0.0.1a32-py3-none-win_arm64.whl", hash = "sha256:dbb25f9b513d34cee8ce419514eaef03313f45c3f7ab4eb6e6d427ea1f6854af", size = 9453761, upload-time = "2025-12-05T21:04:24.502Z" }, +] + [[package]] name = "typing-extensions" version = "4.15.0" From 385dd2770b2d95c0c67739a1468c954ac8b0ba65 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Mon, 8 Dec 2025 10:24:05 -0500 Subject: [PATCH 45/65] [ty] Avoid double-inference on non-tuple argument to `Annotated` (#21837) ## Summary If you pass a non-tuple to `Annotated`, we end up running inference on it twice. I _think_ the only case here is `Annotated[]`, where we insert a (fake) empty `Name` node in the slice. Closes https://github.com/astral-sh/ty/issues/1801. --- .../resources/mdtest/invalid_syntax.md | 13 +++++++++++++ .../src/types/infer/builder/type_expression.rs | 6 +++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/crates/ty_python_semantic/resources/mdtest/invalid_syntax.md b/crates/ty_python_semantic/resources/mdtest/invalid_syntax.md index 9594492982..cac8006cd6 100644 --- a/crates/ty_python_semantic/resources/mdtest/invalid_syntax.md +++ b/crates/ty_python_semantic/resources/mdtest/invalid_syntax.md @@ -128,3 +128,16 @@ InvalidEmptyUnion = Union[] def _(u: InvalidEmptyUnion): reveal_type(u) # revealed: Unknown ``` + +### `typing.Annotated` + +```py +from typing import Annotated + +# error: [invalid-syntax] "Expected index or slice expression" +# error: [invalid-type-form] "Special form `typing.Annotated` expected at least 2 arguments (one type and at least one metadata element)" +InvalidEmptyAnnotated = Annotated[] + +def _(a: InvalidEmptyAnnotated): + reveal_type(a) # revealed: Unknown +``` diff --git a/crates/ty_python_semantic/src/types/infer/builder/type_expression.rs b/crates/ty_python_semantic/src/types/infer/builder/type_expression.rs index 114cedb734..fbae2c8948 100644 --- a/crates/ty_python_semantic/src/types/infer/builder/type_expression.rs +++ b/crates/ty_python_semantic/src/types/infer/builder/type_expression.rs @@ -1172,7 +1172,11 @@ impl<'db> TypeInferenceBuilder<'db, '_> { ) .in_type_expression(db, self.scope(), None) .unwrap_or_else(|err| err.into_fallback_type(&self.context, subscript, true)); - self.store_expression_type(arguments_slice, ty); + // Only store on the tuple slice; non-tuple cases are handled by + // `infer_subscript_load_impl` via `infer_expression`. + if arguments_slice.is_tuple_expr() { + self.store_expression_type(arguments_slice, ty); + } ty } SpecialFormType::Literal => match self.infer_literal_parameter_type(arguments_slice) { From 3981a23ee97701615a572f6a8deeda95aa19e394 Mon Sep 17 00:00:00 2001 From: Aria Desires Date: Mon, 8 Dec 2025 10:54:30 -0500 Subject: [PATCH 46/65] [ty] Supress inlay hints when assigning a trivial initializer call (#21848) ## Summary By taking a purely syntactic approach to the problem of trivial initializer calls we can supress `x: T = T()`, `x: T = x.y.T()` and `x: MyNewType = MyNewType(0)` but still display `x: T[U] = T()`. The place where we drop a ball is this does not compose with our analysis for supressing `x = (0, "hello")` as `x = (0, T())` and `x = (T(), T())` will still get inlay hints (I don't think this is a huge deal). * fixes https://github.com/astral-sh/ty/issues/1516 ## Test Plan Existing snapshots cover this well. --- crates/ty_ide/src/inlay_hints.rs | 408 +++++++------------------------ 1 file changed, 87 insertions(+), 321 deletions(-) diff --git a/crates/ty_ide/src/inlay_hints.rs b/crates/ty_ide/src/inlay_hints.rs index 1d26d3cdd2..f3dd178786 100644 --- a/crates/ty_ide/src/inlay_hints.rs +++ b/crates/ty_ide/src/inlay_hints.rs @@ -19,11 +19,22 @@ pub struct InlayHint { } impl InlayHint { - fn variable_type(expr: &Expr, ty: Type, db: &dyn Db, allow_edits: bool) -> Self { + fn variable_type( + expr: &Expr, + rhs: &Expr, + ty: Type, + db: &dyn Db, + allow_edits: bool, + ) -> Option { let position = expr.range().end(); // Render the type to a string, and get subspans for all the types that make it up let details = ty.display(db).to_string_parts(); + // Filter out a reptitive hints like `x: T = T()` + if call_matches_name(rhs, &details.label) { + return None; + } + // Ok so the idea here is that we potentially have a random soup of spans here, // and each byte of the string can have at most one target associate with it. // Thankfully, they were generally pushed in print order, with the inner smaller types @@ -73,12 +84,12 @@ impl InlayHint { vec![] }; - Self { + Some(Self { position, kind: InlayHintKind::Type, label: InlayHintLabel { parts: label_parts }, text_edits, - } + }) } fn call_argument_name( @@ -250,7 +261,7 @@ struct InlayHintVisitor<'a, 'db> { db: &'db dyn Db, model: SemanticModel<'db>, hints: Vec, - in_assignment: bool, + assignment_rhs: Option<&'a Expr>, range: TextRange, settings: &'a InlayHintSettings, in_no_edits_allowed: bool, @@ -262,21 +273,21 @@ impl<'a, 'db> InlayHintVisitor<'a, 'db> { db, model: SemanticModel::new(db, file), hints: Vec::new(), - in_assignment: false, + assignment_rhs: None, range, settings, in_no_edits_allowed: false, } } - fn add_type_hint(&mut self, expr: &Expr, ty: Type<'db>, allow_edits: bool) { + fn add_type_hint(&mut self, expr: &Expr, rhs: &Expr, ty: Type<'db>, allow_edits: bool) { if !self.settings.variable_types { return; } - let inlay_hint = InlayHint::variable_type(expr, ty, self.db, allow_edits); - - self.hints.push(inlay_hint); + if let Some(inlay_hint) = InlayHint::variable_type(expr, rhs, ty, self.db, allow_edits) { + self.hints.push(inlay_hint); + } } fn add_call_argument_name( @@ -299,8 +310,8 @@ impl<'a, 'db> InlayHintVisitor<'a, 'db> { } } -impl SourceOrderVisitor<'_> for InlayHintVisitor<'_, '_> { - fn enter_node(&mut self, node: AnyNodeRef<'_>) -> TraversalSignal { +impl<'a> SourceOrderVisitor<'a> for InlayHintVisitor<'a, '_> { + fn enter_node(&mut self, node: AnyNodeRef<'a>) -> TraversalSignal { if self.range.intersect(node.range()).is_some() { TraversalSignal::Traverse } else { @@ -308,7 +319,7 @@ impl SourceOrderVisitor<'_> for InlayHintVisitor<'_, '_> { } } - fn visit_stmt(&mut self, stmt: &Stmt) { + fn visit_stmt(&mut self, stmt: &'a Stmt) { let node = AnyNodeRef::from(stmt); if !self.enter_node(node).is_traverse() { @@ -317,7 +328,9 @@ impl SourceOrderVisitor<'_> for InlayHintVisitor<'_, '_> { match stmt { Stmt::Assign(assign) => { - self.in_assignment = !type_hint_is_excessive_for_expr(&assign.value); + if !type_hint_is_excessive_for_expr(&assign.value) { + self.assignment_rhs = Some(&*assign.value); + } if !annotations_are_valid_syntax(assign) { self.in_no_edits_allowed = true; } @@ -325,7 +338,7 @@ impl SourceOrderVisitor<'_> for InlayHintVisitor<'_, '_> { self.visit_expr(target); } self.in_no_edits_allowed = false; - self.in_assignment = false; + self.assignment_rhs = None; self.visit_expr(&assign.value); @@ -344,22 +357,22 @@ impl SourceOrderVisitor<'_> for InlayHintVisitor<'_, '_> { source_order::walk_stmt(self, stmt); } - fn visit_expr(&mut self, expr: &'_ Expr) { + fn visit_expr(&mut self, expr: &'a Expr) { match expr { Expr::Name(name) => { - if self.in_assignment { + if let Some(rhs) = self.assignment_rhs { if name.ctx.is_store() { let ty = expr.inferred_type(&self.model); - self.add_type_hint(expr, ty, !self.in_no_edits_allowed); + self.add_type_hint(expr, rhs, ty, !self.in_no_edits_allowed); } } source_order::walk_expr(self, expr); } Expr::Attribute(attribute) => { - if self.in_assignment { + if let Some(rhs) = self.assignment_rhs { if attribute.ctx.is_store() { let ty = expr.inferred_type(&self.model); - self.add_type_hint(expr, ty, !self.in_no_edits_allowed); + self.add_type_hint(expr, rhs, ty, !self.in_no_edits_allowed); } } source_order::walk_expr(self, expr); @@ -416,6 +429,26 @@ fn arg_matches_name(arg_or_keyword: &ArgOrKeyword, name: &str) -> bool { } } +/// Given a function call, check if the expression is the "same name" +/// as the function being called. +/// +/// This allows us to filter out reptitive inlay hints like `x: T = T(...)`. +/// While still allowing non-trivial ones like `x: T[U] = T()`. +fn call_matches_name(expr: &Expr, name: &str) -> bool { + // Only care about function calls + let Expr::Call(call) = expr else { + return false; + }; + + match &*call.func { + // `x: T = T()` is a match + Expr::Name(expr_name) => expr_name.id.as_str() == name, + // `x: T = a.T()` is a match + Expr::Attribute(expr_attribute) => expr_attribute.attr.as_str() == name, + _ => false, + } +} + /// Given an expression that's the RHS of an assignment, would it be excessive to /// emit an inlay type hint for the variable assigned to it? /// @@ -1829,35 +1862,16 @@ mod tests { ", ); - assert_snapshot!(test.inlay_hints(), @r#" + assert_snapshot!(test.inlay_hints(), @r" class A: def __init__(self, y): - self.x[: int] = int(1) + self.x = int(1) self.y[: Unknown] = y - a[: A] = A([y=]2) - a.y[: int] = int(3) + a = A([y=]2) + a.y = int(3) --------------------------------------------- - info[inlay-hint-location]: Inlay Hint Target - --> stdlib/builtins.pyi:348:7 - | - 347 | @disjoint_base - 348 | class int: - | ^^^ - 349 | """int([x]) -> integer - 350 | int(x, base=10) -> integer - | - info: Source - --> main2.py:4:18 - | - 2 | class A: - 3 | def __init__(self, y): - 4 | self.x[: int] = int(1) - | ^^^ - 5 | self.y[: Unknown] = y - | - info[inlay-hint-location]: Inlay Hint Target --> stdlib/ty_extensions.pyi:20:1 | @@ -1871,29 +1885,11 @@ mod tests { --> main2.py:5:18 | 3 | def __init__(self, y): - 4 | self.x[: int] = int(1) + 4 | self.x = int(1) 5 | self.y[: Unknown] = y | ^^^^^^^ 6 | - 7 | a[: A] = A([y=]2) - | - - info[inlay-hint-location]: Inlay Hint Target - --> main.py:2:7 - | - 2 | class A: - | ^ - 3 | def __init__(self, y): - 4 | self.x = int(1) - | - info: Source - --> main2.py:7:5 - | - 5 | self.y[: Unknown] = y - 6 | - 7 | a[: A] = A([y=]2) - | ^ - 8 | a.y[: int] = int(3) + 7 | a = A([y=]2) | info[inlay-hint-location]: Inlay Hint Target @@ -1906,30 +1902,13 @@ mod tests { 5 | self.y = y | info: Source - --> main2.py:7:13 + --> main2.py:7:8 | 5 | self.y[: Unknown] = y 6 | - 7 | a[: A] = A([y=]2) - | ^ - 8 | a.y[: int] = int(3) - | - - info[inlay-hint-location]: Inlay Hint Target - --> stdlib/builtins.pyi:348:7 - | - 347 | @disjoint_base - 348 | class int: - | ^^^ - 349 | """int([x]) -> integer - 350 | int(x, base=10) -> integer - | - info: Source - --> main2.py:8:7 - | - 7 | a[: A] = A([y=]2) - 8 | a.y[: int] = int(3) - | ^^^ + 7 | a = A([y=]2) + | ^ + 8 | a.y = int(3) | --------------------------------------------- @@ -1938,12 +1917,12 @@ mod tests { class A: def __init__(self, y): - self.x: int = int(1) + self.x = int(1) self.y: Unknown = y - a: A = A(2) - a.y: int = int(3) - "#); + a = A(2) + a.y = int(3) + "); } #[test] @@ -2937,31 +2916,12 @@ mod tests { def __init__(self): self.x: int = 1 - x[: MyClass] = MyClass() + x = MyClass() y[: tuple[MyClass, MyClass]] = (MyClass(), MyClass()) a[: MyClass], b[: MyClass] = MyClass(), MyClass() c[: MyClass], d[: MyClass] = (MyClass(), MyClass()) --------------------------------------------- - info[inlay-hint-location]: Inlay Hint Target - --> main.py:2:7 - | - 2 | class MyClass: - | ^^^^^^^ - 3 | def __init__(self): - 4 | self.x: int = 1 - | - info: Source - --> main2.py:6:5 - | - 4 | self.x: int = 1 - 5 | - 6 | x[: MyClass] = MyClass() - | ^^^^^^^ - 7 | y[: tuple[MyClass, MyClass]] = (MyClass(), MyClass()) - 8 | a[: MyClass], b[: MyClass] = MyClass(), MyClass() - | - info[inlay-hint-location]: Inlay Hint Target --> stdlib/builtins.pyi:2695:7 | @@ -2973,7 +2933,7 @@ mod tests { info: Source --> main2.py:7:5 | - 6 | x[: MyClass] = MyClass() + 6 | x = MyClass() 7 | y[: tuple[MyClass, MyClass]] = (MyClass(), MyClass()) | ^^^^^ 8 | a[: MyClass], b[: MyClass] = MyClass(), MyClass() @@ -2991,7 +2951,7 @@ mod tests { info: Source --> main2.py:7:11 | - 6 | x[: MyClass] = MyClass() + 6 | x = MyClass() 7 | y[: tuple[MyClass, MyClass]] = (MyClass(), MyClass()) | ^^^^^^^ 8 | a[: MyClass], b[: MyClass] = MyClass(), MyClass() @@ -3009,7 +2969,7 @@ mod tests { info: Source --> main2.py:7:20 | - 6 | x[: MyClass] = MyClass() + 6 | x = MyClass() 7 | y[: tuple[MyClass, MyClass]] = (MyClass(), MyClass()) | ^^^^^^^ 8 | a[: MyClass], b[: MyClass] = MyClass(), MyClass() @@ -3027,7 +2987,7 @@ mod tests { info: Source --> main2.py:8:5 | - 6 | x[: MyClass] = MyClass() + 6 | x = MyClass() 7 | y[: tuple[MyClass, MyClass]] = (MyClass(), MyClass()) 8 | a[: MyClass], b[: MyClass] = MyClass(), MyClass() | ^^^^^^^ @@ -3045,7 +3005,7 @@ mod tests { info: Source --> main2.py:8:19 | - 6 | x[: MyClass] = MyClass() + 6 | x = MyClass() 7 | y[: tuple[MyClass, MyClass]] = (MyClass(), MyClass()) 8 | a[: MyClass], b[: MyClass] = MyClass(), MyClass() | ^^^^^^^ @@ -3094,7 +3054,7 @@ mod tests { def __init__(self): self.x: int = 1 - x: MyClass = MyClass() + x = MyClass() y: tuple[MyClass, MyClass] = (MyClass(), MyClass()) a, b = MyClass(), MyClass() c, d = (MyClass(), MyClass()) @@ -4097,31 +4057,11 @@ mod tests { def __init__(self): self.x: int = 1 self.y: int = 2 - val[: MyClass] = MyClass() + val = MyClass() foo(val.x) foo([x=]val.y) --------------------------------------------- - info[inlay-hint-location]: Inlay Hint Target - --> main.py:3:7 - | - 2 | def foo(x: int): pass - 3 | class MyClass: - | ^^^^^^^ - 4 | def __init__(self): - 5 | self.x: int = 1 - | - info: Source - --> main2.py:7:7 - | - 5 | self.x: int = 1 - 6 | self.y: int = 2 - 7 | val[: MyClass] = MyClass() - | ^^^^^^^ - 8 | - 9 | foo(val.x) - | - info[inlay-hint-location]: Inlay Hint Target --> main.py:2:9 | @@ -4137,20 +4077,6 @@ mod tests { 10 | foo([x=]val.y) | ^ | - - --------------------------------------------- - info[inlay-hint-edit]: File after edits - info: Source - - def foo(x: int): pass - class MyClass: - def __init__(self): - self.x: int = 1 - self.y: int = 2 - val: MyClass = MyClass() - - foo(val.x) - foo(val.y) "); } @@ -4176,31 +4102,11 @@ mod tests { def __init__(self): self.x: int = 1 self.y: int = 2 - x[: MyClass] = MyClass() + x = MyClass() foo(x.x) foo([x=]x.y) --------------------------------------------- - info[inlay-hint-location]: Inlay Hint Target - --> main.py:3:7 - | - 2 | def foo(x: int): pass - 3 | class MyClass: - | ^^^^^^^ - 4 | def __init__(self): - 5 | self.x: int = 1 - | - info: Source - --> main2.py:7:5 - | - 5 | self.x: int = 1 - 6 | self.y: int = 2 - 7 | x[: MyClass] = MyClass() - | ^^^^^^^ - 8 | - 9 | foo(x.x) - | - info[inlay-hint-location]: Inlay Hint Target --> main.py:2:9 | @@ -4216,20 +4122,6 @@ mod tests { 10 | foo([x=]x.y) | ^ | - - --------------------------------------------- - info[inlay-hint-edit]: File after edits - info: Source - - def foo(x: int): pass - class MyClass: - def __init__(self): - self.x: int = 1 - self.y: int = 2 - x: MyClass = MyClass() - - foo(x.x) - foo(x.y) "); } @@ -4258,31 +4150,11 @@ mod tests { return 1 def y() -> int: return 2 - val[: MyClass] = MyClass() + val = MyClass() foo(val.x()) foo([x=]val.y()) --------------------------------------------- - info[inlay-hint-location]: Inlay Hint Target - --> main.py:3:7 - | - 2 | def foo(x: int): pass - 3 | class MyClass: - | ^^^^^^^ - 4 | def __init__(self): - 5 | def x() -> int: - | - info: Source - --> main2.py:9:7 - | - 7 | def y() -> int: - 8 | return 2 - 9 | val[: MyClass] = MyClass() - | ^^^^^^^ - 10 | - 11 | foo(val.x()) - | - info[inlay-hint-location]: Inlay Hint Target --> main.py:2:9 | @@ -4298,22 +4170,6 @@ mod tests { 12 | foo([x=]val.y()) | ^ | - - --------------------------------------------- - info[inlay-hint-edit]: File after edits - info: Source - - def foo(x: int): pass - class MyClass: - def __init__(self): - def x() -> int: - return 1 - def y() -> int: - return 2 - val: MyClass = MyClass() - - foo(val.x()) - foo(val.y()) "); } @@ -4346,31 +4202,11 @@ mod tests { return 1 def y() -> List[int]: return 2 - val[: MyClass] = MyClass() + val = MyClass() foo(val.x()[0]) foo([x=]val.y()[1]) --------------------------------------------- - info[inlay-hint-location]: Inlay Hint Target - --> main.py:5:7 - | - 4 | def foo(x: int): pass - 5 | class MyClass: - | ^^^^^^^ - 6 | def __init__(self): - 7 | def x() -> List[int]: - | - info: Source - --> main2.py:11:7 - | - 9 | def y() -> List[int]: - 10 | return 2 - 11 | val[: MyClass] = MyClass() - | ^^^^^^^ - 12 | - 13 | foo(val.x()[0]) - | - info[inlay-hint-location]: Inlay Hint Target --> main.py:4:9 | @@ -4388,24 +4224,6 @@ mod tests { 14 | foo([x=]val.y()[1]) | ^ | - - --------------------------------------------- - info[inlay-hint-edit]: File after edits - info: Source - - from typing import List - - def foo(x: int): pass - class MyClass: - def __init__(self): - def x() -> List[int]: - return 1 - def y() -> List[int]: - return 2 - val: MyClass = MyClass() - - foo(val.x()[0]) - foo(val.y()[1]) "); } @@ -4697,7 +4515,7 @@ mod tests { class Foo: def __init__(self, x: int): pass Foo([x=]1) - f[: Foo] = Foo([x=]1) + f = Foo([x=]1) --------------------------------------------- info[inlay-hint-location]: Inlay Hint Target --> main.py:3:24 @@ -4715,24 +4533,7 @@ mod tests { 3 | def __init__(self, x: int): pass 4 | Foo([x=]1) | ^ - 5 | f[: Foo] = Foo([x=]1) - | - - info[inlay-hint-location]: Inlay Hint Target - --> main.py:2:7 - | - 2 | class Foo: - | ^^^ - 3 | def __init__(self, x: int): pass - 4 | Foo(1) - | - info: Source - --> main2.py:5:5 - | - 3 | def __init__(self, x: int): pass - 4 | Foo([x=]1) - 5 | f[: Foo] = Foo([x=]1) - | ^^^ + 5 | f = Foo([x=]1) | info[inlay-hint-location]: Inlay Hint Target @@ -4745,22 +4546,13 @@ mod tests { 5 | f = Foo(1) | info: Source - --> main2.py:5:17 + --> main2.py:5:10 | 3 | def __init__(self, x: int): pass 4 | Foo([x=]1) - 5 | f[: Foo] = Foo([x=]1) - | ^ + 5 | f = Foo([x=]1) + | ^ | - - --------------------------------------------- - info[inlay-hint-edit]: File after edits - info: Source - - class Foo: - def __init__(self, x: int): pass - Foo(1) - f: Foo = Foo(1) "); } @@ -4778,7 +4570,7 @@ mod tests { class Foo: def __new__(cls, x: int): pass Foo([x=]1) - f[: Foo] = Foo([x=]1) + f = Foo([x=]1) --------------------------------------------- info[inlay-hint-location]: Inlay Hint Target --> main.py:3:22 @@ -4796,24 +4588,7 @@ mod tests { 3 | def __new__(cls, x: int): pass 4 | Foo([x=]1) | ^ - 5 | f[: Foo] = Foo([x=]1) - | - - info[inlay-hint-location]: Inlay Hint Target - --> main.py:2:7 - | - 2 | class Foo: - | ^^^ - 3 | def __new__(cls, x: int): pass - 4 | Foo(1) - | - info: Source - --> main2.py:5:5 - | - 3 | def __new__(cls, x: int): pass - 4 | Foo([x=]1) - 5 | f[: Foo] = Foo([x=]1) - | ^^^ + 5 | f = Foo([x=]1) | info[inlay-hint-location]: Inlay Hint Target @@ -4826,22 +4601,13 @@ mod tests { 5 | f = Foo(1) | info: Source - --> main2.py:5:17 + --> main2.py:5:10 | 3 | def __new__(cls, x: int): pass 4 | Foo([x=]1) - 5 | f[: Foo] = Foo([x=]1) - | ^ + 5 | f = Foo([x=]1) + | ^ | - - --------------------------------------------- - info[inlay-hint-edit]: File after edits - info: Source - - class Foo: - def __new__(cls, x: int): pass - Foo(1) - f: Foo = Foo(1) "); } From 0ccd84136a32f2ab1833b34e5e6128ad4525432f Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Mon, 8 Dec 2025 15:58:23 +0000 Subject: [PATCH 47/65] [ty] Make Python-version subdiagnostics less verbose (#21849) --- crates/ty/tests/cli/python_environment.rs | 26 ++++++++++----------- crates/ty_python_semantic/src/diagnostic.rs | 11 ++++----- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/crates/ty/tests/cli/python_environment.rs b/crates/ty/tests/cli/python_environment.rs index 3bc4eee1c3..1f3479d2fd 100644 --- a/crates/ty/tests/cli/python_environment.rs +++ b/crates/ty/tests/cli/python_environment.rs @@ -43,7 +43,7 @@ fn config_override_python_version() -> anyhow::Result<()> { | 2 | [tool.ty.environment] 3 | python-version = "3.11" - | ^^^^^^ Python 3.11 assumed due to this configuration setting + | ^^^^^^ Python version configuration | info: rule `unresolved-attribute` is enabled by default @@ -143,7 +143,7 @@ fn config_file_annotation_showing_where_python_version_set_typing_error() -> any ), ])?; - assert_cmd_snapshot!(case.command(), @r###" + assert_cmd_snapshot!(case.command(), @r#" success: false exit_code: 1 ----- stdout ----- @@ -159,14 +159,14 @@ fn config_file_annotation_showing_where_python_version_set_typing_error() -> any | 2 | [tool.ty.environment] 3 | python-version = "3.8" - | ^^^^^ Python 3.8 assumed due to this configuration setting + | ^^^^^ Python version configuration | info: rule `unresolved-reference` is enabled by default Found 1 diagnostic ----- stderr ----- - "###); + "#); assert_cmd_snapshot!(case.command().arg("--python-version=3.9"), @r###" success: false @@ -772,7 +772,7 @@ fn pyvenv_cfg_file_annotation_showing_where_python_version_set() -> anyhow::Resu ("test.py", "aiter"), ])?; - assert_cmd_snapshot!(case.command(), @r###" + assert_cmd_snapshot!(case.command(), @r" success: false exit_code: 1 ----- stdout ----- @@ -787,7 +787,7 @@ fn pyvenv_cfg_file_annotation_showing_where_python_version_set() -> anyhow::Resu --> venv/pyvenv.cfg:2:11 | 2 | version = 3.8 - | ^^^ Python version inferred from virtual environment metadata file + | ^^^ Virtual environment metadata 3 | home = foo/bar/bin | info: No Python version was specified on the command line or in a configuration file @@ -796,7 +796,7 @@ fn pyvenv_cfg_file_annotation_showing_where_python_version_set() -> anyhow::Resu Found 1 diagnostic ----- stderr ----- - "###); + "); Ok(()) } @@ -831,7 +831,7 @@ fn pyvenv_cfg_file_annotation_no_trailing_newline() -> anyhow::Result<()> { ("test.py", "aiter"), ])?; - assert_cmd_snapshot!(case.command(), @r###" + assert_cmd_snapshot!(case.command(), @r" success: false exit_code: 1 ----- stdout ----- @@ -846,7 +846,7 @@ fn pyvenv_cfg_file_annotation_no_trailing_newline() -> anyhow::Result<()> { --> venv/pyvenv.cfg:4:23 | 4 | version = 3.8 - | ^^^ Python version inferred from virtual environment metadata file + | ^^^ Virtual environment metadata | info: No Python version was specified on the command line or in a configuration file info: rule `unresolved-reference` is enabled by default @@ -854,7 +854,7 @@ fn pyvenv_cfg_file_annotation_no_trailing_newline() -> anyhow::Result<()> { Found 1 diagnostic ----- stderr ----- - "###); + "); Ok(()) } @@ -898,7 +898,7 @@ fn config_file_annotation_showing_where_python_version_set_syntax_error() -> any | 2 | [project] 3 | requires-python = ">=3.8" - | ^^^^^^^ Python 3.8 assumed due to this configuration setting + | ^^^^^^^ Python version configuration | Found 1 diagnostic @@ -1206,7 +1206,7 @@ fn defaults_to_a_new_python_version() -> anyhow::Result<()> { | 2 | [environment] 3 | python-version = "3.10" - | ^^^^^^ Python 3.10 assumed due to this configuration setting + | ^^^^^^ Python version configuration 4 | python-platform = "linux" | info: rule `unresolved-attribute` is enabled by default @@ -1225,7 +1225,7 @@ fn defaults_to_a_new_python_version() -> anyhow::Result<()> { | 2 | [environment] 3 | python-version = "3.10" - | ^^^^^^ Python 3.10 assumed due to this configuration setting + | ^^^^^^ Python version configuration 4 | python-platform = "linux" | info: rule `unresolved-import` is enabled by default diff --git a/crates/ty_python_semantic/src/diagnostic.rs b/crates/ty_python_semantic/src/diagnostic.rs index b8ff2861ea..a7857b102e 100644 --- a/crates/ty_python_semantic/src/diagnostic.rs +++ b/crates/ty_python_semantic/src/diagnostic.rs @@ -58,9 +58,8 @@ pub fn add_inferred_python_version_hint_to_diagnostic( SubDiagnosticSeverity::Info, format_args!("Python {version} was assumed when {action}"), ); - sub_diagnostic.annotate(Annotation::primary(span).message(format_args!( - "Python {version} assumed due to this configuration setting" - ))); + sub_diagnostic + .annotate(Annotation::primary(span).message("Python version configuration")); diagnostic.sub(sub_diagnostic); } else { diagnostic.info(format_args!( @@ -76,10 +75,8 @@ pub fn add_inferred_python_version_hint_to_diagnostic( "Python {version} was assumed when {action} because of your virtual environment" ), ); - sub_diagnostic.annotate( - Annotation::primary(span) - .message("Python version inferred from virtual environment metadata file"), - ); + sub_diagnostic + .annotate(Annotation::primary(span).message("Virtual environment metadata")); // TODO: it would also be nice to tell them how we resolved their virtual environment... diagnostic.sub(sub_diagnostic); } else { From 0ab8521171358a3c4f75d3972b9f025a53f21989 Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Mon, 8 Dec 2025 17:19:01 +0100 Subject: [PATCH 48/65] [ty] Remove legacy `concise_message` fallback behavior (#21847) --- crates/ruff_db/src/diagnostic/mod.rs | 86 +++------------------------- crates/ty_test/src/matcher.rs | 10 +++- 2 files changed, 17 insertions(+), 79 deletions(-) diff --git a/crates/ruff_db/src/diagnostic/mod.rs b/crates/ruff_db/src/diagnostic/mod.rs index cf1114b11f..e966cdd208 100644 --- a/crates/ruff_db/src/diagnostic/mod.rs +++ b/crates/ruff_db/src/diagnostic/mod.rs @@ -166,28 +166,8 @@ impl Diagnostic { /// Returns the primary message for this diagnostic. /// /// A diagnostic always has a message, but it may be empty. - /// - /// NOTE: At present, this routine will return the first primary - /// annotation's message as the primary message when the main diagnostic - /// message is empty. This is meant to facilitate an incremental migration - /// in ty over to the new diagnostic data model. (The old data model - /// didn't distinguish between messages on the entire diagnostic and - /// messages attached to a particular span.) pub fn primary_message(&self) -> &str { - if !self.inner.message.as_str().is_empty() { - return self.inner.message.as_str(); - } - // FIXME: As a special case, while we're migrating ty - // to the new diagnostic data model, we'll look for a primary - // message from the primary annotation. This is because most - // ty diagnostics are created with an empty diagnostic - // message and instead attach the message to the annotation. - // Fixing this will require touching basically every diagnostic - // in ty, so we do it this way for now to match the old - // semantics. ---AG - self.primary_annotation() - .and_then(|ann| ann.get_message()) - .unwrap_or_default() + self.inner.message.as_str() } /// Introspects this diagnostic and returns what kind of "primary" message @@ -199,18 +179,6 @@ impl Diagnostic { /// contains *essential* information or context for understanding the /// diagnostic. /// - /// The reason why we don't just always return both the main diagnostic - /// message and the primary annotation message is because this was written - /// in the midst of an incremental migration of ty over to the new - /// diagnostic data model. At time of writing, diagnostics were still - /// constructed in the old model where the main diagnostic message and the - /// primary annotation message were not distinguished from each other. So - /// for now, we carefully return what kind of messages this diagnostic - /// contains. In effect, if this diagnostic has a non-empty main message - /// *and* a non-empty primary annotation message, then the diagnostic is - /// 100% using the new diagnostic data model and we can format things - /// appropriately. - /// /// The type returned implements the `std::fmt::Display` trait. In most /// cases, just converting it to a string (or printing it) will do what /// you want. @@ -224,11 +192,10 @@ impl Diagnostic { .primary_annotation() .and_then(|ann| ann.get_message()) .unwrap_or_default(); - match (main.is_empty(), annotation.is_empty()) { - (false, true) => ConciseMessage::MainDiagnostic(main), - (true, false) => ConciseMessage::PrimaryAnnotation(annotation), - (false, false) => ConciseMessage::Both { main, annotation }, - (true, true) => ConciseMessage::Empty, + if annotation.is_empty() { + ConciseMessage::MainDiagnostic(main) + } else { + ConciseMessage::Both { main, annotation } } } @@ -693,18 +660,6 @@ impl SubDiagnostic { /// contains *essential* information or context for understanding the /// diagnostic. /// - /// The reason why we don't just always return both the main diagnostic - /// message and the primary annotation message is because this was written - /// in the midst of an incremental migration of ty over to the new - /// diagnostic data model. At time of writing, diagnostics were still - /// constructed in the old model where the main diagnostic message and the - /// primary annotation message were not distinguished from each other. So - /// for now, we carefully return what kind of messages this diagnostic - /// contains. In effect, if this diagnostic has a non-empty main message - /// *and* a non-empty primary annotation message, then the diagnostic is - /// 100% using the new diagnostic data model and we can format things - /// appropriately. - /// /// The type returned implements the `std::fmt::Display` trait. In most /// cases, just converting it to a string (or printing it) will do what /// you want. @@ -714,11 +669,10 @@ impl SubDiagnostic { .primary_annotation() .and_then(|ann| ann.get_message()) .unwrap_or_default(); - match (main.is_empty(), annotation.is_empty()) { - (false, true) => ConciseMessage::MainDiagnostic(main), - (true, false) => ConciseMessage::PrimaryAnnotation(annotation), - (false, false) => ConciseMessage::Both { main, annotation }, - (true, true) => ConciseMessage::Empty, + if annotation.is_empty() { + ConciseMessage::MainDiagnostic(main) + } else { + ConciseMessage::Both { main, annotation } } } } @@ -1512,28 +1466,10 @@ pub enum DiagnosticFormat { pub enum ConciseMessage<'a> { /// A diagnostic contains a non-empty main message and an empty /// primary annotation message. - /// - /// This strongly suggests that the diagnostic is using the - /// "new" data model. MainDiagnostic(&'a str), - /// A diagnostic contains an empty main message and a non-empty - /// primary annotation message. - /// - /// This strongly suggests that the diagnostic is using the - /// "old" data model. - PrimaryAnnotation(&'a str), /// A diagnostic contains a non-empty main message and a non-empty /// primary annotation message. - /// - /// This strongly suggests that the diagnostic is using the - /// "new" data model. Both { main: &'a str, annotation: &'a str }, - /// A diagnostic contains an empty main message and an empty - /// primary annotation message. - /// - /// This indicates that the diagnostic is probably using the old - /// model. - Empty, /// A custom concise message has been provided. Custom(&'a str), } @@ -1544,13 +1480,9 @@ impl std::fmt::Display for ConciseMessage<'_> { ConciseMessage::MainDiagnostic(main) => { write!(f, "{main}") } - ConciseMessage::PrimaryAnnotation(annotation) => { - write!(f, "{annotation}") - } ConciseMessage::Both { main, annotation } => { write!(f, "{main}: {annotation}") } - ConciseMessage::Empty => Ok(()), ConciseMessage::Custom(message) => { write!(f, "{message}") } diff --git a/crates/ty_test/src/matcher.rs b/crates/ty_test/src/matcher.rs index ce8214e72c..5fe219278c 100644 --- a/crates/ty_test/src/matcher.rs +++ b/crates/ty_test/src/matcher.rs @@ -427,10 +427,16 @@ mod tests { let mut diag = if self.id == DiagnosticId::RevealedType { Diagnostic::new(self.id, Severity::Error, "Revealed type") } else { - Diagnostic::new(self.id, Severity::Error, "") + Diagnostic::new(self.id, Severity::Error, self.message) }; let span = Span::from(file).with_range(self.range); - diag.annotate(Annotation::primary(span).message(self.message)); + let mut annotation = Annotation::primary(span); + + if self.id == DiagnosticId::RevealedType { + annotation = annotation.message(self.message); + } + + diag.annotate(annotation); diag } } From 45fb3732a4378dd3d8120d3b5c13c7694bc02ea2 Mon Sep 17 00:00:00 2001 From: Phong Do <45266517+phongddo@users.noreply.github.com> Date: Mon, 8 Dec 2025 20:00:05 +0100 Subject: [PATCH 49/65] [`pydocstyle`] Suppress `D417` for parameters with `Unpack` annotations (#21816) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Fixes https://github.com/astral-sh/ruff/issues/8774 This PR fixes `pydocstyle` incorrectly flagging missing argument for arguments with `Unpack` type annotation by extracting the `kwarg` `D417` suppression logic into a helper function for future rules as needed. ## Problem Statement The below example was incorrectly triggering `D417` error for missing `**kwargs` doc. ```python class User(TypedDict): id: int name: str def do_something(some_arg: str, **kwargs: Unpack[User]): """Some doc Args: some_arg: Some argument """ ``` image `**kwargs: Unpack[User]` indicates the function expects keyword arguments that will be unpacked. Ideally, the individual fields of the User `TypedDict` should be documented, not in the `**kwargs` itself. The `**kwargs` parameter acts as a semantic grouping rather than a parameter requiring documentation. ## Solution As discussed in the linked issue, it makes sense to suppress the `D417` for parameters with `Unpack` annotation. I extract a helper function to solely check `D417` should be suppressed with `**kwarg: Unpack[T]` parameter, this function can also be unit tested independently and reduce complexity of current `missing_args` check function. This also makes it easier to add additional rules in the future. _✏️ Note:_ This is my first PR in this repo, as I've learned a ton from it, please call out anything that could be improved. Thanks for making this excellent tool 👏 ## Test Plan Add 2 test cases in `D417.py` and update snapshots. --------- Co-authored-by: Brent Westbrook <36778786+ntBre@users.noreply.github.com> --- .../test/fixtures/pydocstyle/D417.py | 23 +++++++++++++++++++ .../src/rules/pydocstyle/rules/sections.rs | 19 ++++++++++++++- ...rules__pydocstyle__tests__d417_google.snap | 10 ++++++++ ...ts__d417_google_ignore_var_parameters.snap | 10 ++++++++ ...__pydocstyle__tests__d417_unspecified.snap | 10 ++++++++ ...417_unspecified_ignore_var_parameters.snap | 10 ++++++++ 6 files changed, 81 insertions(+), 1 deletion(-) diff --git a/crates/ruff_linter/resources/test/fixtures/pydocstyle/D417.py b/crates/ruff_linter/resources/test/fixtures/pydocstyle/D417.py index 7c5a1f538c..510bf77bf8 100644 --- a/crates/ruff_linter/resources/test/fixtures/pydocstyle/D417.py +++ b/crates/ruff_linter/resources/test/fixtures/pydocstyle/D417.py @@ -218,3 +218,26 @@ def should_not_fail(payload, Args): Args: The other arguments. """ + + +# Test cases for Unpack[TypedDict] kwargs +from typing import TypedDict +from typing_extensions import Unpack + +class User(TypedDict): + id: int + name: str + +def function_with_unpack_args_should_not_fail(query: str, **kwargs: Unpack[User]): + """Function with Unpack kwargs. + + Args: + query: some arg + """ + +def function_with_unpack_and_missing_arg_doc_should_fail(query: str, **kwargs: Unpack[User]): + """Function with Unpack kwargs but missing query arg documentation. + + Args: + **kwargs: keyword arguments + """ diff --git a/crates/ruff_linter/src/rules/pydocstyle/rules/sections.rs b/crates/ruff_linter/src/rules/pydocstyle/rules/sections.rs index 7b9fc80ba8..bf84ea85fc 100644 --- a/crates/ruff_linter/src/rules/pydocstyle/rules/sections.rs +++ b/crates/ruff_linter/src/rules/pydocstyle/rules/sections.rs @@ -4,7 +4,9 @@ use rustc_hash::FxHashSet; use std::sync::LazyLock; use ruff_macros::{ViolationMetadata, derive_message_formats}; +use ruff_python_ast::Parameter; use ruff_python_ast::docstrings::{clean_space, leading_space}; +use ruff_python_ast::helpers::map_subscript; use ruff_python_ast::identifier::Identifier; use ruff_python_semantic::analyze::visibility::is_staticmethod; use ruff_python_trivia::textwrap::dedent; @@ -1184,6 +1186,9 @@ impl AlwaysFixableViolation for MissingSectionNameColon { /// This rule is enabled when using the `google` convention, and disabled when /// using the `pep257` and `numpy` conventions. /// +/// Parameters annotated with `typing.Unpack` are exempt from this rule. +/// This follows the Python typing specification for unpacking keyword arguments. +/// /// ## Example /// ```python /// def calculate_speed(distance: float, time: float) -> float: @@ -1233,6 +1238,7 @@ impl AlwaysFixableViolation for MissingSectionNameColon { /// - [PEP 257 – Docstring Conventions](https://peps.python.org/pep-0257/) /// - [PEP 287 – reStructuredText Docstring Format](https://peps.python.org/pep-0287/) /// - [Google Python Style Guide - Docstrings](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings) +/// - [Python - Unpack for keyword arguments](https://typing.python.org/en/latest/spec/callables.html#unpack-kwargs) #[derive(ViolationMetadata)] #[violation_metadata(stable_since = "v0.0.73")] pub(crate) struct UndocumentedParam { @@ -1808,7 +1814,9 @@ fn missing_args(checker: &Checker, docstring: &Docstring, docstrings_args: &FxHa missing_arg_names.insert(starred_arg_name); } } - if let Some(arg) = function.parameters.kwarg.as_ref() { + if let Some(arg) = function.parameters.kwarg.as_ref() + && !has_unpack_annotation(checker, arg) + { let arg_name = arg.name.as_str(); let starred_arg_name = format!("**{arg_name}"); if !arg_name.starts_with('_') @@ -1834,6 +1842,15 @@ fn missing_args(checker: &Checker, docstring: &Docstring, docstrings_args: &FxHa } } +/// Returns `true` if the parameter is annotated with `typing.Unpack` +fn has_unpack_annotation(checker: &Checker, parameter: &Parameter) -> bool { + parameter.annotation.as_ref().is_some_and(|annotation| { + checker + .semantic() + .match_typing_expr(map_subscript(annotation), "Unpack") + }) +} + // See: `GOOGLE_ARGS_REGEX` in `pydocstyle/checker.py`. static GOOGLE_ARGS_REGEX: LazyLock = LazyLock::new(|| Regex::new(r"^\s*(\*?\*?\w+)\s*(\(.*?\))?\s*:(\r\n|\n)?\s*.+").unwrap()); diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_google.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_google.snap index 63b975feb9..44b20a8c6b 100644 --- a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_google.snap +++ b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_google.snap @@ -101,3 +101,13 @@ D417 Missing argument description in the docstring for `should_fail`: `Args` 200 | """ 201 | Send a message. | + +D417 Missing argument description in the docstring for `function_with_unpack_and_missing_arg_doc_should_fail`: `query` + --> D417.py:238:5 + | +236 | """ +237 | +238 | def function_with_unpack_and_missing_arg_doc_should_fail(query: str, **kwargs: Unpack[User]): + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +239 | """Function with Unpack kwargs but missing query arg documentation. + | diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_google_ignore_var_parameters.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_google_ignore_var_parameters.snap index f645ff960e..7ff0f72bf0 100644 --- a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_google_ignore_var_parameters.snap +++ b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_google_ignore_var_parameters.snap @@ -83,3 +83,13 @@ D417 Missing argument description in the docstring for `should_fail`: `Args` 200 | """ 201 | Send a message. | + +D417 Missing argument description in the docstring for `function_with_unpack_and_missing_arg_doc_should_fail`: `query` + --> D417.py:238:5 + | +236 | """ +237 | +238 | def function_with_unpack_and_missing_arg_doc_should_fail(query: str, **kwargs: Unpack[User]): + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +239 | """Function with Unpack kwargs but missing query arg documentation. + | diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_unspecified.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_unspecified.snap index 63b975feb9..44b20a8c6b 100644 --- a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_unspecified.snap +++ b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_unspecified.snap @@ -101,3 +101,13 @@ D417 Missing argument description in the docstring for `should_fail`: `Args` 200 | """ 201 | Send a message. | + +D417 Missing argument description in the docstring for `function_with_unpack_and_missing_arg_doc_should_fail`: `query` + --> D417.py:238:5 + | +236 | """ +237 | +238 | def function_with_unpack_and_missing_arg_doc_should_fail(query: str, **kwargs: Unpack[User]): + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +239 | """Function with Unpack kwargs but missing query arg documentation. + | diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_unspecified_ignore_var_parameters.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_unspecified_ignore_var_parameters.snap index 63b975feb9..44b20a8c6b 100644 --- a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_unspecified_ignore_var_parameters.snap +++ b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__d417_unspecified_ignore_var_parameters.snap @@ -101,3 +101,13 @@ D417 Missing argument description in the docstring for `should_fail`: `Args` 200 | """ 201 | Send a message. | + +D417 Missing argument description in the docstring for `function_with_unpack_and_missing_arg_doc_should_fail`: `query` + --> D417.py:238:5 + | +236 | """ +237 | +238 | def function_with_unpack_and_missing_arg_doc_should_fail(query: str, **kwargs: Unpack[User]): + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +239 | """Function with Unpack kwargs but missing query arg documentation. + | From 2d3466eccf66a2049d95542224d5985d79bcd1ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Riegel?= <96702577+LoicRiegel@users.noreply.github.com> Date: Mon, 8 Dec 2025 20:00:43 +0100 Subject: [PATCH 50/65] [`flake8-bugbear`] Accept immutable slice default arguments (`B008`) (#21823) Closes issue #21565 ## Summary As pointed out in the issue, slices are currently flagged by B008 but this behavior is incorrect because slices are immutable. ## Test Plan Added a test case in the "B006_B008.py" fixture. Sorry for the diff in the snapshots, the only thing that changes in those flies is the line numbers, though. You can also test this manually with this file: ```py # test_slice.py def c(d=slice(0, 3)): ... ``` ```sh > target/debug/ruff check tmp/test_slice.py --no-cache --select B008 All checks passed! ``` --- .../test/fixtures/flake8_bugbear/B006_B008.py | 3 + ...ke8_bugbear__tests__B006_B006_B008.py.snap | 258 +++++++++--------- ...ke8_bugbear__tests__B008_B006_B008.py.snap | 36 +-- ...ar__tests__preview__B006_B006_B008.py.snap | 258 +++++++++--------- crates/ruff_python_stdlib/src/typing.rs | 10 +- 5 files changed, 288 insertions(+), 277 deletions(-) diff --git a/crates/ruff_linter/resources/test/fixtures/flake8_bugbear/B006_B008.py b/crates/ruff_linter/resources/test/fixtures/flake8_bugbear/B006_B008.py index 77ab80b7ee..8e55d5b340 100644 --- a/crates/ruff_linter/resources/test/fixtures/flake8_bugbear/B006_B008.py +++ b/crates/ruff_linter/resources/test/fixtures/flake8_bugbear/B006_B008.py @@ -199,6 +199,9 @@ def bytes_okay(value=bytes(1)): def int_okay(value=int("12")): pass +# Allow immutable slice() +def slice_okay(value=slice(1,2)): + pass # Allow immutable complex() value def complex_okay(value=complex(1,2)): diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_B008.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_B008.py.snap index e3f42e2da7..f4113617b5 100644 --- a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_B008.py.snap +++ b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_B008.py.snap @@ -236,227 +236,227 @@ help: Replace with `None`; initialize within function note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:239:20 + --> B006_B008.py:242:20 | -237 | # B006 and B008 -238 | # We should handle arbitrary nesting of these B008. -239 | def nested_combo(a=[float(3), dt.datetime.now()]): +240 | # B006 and B008 +241 | # We should handle arbitrary nesting of these B008. +242 | def nested_combo(a=[float(3), dt.datetime.now()]): | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -240 | pass +243 | pass | help: Replace with `None`; initialize within function -236 | -237 | # B006 and B008 -238 | # We should handle arbitrary nesting of these B008. +239 | +240 | # B006 and B008 +241 | # We should handle arbitrary nesting of these B008. - def nested_combo(a=[float(3), dt.datetime.now()]): -239 + def nested_combo(a=None): -240 | pass -241 | -242 | +242 + def nested_combo(a=None): +243 | pass +244 | +245 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:276:27 + --> B006_B008.py:279:27 | -275 | def mutable_annotations( -276 | a: list[int] | None = [], +278 | def mutable_annotations( +279 | a: list[int] | None = [], | ^^ -277 | b: Optional[Dict[int, int]] = {}, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +280 | b: Optional[Dict[int, int]] = {}, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), | help: Replace with `None`; initialize within function -273 | -274 | -275 | def mutable_annotations( +276 | +277 | +278 | def mutable_annotations( - a: list[int] | None = [], -276 + a: list[int] | None = None, -277 | b: Optional[Dict[int, int]] = {}, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +279 + a: list[int] | None = None, +280 | b: Optional[Dict[int, int]] = {}, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:277:35 + --> B006_B008.py:280:35 | -275 | def mutable_annotations( -276 | a: list[int] | None = [], -277 | b: Optional[Dict[int, int]] = {}, +278 | def mutable_annotations( +279 | a: list[int] | None = [], +280 | b: Optional[Dict[int, int]] = {}, | ^^ -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), | help: Replace with `None`; initialize within function -274 | -275 | def mutable_annotations( -276 | a: list[int] | None = [], +277 | +278 | def mutable_annotations( +279 | a: list[int] | None = [], - b: Optional[Dict[int, int]] = {}, -277 + b: Optional[Dict[int, int]] = None, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -280 | ): +280 + b: Optional[Dict[int, int]] = None, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +283 | ): note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:278:62 + --> B006_B008.py:281:62 | -276 | a: list[int] | None = [], -277 | b: Optional[Dict[int, int]] = {}, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +279 | a: list[int] | None = [], +280 | b: Optional[Dict[int, int]] = {}, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), | ^^^^^ -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -280 | ): +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +283 | ): | help: Replace with `None`; initialize within function -275 | def mutable_annotations( -276 | a: list[int] | None = [], -277 | b: Optional[Dict[int, int]] = {}, +278 | def mutable_annotations( +279 | a: list[int] | None = [], +280 | b: Optional[Dict[int, int]] = {}, - c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -278 + c: Annotated[Union[Set[str], abc.Sized], "annotation"] = None, -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -280 | ): -281 | pass +281 + c: Annotated[Union[Set[str], abc.Sized], "annotation"] = None, +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +283 | ): +284 | pass note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:279:80 + --> B006_B008.py:282:80 | -277 | b: Optional[Dict[int, int]] = {}, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +280 | b: Optional[Dict[int, int]] = {}, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), | ^^^^^ -280 | ): -281 | pass +283 | ): +284 | pass | help: Replace with `None`; initialize within function -276 | a: list[int] | None = [], -277 | b: Optional[Dict[int, int]] = {}, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +279 | a: list[int] | None = [], +280 | b: Optional[Dict[int, int]] = {}, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), - d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -279 + d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = None, -280 | ): -281 | pass -282 | +282 + d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = None, +283 | ): +284 | pass +285 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:284:52 + --> B006_B008.py:287:52 | -284 | def single_line_func_wrong(value: dict[str, str] = {}): +287 | def single_line_func_wrong(value: dict[str, str] = {}): | ^^ -285 | """Docstring""" +288 | """Docstring""" | help: Replace with `None`; initialize within function -281 | pass -282 | -283 | - - def single_line_func_wrong(value: dict[str, str] = {}): -284 + def single_line_func_wrong(value: dict[str, str] = None): -285 | """Docstring""" +284 | pass +285 | 286 | -287 | + - def single_line_func_wrong(value: dict[str, str] = {}): +287 + def single_line_func_wrong(value: dict[str, str] = None): +288 | """Docstring""" +289 | +290 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:288:52 + --> B006_B008.py:291:52 | -288 | def single_line_func_wrong(value: dict[str, str] = {}): +291 | def single_line_func_wrong(value: dict[str, str] = {}): | ^^ -289 | """Docstring""" -290 | ... +292 | """Docstring""" +293 | ... | help: Replace with `None`; initialize within function -285 | """Docstring""" -286 | -287 | +288 | """Docstring""" +289 | +290 | - def single_line_func_wrong(value: dict[str, str] = {}): -288 + def single_line_func_wrong(value: dict[str, str] = None): -289 | """Docstring""" -290 | ... -291 | +291 + def single_line_func_wrong(value: dict[str, str] = None): +292 | """Docstring""" +293 | ... +294 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:293:52 + --> B006_B008.py:296:52 | -293 | def single_line_func_wrong(value: dict[str, str] = {}): +296 | def single_line_func_wrong(value: dict[str, str] = {}): | ^^ -294 | """Docstring"""; ... +297 | """Docstring"""; ... | help: Replace with `None`; initialize within function -290 | ... -291 | -292 | - - def single_line_func_wrong(value: dict[str, str] = {}): -293 + def single_line_func_wrong(value: dict[str, str] = None): -294 | """Docstring"""; ... +293 | ... +294 | 295 | -296 | + - def single_line_func_wrong(value: dict[str, str] = {}): +296 + def single_line_func_wrong(value: dict[str, str] = None): +297 | """Docstring"""; ... +298 | +299 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:297:52 + --> B006_B008.py:300:52 | -297 | def single_line_func_wrong(value: dict[str, str] = {}): +300 | def single_line_func_wrong(value: dict[str, str] = {}): | ^^ -298 | """Docstring"""; \ -299 | ... +301 | """Docstring"""; \ +302 | ... | help: Replace with `None`; initialize within function -294 | """Docstring"""; ... -295 | -296 | +297 | """Docstring"""; ... +298 | +299 | - def single_line_func_wrong(value: dict[str, str] = {}): -297 + def single_line_func_wrong(value: dict[str, str] = None): -298 | """Docstring"""; \ -299 | ... -300 | +300 + def single_line_func_wrong(value: dict[str, str] = None): +301 | """Docstring"""; \ +302 | ... +303 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:302:52 + --> B006_B008.py:305:52 | -302 | def single_line_func_wrong(value: dict[str, str] = { +305 | def single_line_func_wrong(value: dict[str, str] = { | ____________________________________________________^ -303 | | # This is a comment -304 | | }): +306 | | # This is a comment +307 | | }): | |_^ -305 | """Docstring""" +308 | """Docstring""" | help: Replace with `None`; initialize within function -299 | ... -300 | -301 | +302 | ... +303 | +304 | - def single_line_func_wrong(value: dict[str, str] = { - # This is a comment - }): -302 + def single_line_func_wrong(value: dict[str, str] = None): -303 | """Docstring""" -304 | -305 | +305 + def single_line_func_wrong(value: dict[str, str] = None): +306 | """Docstring""" +307 | +308 | note: This is an unsafe fix and may change runtime behavior B006 Do not use mutable data structures for argument defaults - --> B006_B008.py:308:52 + --> B006_B008.py:311:52 | -308 | def single_line_func_wrong(value: dict[str, str] = {}) \ +311 | def single_line_func_wrong(value: dict[str, str] = {}) \ | ^^ -309 | : \ -310 | """Docstring""" +312 | : \ +313 | """Docstring""" | help: Replace with `None`; initialize within function B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:313:52 + --> B006_B008.py:316:52 | -313 | def single_line_func_wrong(value: dict[str, str] = {}): +316 | def single_line_func_wrong(value: dict[str, str] = {}): | ^^ -314 | """Docstring without newline""" +317 | """Docstring without newline""" | help: Replace with `None`; initialize within function -310 | """Docstring""" -311 | -312 | +313 | """Docstring""" +314 | +315 | - def single_line_func_wrong(value: dict[str, str] = {}): -313 + def single_line_func_wrong(value: dict[str, str] = None): -314 | """Docstring without newline""" +316 + def single_line_func_wrong(value: dict[str, str] = None): +317 | """Docstring without newline""" note: This is an unsafe fix and may change runtime behavior diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B008_B006_B008.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B008_B006_B008.py.snap index 49da306103..edaaadb944 100644 --- a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B008_B006_B008.py.snap +++ b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B008_B006_B008.py.snap @@ -53,39 +53,39 @@ B008 Do not perform function call in argument defaults; instead, perform the cal | B008 Do not perform function call `dt.datetime.now` in argument defaults; instead, perform the call within the function, or read the default from a module-level singleton variable - --> B006_B008.py:239:31 + --> B006_B008.py:242:31 | -237 | # B006 and B008 -238 | # We should handle arbitrary nesting of these B008. -239 | def nested_combo(a=[float(3), dt.datetime.now()]): +240 | # B006 and B008 +241 | # We should handle arbitrary nesting of these B008. +242 | def nested_combo(a=[float(3), dt.datetime.now()]): | ^^^^^^^^^^^^^^^^^ -240 | pass +243 | pass | B008 Do not perform function call `map` in argument defaults; instead, perform the call within the function, or read the default from a module-level singleton variable - --> B006_B008.py:245:22 + --> B006_B008.py:248:22 | -243 | # Don't flag nested B006 since we can't guarantee that -244 | # it isn't made mutable by the outer operation. -245 | def no_nested_b006(a=map(lambda s: s.upper(), ["a", "b", "c"])): +246 | # Don't flag nested B006 since we can't guarantee that +247 | # it isn't made mutable by the outer operation. +248 | def no_nested_b006(a=map(lambda s: s.upper(), ["a", "b", "c"])): | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -246 | pass +249 | pass | B008 Do not perform function call `random.randint` in argument defaults; instead, perform the call within the function, or read the default from a module-level singleton variable - --> B006_B008.py:250:19 + --> B006_B008.py:253:19 | -249 | # B008-ception. -250 | def nested_b008(a=random.randint(0, dt.datetime.now().year)): +252 | # B008-ception. +253 | def nested_b008(a=random.randint(0, dt.datetime.now().year)): | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -251 | pass +254 | pass | B008 Do not perform function call `dt.datetime.now` in argument defaults; instead, perform the call within the function, or read the default from a module-level singleton variable - --> B006_B008.py:250:37 + --> B006_B008.py:253:37 | -249 | # B008-ception. -250 | def nested_b008(a=random.randint(0, dt.datetime.now().year)): +252 | # B008-ception. +253 | def nested_b008(a=random.randint(0, dt.datetime.now().year)): | ^^^^^^^^^^^^^^^^^ -251 | pass +254 | pass | diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_B008.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_B008.py.snap index e3f42e2da7..f4113617b5 100644 --- a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_B008.py.snap +++ b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_B008.py.snap @@ -236,227 +236,227 @@ help: Replace with `None`; initialize within function note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:239:20 + --> B006_B008.py:242:20 | -237 | # B006 and B008 -238 | # We should handle arbitrary nesting of these B008. -239 | def nested_combo(a=[float(3), dt.datetime.now()]): +240 | # B006 and B008 +241 | # We should handle arbitrary nesting of these B008. +242 | def nested_combo(a=[float(3), dt.datetime.now()]): | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -240 | pass +243 | pass | help: Replace with `None`; initialize within function -236 | -237 | # B006 and B008 -238 | # We should handle arbitrary nesting of these B008. +239 | +240 | # B006 and B008 +241 | # We should handle arbitrary nesting of these B008. - def nested_combo(a=[float(3), dt.datetime.now()]): -239 + def nested_combo(a=None): -240 | pass -241 | -242 | +242 + def nested_combo(a=None): +243 | pass +244 | +245 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:276:27 + --> B006_B008.py:279:27 | -275 | def mutable_annotations( -276 | a: list[int] | None = [], +278 | def mutable_annotations( +279 | a: list[int] | None = [], | ^^ -277 | b: Optional[Dict[int, int]] = {}, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +280 | b: Optional[Dict[int, int]] = {}, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), | help: Replace with `None`; initialize within function -273 | -274 | -275 | def mutable_annotations( +276 | +277 | +278 | def mutable_annotations( - a: list[int] | None = [], -276 + a: list[int] | None = None, -277 | b: Optional[Dict[int, int]] = {}, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +279 + a: list[int] | None = None, +280 | b: Optional[Dict[int, int]] = {}, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:277:35 + --> B006_B008.py:280:35 | -275 | def mutable_annotations( -276 | a: list[int] | None = [], -277 | b: Optional[Dict[int, int]] = {}, +278 | def mutable_annotations( +279 | a: list[int] | None = [], +280 | b: Optional[Dict[int, int]] = {}, | ^^ -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), | help: Replace with `None`; initialize within function -274 | -275 | def mutable_annotations( -276 | a: list[int] | None = [], +277 | +278 | def mutable_annotations( +279 | a: list[int] | None = [], - b: Optional[Dict[int, int]] = {}, -277 + b: Optional[Dict[int, int]] = None, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -280 | ): +280 + b: Optional[Dict[int, int]] = None, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +283 | ): note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:278:62 + --> B006_B008.py:281:62 | -276 | a: list[int] | None = [], -277 | b: Optional[Dict[int, int]] = {}, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +279 | a: list[int] | None = [], +280 | b: Optional[Dict[int, int]] = {}, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), | ^^^^^ -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -280 | ): +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +283 | ): | help: Replace with `None`; initialize within function -275 | def mutable_annotations( -276 | a: list[int] | None = [], -277 | b: Optional[Dict[int, int]] = {}, +278 | def mutable_annotations( +279 | a: list[int] | None = [], +280 | b: Optional[Dict[int, int]] = {}, - c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -278 + c: Annotated[Union[Set[str], abc.Sized], "annotation"] = None, -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -280 | ): -281 | pass +281 + c: Annotated[Union[Set[str], abc.Sized], "annotation"] = None, +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +283 | ): +284 | pass note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:279:80 + --> B006_B008.py:282:80 | -277 | b: Optional[Dict[int, int]] = {}, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -279 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +280 | b: Optional[Dict[int, int]] = {}, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +282 | d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), | ^^^^^ -280 | ): -281 | pass +283 | ): +284 | pass | help: Replace with `None`; initialize within function -276 | a: list[int] | None = [], -277 | b: Optional[Dict[int, int]] = {}, -278 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), +279 | a: list[int] | None = [], +280 | b: Optional[Dict[int, int]] = {}, +281 | c: Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), - d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = set(), -279 + d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = None, -280 | ): -281 | pass -282 | +282 + d: typing_extensions.Annotated[Union[Set[str], abc.Sized], "annotation"] = None, +283 | ): +284 | pass +285 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:284:52 + --> B006_B008.py:287:52 | -284 | def single_line_func_wrong(value: dict[str, str] = {}): +287 | def single_line_func_wrong(value: dict[str, str] = {}): | ^^ -285 | """Docstring""" +288 | """Docstring""" | help: Replace with `None`; initialize within function -281 | pass -282 | -283 | - - def single_line_func_wrong(value: dict[str, str] = {}): -284 + def single_line_func_wrong(value: dict[str, str] = None): -285 | """Docstring""" +284 | pass +285 | 286 | -287 | + - def single_line_func_wrong(value: dict[str, str] = {}): +287 + def single_line_func_wrong(value: dict[str, str] = None): +288 | """Docstring""" +289 | +290 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:288:52 + --> B006_B008.py:291:52 | -288 | def single_line_func_wrong(value: dict[str, str] = {}): +291 | def single_line_func_wrong(value: dict[str, str] = {}): | ^^ -289 | """Docstring""" -290 | ... +292 | """Docstring""" +293 | ... | help: Replace with `None`; initialize within function -285 | """Docstring""" -286 | -287 | +288 | """Docstring""" +289 | +290 | - def single_line_func_wrong(value: dict[str, str] = {}): -288 + def single_line_func_wrong(value: dict[str, str] = None): -289 | """Docstring""" -290 | ... -291 | +291 + def single_line_func_wrong(value: dict[str, str] = None): +292 | """Docstring""" +293 | ... +294 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:293:52 + --> B006_B008.py:296:52 | -293 | def single_line_func_wrong(value: dict[str, str] = {}): +296 | def single_line_func_wrong(value: dict[str, str] = {}): | ^^ -294 | """Docstring"""; ... +297 | """Docstring"""; ... | help: Replace with `None`; initialize within function -290 | ... -291 | -292 | - - def single_line_func_wrong(value: dict[str, str] = {}): -293 + def single_line_func_wrong(value: dict[str, str] = None): -294 | """Docstring"""; ... +293 | ... +294 | 295 | -296 | + - def single_line_func_wrong(value: dict[str, str] = {}): +296 + def single_line_func_wrong(value: dict[str, str] = None): +297 | """Docstring"""; ... +298 | +299 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:297:52 + --> B006_B008.py:300:52 | -297 | def single_line_func_wrong(value: dict[str, str] = {}): +300 | def single_line_func_wrong(value: dict[str, str] = {}): | ^^ -298 | """Docstring"""; \ -299 | ... +301 | """Docstring"""; \ +302 | ... | help: Replace with `None`; initialize within function -294 | """Docstring"""; ... -295 | -296 | +297 | """Docstring"""; ... +298 | +299 | - def single_line_func_wrong(value: dict[str, str] = {}): -297 + def single_line_func_wrong(value: dict[str, str] = None): -298 | """Docstring"""; \ -299 | ... -300 | +300 + def single_line_func_wrong(value: dict[str, str] = None): +301 | """Docstring"""; \ +302 | ... +303 | note: This is an unsafe fix and may change runtime behavior B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:302:52 + --> B006_B008.py:305:52 | -302 | def single_line_func_wrong(value: dict[str, str] = { +305 | def single_line_func_wrong(value: dict[str, str] = { | ____________________________________________________^ -303 | | # This is a comment -304 | | }): +306 | | # This is a comment +307 | | }): | |_^ -305 | """Docstring""" +308 | """Docstring""" | help: Replace with `None`; initialize within function -299 | ... -300 | -301 | +302 | ... +303 | +304 | - def single_line_func_wrong(value: dict[str, str] = { - # This is a comment - }): -302 + def single_line_func_wrong(value: dict[str, str] = None): -303 | """Docstring""" -304 | -305 | +305 + def single_line_func_wrong(value: dict[str, str] = None): +306 | """Docstring""" +307 | +308 | note: This is an unsafe fix and may change runtime behavior B006 Do not use mutable data structures for argument defaults - --> B006_B008.py:308:52 + --> B006_B008.py:311:52 | -308 | def single_line_func_wrong(value: dict[str, str] = {}) \ +311 | def single_line_func_wrong(value: dict[str, str] = {}) \ | ^^ -309 | : \ -310 | """Docstring""" +312 | : \ +313 | """Docstring""" | help: Replace with `None`; initialize within function B006 [*] Do not use mutable data structures for argument defaults - --> B006_B008.py:313:52 + --> B006_B008.py:316:52 | -313 | def single_line_func_wrong(value: dict[str, str] = {}): +316 | def single_line_func_wrong(value: dict[str, str] = {}): | ^^ -314 | """Docstring without newline""" +317 | """Docstring without newline""" | help: Replace with `None`; initialize within function -310 | """Docstring""" -311 | -312 | +313 | """Docstring""" +314 | +315 | - def single_line_func_wrong(value: dict[str, str] = {}): -313 + def single_line_func_wrong(value: dict[str, str] = None): -314 | """Docstring without newline""" +316 + def single_line_func_wrong(value: dict[str, str] = None): +317 | """Docstring without newline""" note: This is an unsafe fix and may change runtime behavior diff --git a/crates/ruff_python_stdlib/src/typing.rs b/crates/ruff_python_stdlib/src/typing.rs index 63d7ccf32e..7f4abd367c 100644 --- a/crates/ruff_python_stdlib/src/typing.rs +++ b/crates/ruff_python_stdlib/src/typing.rs @@ -326,7 +326,15 @@ pub fn is_immutable_return_type(qualified_name: &[&str]) -> bool { | ["re", "compile"] | [ "", - "bool" | "bytes" | "complex" | "float" | "frozenset" | "int" | "str" | "tuple" + "bool" + | "bytes" + | "complex" + | "float" + | "frozenset" + | "int" + | "str" + | "tuple" + | "slice" ] ) } From eac8a90cc4ca0cc7b85a2129ec5c7bc067e6d7d6 Mon Sep 17 00:00:00 2001 From: Rasmus Nygren Date: Wed, 3 Dec 2025 21:58:01 +0100 Subject: [PATCH 51/65] [ty] Add autocomplete suggestions for function arguments This adds autocomplete suggestions for function arguments. For example, `okay` in: ```python def foo(okay=None): foo(o ``` This also ensures that we don't suggest a keyword argument if it has already been used. Closes astral-sh/issues#1550 --- crates/ty_ide/src/completion.rs | 254 +++++++++++++++++- crates/ty_ide/src/signature_help.rs | 10 + crates/ty_python_semantic/src/types.rs | 1 + .../src/types/ide_support.rs | 11 +- .../src/types/signatures.rs | 2 +- 5 files changed, 268 insertions(+), 10 deletions(-) diff --git a/crates/ty_ide/src/completion.rs b/crates/ty_ide/src/completion.rs index 70505ac4c8..445dccb615 100644 --- a/crates/ty_ide/src/completion.rs +++ b/crates/ty_ide/src/completion.rs @@ -9,6 +9,7 @@ use ruff_python_ast::token::{Token, TokenAt, TokenKind, Tokens}; use ruff_python_ast::{self as ast, AnyNodeRef}; use ruff_python_codegen::Stylist; use ruff_text_size::{Ranged, TextLen, TextRange, TextSize}; +use rustc_hash::FxHashSet; use ty_python_semantic::types::UnionType; use ty_python_semantic::{ Completion as SemanticCompletion, KnownModule, ModuleName, NameKind, SemanticModel, @@ -20,7 +21,7 @@ use crate::find_node::covering_node; use crate::goto::Definitions; use crate::importer::{ImportRequest, Importer}; use crate::symbols::QueryPattern; -use crate::{Db, all_symbols}; +use crate::{Db, all_symbols, signature_help}; /// A collection of completions built up from various sources. #[derive(Clone)] @@ -436,6 +437,10 @@ pub fn completion<'db>( ); } } + + if let Some(arg_completions) = detect_function_arg_completions(db, file, &parsed, offset) { + completions.extend(arg_completions); + } } if is_raising_exception(tokens) { @@ -451,10 +456,89 @@ pub fn completion<'db>( !ty.is_notimplemented(db) }); } - completions.into_completions() } +/// Detect and construct completions for unset function arguments. +/// +/// Suggestions are only provided if the cursor is currently inside a +/// function call and the function arguments have not 1) already been +/// set and 2) been defined as positional-only. +fn detect_function_arg_completions<'db>( + db: &'db dyn Db, + file: File, + parsed: &ParsedModuleRef, + offset: TextSize, +) -> Option>> { + let sig_help = signature_help(db, file, offset)?; + let set_function_args = detect_set_function_args(parsed, offset); + + let completions = sig_help + .signatures + .iter() + .flat_map(|sig| &sig.parameters) + .filter(|p| !p.is_positional_only && !set_function_args.contains(&p.name.as_str())) + .map(|p| { + let name = Name::new(&p.name); + let documentation = p + .documentation + .as_ref() + .map(|d| Docstring::new(d.to_owned())); + let insert = Some(format!("{name}=").into_boxed_str()); + Completion { + name, + qualified: None, + insert, + ty: None, + kind: Some(CompletionKind::Variable), + module_name: None, + import: None, + builtin: false, + is_type_check_only: false, + is_definitively_raisable: false, + documentation, + } + }) + .collect(); + Some(completions) +} + +/// Returns function arguments that have already been set. +/// +/// If `offset` is inside an arguments node, this returns +/// the list of argument names that are already set. +/// +/// For example, given: +/// +/// ```python +/// def abc(foo, bar, baz): ... +/// abc(foo=1, bar=2, b) +/// ``` +/// +/// the resulting value is `["foo", "bar"]` +/// +/// This is useful to be able to exclude autocomplete suggestions +/// for arguments that have already been set to some value. +/// +/// If the parent node is not an arguments node, the return value +/// is an empty Vec. +fn detect_set_function_args(parsed: &ParsedModuleRef, offset: TextSize) -> FxHashSet<&str> { + let range = TextRange::empty(offset); + covering_node(parsed.syntax().into(), range) + .parent() + .and_then(|node| match node { + ast::AnyNodeRef::Arguments(args) => Some(args), + _ => None, + }) + .map(|args| { + args.keywords + .iter() + .filter_map(|kw| kw.arg.as_ref().map(|ident| ident.id.as_str())) + .collect() + }) + .unwrap_or_default() +} + pub(crate) struct ImportEdit { pub label: String, pub edit: Edit, @@ -2386,10 +2470,11 @@ def frob(): ... ", ); - // FIXME: Should include `foo`. assert_snapshot!( builder.skip_keywords().skip_builtins().build().snapshot(), - @"", + @r" + foo + ", ); } @@ -2401,10 +2486,11 @@ def frob(): ... ", ); - // FIXME: Should include `foo`. assert_snapshot!( builder.skip_keywords().skip_builtins().build().snapshot(), - @"", + @r" + foo + ", ); } @@ -3039,7 +3125,6 @@ quux. "); } - // We don't yet take function parameters into account. #[test] fn call_prefix1() { let builder = completion_test_builder( @@ -3052,7 +3137,159 @@ bar(o ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @"foo"); + assert_snapshot!( + builder.skip_keywords().skip_builtins().build().snapshot(), + @r" + foo + okay + " + ); + } + + #[test] + fn call_keyword_only_argument() { + let builder = completion_test_builder( + "\ +def bar(*, okay): ... + +foo = 1 + +bar(o +", + ); + + assert_snapshot!( + builder.skip_keywords().skip_builtins().build().snapshot(), + @r" + foo + okay + " + ); + } + + #[test] + fn call_multiple_keyword_arguments() { + let builder = completion_test_builder( + "\ +def foo(bar, baz, barbaz): ... + +foo(b +", + ); + + assert_snapshot!( + builder.skip_keywords().skip_builtins().build().snapshot(), + @r" + bar + barbaz + baz + " + ); + } + + #[test] + fn call_multiple_keyword_arguments_some_set() { + let builder = completion_test_builder( + "\ +def foo(bar, baz): ... + +foo(bar=1, b +", + ); + + assert_snapshot!( + builder.skip_keywords().skip_builtins().build().snapshot(), + @r" + baz + " + ); + } + + #[test] + fn call_arguments_multi_def() { + let builder = completion_test_builder( + "\ +def abc(okay, x): ... +def bar(not_okay, y): ... +def baz(foobarbaz, z): ... + +abc(o +", + ); + + assert_snapshot!( + builder.skip_keywords().skip_builtins().build().snapshot(), + @r" + okay + " + ); + } + + #[test] + fn call_arguments_cursor_middle() { + let builder = completion_test_builder( + "\ +def abc(okay, foo, bar, baz): ... + +abc(okay=1, ba baz=5 +", + ); + + assert_snapshot!( + builder.skip_keywords().skip_builtins().build().snapshot(), + @r" + bar + " + ); + } + + + + #[test] + fn call_positional_only_argument() { + // If the parameter is positional only we don't + // want to suggest it as specifying by name + // is not valid. + let builder = completion_test_builder( + "\ +def bar(okay, /): ... + +foo = 1 + +bar(o +", + ); + + assert_snapshot!( + builder.skip_keywords().skip_builtins().build().snapshot(), + @"foo" + ); + } + + #[test] + fn call_positional_only_keyword_only_argument_mix() { + // If the parameter is positional only we don't + // want to suggest it as specifying by name + // is not valid. + let builder = completion_test_builder( + "\ +def bar(not_okay, no, /, okay, *, okay_abc, okay_okay): ... + +foo = 1 + +bar(o +", + ); + + assert_snapshot!( + builder.skip_keywords().skip_builtins().build().snapshot(), + @r" + foo + okay + okay_abc + okay_okay + " + ); } #[test] @@ -3070,6 +3307,7 @@ bar( assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @r" bar foo + okay "); } diff --git a/crates/ty_ide/src/signature_help.rs b/crates/ty_ide/src/signature_help.rs index d79f298dd6..14b374e898 100644 --- a/crates/ty_ide/src/signature_help.rs +++ b/crates/ty_ide/src/signature_help.rs @@ -17,6 +17,7 @@ use ruff_text_size::{Ranged, TextRange, TextSize}; use ty_python_semantic::ResolvedDefinition; use ty_python_semantic::SemanticModel; use ty_python_semantic::semantic_index::definition::Definition; +use ty_python_semantic::types::ParameterKind; use ty_python_semantic::types::ide_support::{ CallSignatureDetails, call_signature_details, find_active_signature_from_details, }; @@ -35,6 +36,8 @@ pub struct ParameterDetails { /// Documentation specific to the parameter, typically extracted from the /// function's docstring pub documentation: Option, + /// True if the parameter is positional-only. + pub is_positional_only: bool, } /// Information about a function signature @@ -200,6 +203,7 @@ fn create_signature_details_from_call_signature_details( &signature_label, documentation.as_ref(), &details.parameter_names, + &details.parameter_kinds, ); SignatureDetails { label: signature_label, @@ -223,6 +227,7 @@ fn create_parameters_from_offsets( signature_label: &str, docstring: Option<&Docstring>, parameter_names: &[String], + parameter_kinds: &[ParameterKind], ) -> Vec { // Extract parameter documentation from the function's docstring if available. let param_docs = if let Some(docstring) = docstring { @@ -245,11 +250,16 @@ fn create_parameters_from_offsets( // Get the parameter name for documentation lookup. let param_name = parameter_names.get(i).map(String::as_str).unwrap_or(""); + let is_positional_only = matches!( + parameter_kinds.get(i), + Some(ParameterKind::PositionalOnly { .. }) + ); ParameterDetails { name: param_name.to_string(), label, documentation: param_docs.get(param_name).cloned(), + is_positional_only, } }) .collect() diff --git a/crates/ty_python_semantic/src/types.rs b/crates/ty_python_semantic/src/types.rs index 23f7a53f79..dfc932bc66 100644 --- a/crates/ty_python_semantic/src/types.rs +++ b/crates/ty_python_semantic/src/types.rs @@ -30,6 +30,7 @@ pub(crate) use self::infer::{ TypeContext, infer_deferred_types, infer_definition_types, infer_expression_type, infer_expression_types, infer_scope_types, static_expression_truthiness, }; +pub use self::signatures::ParameterKind; pub(crate) use self::signatures::{CallableSignature, Signature}; pub(crate) use self::subclass_of::{SubclassOfInner, SubclassOfType}; pub use crate::diagnostic::add_inferred_python_version_hint_to_diagnostic; diff --git a/crates/ty_python_semantic/src/types/ide_support.rs b/crates/ty_python_semantic/src/types/ide_support.rs index a74cc82f7e..974500b75a 100644 --- a/crates/ty_python_semantic/src/types/ide_support.rs +++ b/crates/ty_python_semantic/src/types/ide_support.rs @@ -6,7 +6,7 @@ use crate::semantic_index::definition::Definition; use crate::semantic_index::definition::DefinitionKind; use crate::semantic_index::{attribute_scopes, global_scope, semantic_index, use_def_map}; use crate::types::call::{CallArguments, MatchedArgument}; -use crate::types::signatures::Signature; +use crate::types::signatures::{ParameterKind, Signature}; use crate::types::{CallDunderError, UnionType}; use crate::types::{CallableTypes, ClassBase, KnownClass, Type, TypeContext}; use crate::{Db, DisplaySettings, HasType, SemanticModel}; @@ -459,6 +459,9 @@ pub struct CallSignatureDetails<'db> { /// This provides easy access to parameter names for documentation lookup. pub parameter_names: Vec, + /// Parameter kinds, useful to determine correct autocomplete suggestions. + pub parameter_kinds: Vec>, + /// The definition where this callable was originally defined (useful for /// extracting docstrings). pub definition: Option>, @@ -517,6 +520,11 @@ pub fn call_signature_details<'db>( let display_details = signature.display(model.db()).to_string_parts(); let parameter_label_offsets = display_details.parameter_ranges; let parameter_names = display_details.parameter_names; + let parameter_kinds = signature + .parameters() + .iter() + .map(|param| param.kind().clone()) + .collect(); CallSignatureDetails { definition: signature.definition(), @@ -524,6 +532,7 @@ pub fn call_signature_details<'db>( label: display_details.label, parameter_label_offsets, parameter_names, + parameter_kinds, argument_to_parameter_mapping, } }) diff --git a/crates/ty_python_semantic/src/types/signatures.rs b/crates/ty_python_semantic/src/types/signatures.rs index ffc224c8d5..f5406798a5 100644 --- a/crates/ty_python_semantic/src/types/signatures.rs +++ b/crates/ty_python_semantic/src/types/signatures.rs @@ -2292,7 +2292,7 @@ impl<'db> Parameter<'db> { } #[derive(Clone, Debug, PartialEq, Eq, Hash, salsa::Update, get_size2::GetSize)] -pub(crate) enum ParameterKind<'db> { +pub enum ParameterKind<'db> { /// Positional-only parameter, e.g. `def f(x, /): ...` PositionalOnly { /// Parameter name. From e548ce1ca90edaab7df571ad5e8f059fb8f2e312 Mon Sep 17 00:00:00 2001 From: Rasmus Nygren Date: Fri, 5 Dec 2025 19:37:36 +0100 Subject: [PATCH 52/65] [ty] Enrich function argument auto-complete suggestions with annotated types --- crates/ty_ide/src/completion.rs | 4 +-- crates/ty_ide/src/signature_help.rs | 32 +++++++++++-------- .../src/types/ide_support.rs | 15 ++++++--- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/crates/ty_ide/src/completion.rs b/crates/ty_ide/src/completion.rs index 445dccb615..3fc0f95235 100644 --- a/crates/ty_ide/src/completion.rs +++ b/crates/ty_ide/src/completion.rs @@ -489,7 +489,7 @@ fn detect_function_arg_completions<'db>( name, qualified: None, insert, - ty: None, + ty: p.ty, kind: Some(CompletionKind::Variable), module_name: None, import: None, @@ -3243,8 +3243,6 @@ abc(okay=1, ba baz=5 ); } - - #[test] fn call_positional_only_argument() { // If the parameter is positional only we don't diff --git a/crates/ty_ide/src/signature_help.rs b/crates/ty_ide/src/signature_help.rs index 14b374e898..a4746f1563 100644 --- a/crates/ty_ide/src/signature_help.rs +++ b/crates/ty_ide/src/signature_help.rs @@ -17,10 +17,10 @@ use ruff_text_size::{Ranged, TextRange, TextSize}; use ty_python_semantic::ResolvedDefinition; use ty_python_semantic::SemanticModel; use ty_python_semantic::semantic_index::definition::Definition; -use ty_python_semantic::types::ParameterKind; use ty_python_semantic::types::ide_support::{ CallSignatureDetails, call_signature_details, find_active_signature_from_details, }; +use ty_python_semantic::types::{ParameterKind, Type}; // TODO: We may want to add special-case handling for calls to constructors // so the class docstring is used in place of (or inaddition to) any docstring @@ -28,11 +28,13 @@ use ty_python_semantic::types::ide_support::{ /// Information about a function parameter #[derive(Debug, Clone, PartialEq, Eq)] -pub struct ParameterDetails { +pub struct ParameterDetails<'db> { /// The parameter name (e.g., "param1") pub name: String, /// The parameter label in the signature (e.g., "param1: str") pub label: String, + /// The annotated type of the parameter, if any + pub ty: Option>, /// Documentation specific to the parameter, typically extracted from the /// function's docstring pub documentation: Option, @@ -42,13 +44,13 @@ pub struct ParameterDetails { /// Information about a function signature #[derive(Debug, Clone, PartialEq, Eq)] -pub struct SignatureDetails { +pub struct SignatureDetails<'db> { /// Text representation of the full signature (including input parameters and return type). pub label: String, /// Documentation for the signature, typically from the function's docstring. pub documentation: Option, /// Information about each of the parameters in left-to-right order. - pub parameters: Vec, + pub parameters: Vec>, /// Index of the parameter that corresponds to the argument where the /// user's cursor is currently positioned. pub active_parameter: Option, @@ -56,18 +58,18 @@ pub struct SignatureDetails { /// Signature help information for function calls #[derive(Debug, Clone, PartialEq, Eq)] -pub struct SignatureHelpInfo { +pub struct SignatureHelpInfo<'db> { /// Information about each of the signatures for the function call. We /// need to handle multiple because of unions, overloads, and composite /// calls like constructors (which invoke both __new__ and __init__). - pub signatures: Vec, + pub signatures: Vec>, /// Index of the "active signature" which is the first signature where /// all arguments that are currently present in the code map to parameters. pub active_signature: Option, } /// Signature help information for function calls at the given position -pub fn signature_help(db: &dyn Db, file: File, offset: TextSize) -> Option { +pub fn signature_help(db: &dyn Db, file: File, offset: TextSize) -> Option> { let parsed = parsed_module(db, file).load(db); // Get the call expression at the given position. @@ -169,11 +171,11 @@ fn get_argument_index(call_expr: &ast::ExprCall, offset: TextSize) -> usize { } /// Create signature details from `CallSignatureDetails`. -fn create_signature_details_from_call_signature_details( +fn create_signature_details_from_call_signature_details<'db>( db: &dyn crate::Db, - details: &CallSignatureDetails, + details: &CallSignatureDetails<'db>, current_arg_index: usize, -) -> SignatureDetails { +) -> SignatureDetails<'db> { let signature_label = details.label.clone(); let documentation = get_callable_documentation(db, details.definition); @@ -204,6 +206,7 @@ fn create_signature_details_from_call_signature_details( documentation.as_ref(), &details.parameter_names, &details.parameter_kinds, + &details.parameter_types, ); SignatureDetails { label: signature_label, @@ -222,13 +225,14 @@ fn get_callable_documentation( } /// Create `ParameterDetails` objects from parameter label offsets. -fn create_parameters_from_offsets( +fn create_parameters_from_offsets<'db>( parameter_offsets: &[TextRange], signature_label: &str, docstring: Option<&Docstring>, parameter_names: &[String], parameter_kinds: &[ParameterKind], -) -> Vec { + parameter_types: &[Option>], +) -> Vec> { // Extract parameter documentation from the function's docstring if available. let param_docs = if let Some(docstring) = docstring { docstring.parameter_documentation() @@ -254,10 +258,12 @@ fn create_parameters_from_offsets( parameter_kinds.get(i), Some(ParameterKind::PositionalOnly { .. }) ); + let ty = parameter_types.get(i).copied().flatten(); ParameterDetails { name: param_name.to_string(), label, + ty, documentation: param_docs.get(param_name).cloned(), is_positional_only, } @@ -1183,7 +1189,7 @@ def ab(a: int, *, c: int): } impl CursorTest { - fn signature_help(&self) -> Option { + fn signature_help(&self) -> Option> { crate::signature_help::signature_help(&self.db, self.cursor.file, self.cursor.offset) } diff --git a/crates/ty_python_semantic/src/types/ide_support.rs b/crates/ty_python_semantic/src/types/ide_support.rs index 974500b75a..d32eba2ace 100644 --- a/crates/ty_python_semantic/src/types/ide_support.rs +++ b/crates/ty_python_semantic/src/types/ide_support.rs @@ -462,6 +462,9 @@ pub struct CallSignatureDetails<'db> { /// Parameter kinds, useful to determine correct autocomplete suggestions. pub parameter_kinds: Vec>, + /// Parameter kinds, useful to determine correct autocomplete suggestions. + pub parameter_types: Vec>>, + /// The definition where this callable was originally defined (useful for /// extracting docstrings). pub definition: Option>, @@ -520,11 +523,12 @@ pub fn call_signature_details<'db>( let display_details = signature.display(model.db()).to_string_parts(); let parameter_label_offsets = display_details.parameter_ranges; let parameter_names = display_details.parameter_names; - let parameter_kinds = signature - .parameters() - .iter() - .map(|param| param.kind().clone()) - .collect(); + let (parameter_kinds, parameter_types): (Vec, Vec>) = + signature + .parameters() + .iter() + .map(|param| (param.kind().clone(), param.annotated_type())) + .unzip(); CallSignatureDetails { definition: signature.definition(), @@ -533,6 +537,7 @@ pub fn call_signature_details<'db>( parameter_label_offsets, parameter_names, parameter_kinds, + parameter_types, argument_to_parameter_mapping, } }) From 8ea18966cfcb6c6f634afdd0c9503ac2ef1b97b3 Mon Sep 17 00:00:00 2001 From: Aria Desires Date: Mon, 8 Dec 2025 17:44:17 -0500 Subject: [PATCH 53/65] [ty] followup: add-import action for `reveal_type` too (#21668) --- crates/ty_ide/src/code_action.rs | 10 +- crates/ty_server/tests/e2e/code_actions.rs | 39 +++++++- ...ns__code_action_undefined_reveal_type.snap | 98 +++++++++++++++++++ 3 files changed, 142 insertions(+), 5 deletions(-) create mode 100644 crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reveal_type.snap diff --git a/crates/ty_ide/src/code_action.rs b/crates/ty_ide/src/code_action.rs index 1a02389735..8826dfce06 100644 --- a/crates/ty_ide/src/code_action.rs +++ b/crates/ty_ide/src/code_action.rs @@ -5,7 +5,8 @@ use ruff_diagnostics::Edit; use ruff_text_size::TextRange; use ty_project::Db; use ty_python_semantic::create_suppression_fix; -use ty_python_semantic::types::UNRESOLVED_REFERENCE; +use ty_python_semantic::lint::LintId; +use ty_python_semantic::types::{UNDEFINED_REVEAL, UNRESOLVED_REFERENCE}; /// A `QuickFix` Code Action #[derive(Debug, Clone)] @@ -28,12 +29,17 @@ pub fn code_actions( let mut actions = Vec::new(); - if lint_id.name() == UNRESOLVED_REFERENCE.name() + // Suggest imports for unresolved references (often ideal) + // TODO: suggest qualifying with an already imported symbol + let is_unresolved_reference = + lint_id == LintId::of(&UNRESOLVED_REFERENCE) || lint_id == LintId::of(&UNDEFINED_REVEAL); + if is_unresolved_reference && let Some(import_quick_fix) = create_import_symbol_quick_fix(db, file, diagnostic_range) { actions.extend(import_quick_fix); } + // Suggest just suppressing the lint (always a valid option, but never ideal) actions.push(QuickFix { title: format!("Ignore '{}' for this line", lint_id.name()), edits: create_suppression_fix(db, file, lint_id, diagnostic_range).into_edits(), diff --git a/crates/ty_server/tests/e2e/code_actions.rs b/crates/ty_server/tests/e2e/code_actions.rs index d60d9ad302..d3d50c5fb9 100644 --- a/crates/ty_server/tests/e2e/code_actions.rs +++ b/crates/ty_server/tests/e2e/code_actions.rs @@ -132,11 +132,44 @@ x: Literal[1] = 1 "; let ty_toml = SystemPath::new("ty.toml"); - let ty_toml_content = "\ -[rules] -unused-ignore-comment = \"warn\" + let ty_toml_content = ""; + + let mut server = TestServerBuilder::new()? + .with_workspace(workspace_root, None)? + .with_file(ty_toml, ty_toml_content)? + .with_file(foo, foo_content)? + .enable_pull_diagnostics(true) + .build() + .wait_until_workspaces_are_initialized(); + + server.open_text_document(foo, foo_content, 1); + + // Wait for diagnostics to be computed. + let diagnostics = server.document_diagnostic_request(foo, None); + let range = full_range(foo_content); + let code_action_params = code_actions_at(&server, diagnostics, foo, range); + + // Get code actions + let code_action_id = server.send_request::(code_action_params); + let code_actions = server.await_response::(&code_action_id); + + insta::assert_json_snapshot!(code_actions); + + Ok(()) +} + +// `Literal` is available from two places so we should suggest two possible imports +#[test] +fn code_action_undefined_reveal_type() -> Result<()> { + let workspace_root = SystemPath::new("src"); + let foo = SystemPath::new("src/foo.py"); + let foo_content = "\ +reveal_type(1) "; + let ty_toml = SystemPath::new("ty.toml"); + let ty_toml_content = ""; + let mut server = TestServerBuilder::new()? .with_workspace(workspace_root, None)? .with_file(ty_toml, ty_toml_content)? diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reveal_type.snap b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reveal_type.snap new file mode 100644 index 0000000000..aace2bc042 --- /dev/null +++ b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reveal_type.snap @@ -0,0 +1,98 @@ +--- +source: crates/ty_server/tests/e2e/code_actions.rs +expression: code_actions +--- +[ + { + "title": "import typing.reveal_type", + "kind": "quickfix", + "diagnostics": [ + { + "range": { + "start": { + "line": 0, + "character": 0 + }, + "end": { + "line": 0, + "character": 11 + } + }, + "severity": 2, + "code": "undefined-reveal", + "codeDescription": { + "href": "https://ty.dev/rules#undefined-reveal" + }, + "source": "ty", + "message": "`reveal_type` used without importing it", + "relatedInformation": [] + } + ], + "edit": { + "changes": { + "file:///src/foo.py": [ + { + "range": { + "start": { + "line": 0, + "character": 0 + }, + "end": { + "line": 0, + "character": 0 + } + }, + "newText": "from typing import reveal_type\n" + } + ] + } + }, + "isPreferred": true + }, + { + "title": "Ignore 'undefined-reveal' for this line", + "kind": "quickfix", + "diagnostics": [ + { + "range": { + "start": { + "line": 0, + "character": 0 + }, + "end": { + "line": 0, + "character": 11 + } + }, + "severity": 2, + "code": "undefined-reveal", + "codeDescription": { + "href": "https://ty.dev/rules#undefined-reveal" + }, + "source": "ty", + "message": "`reveal_type` used without importing it", + "relatedInformation": [] + } + ], + "edit": { + "changes": { + "file:///src/foo.py": [ + { + "range": { + "start": { + "line": 0, + "character": 14 + }, + "end": { + "line": 0, + "character": 14 + } + }, + "newText": " # ty:ignore[undefined-reveal]" + } + ] + } + }, + "isPreferred": false + } +] From 4e67a219bbb7b66db315a010e44e67fec895be04 Mon Sep 17 00:00:00 2001 From: Amethyst Reese Date: Mon, 8 Dec 2025 16:11:59 -0800 Subject: [PATCH 54/65] apply range suppressions to filter diagnostics (#21623) Builds on range suppressions from https://github.com/astral-sh/ruff/pull/21441 Filters diagnostics based on parsed valid range suppressions. Issue: #3711 --- crates/ruff/tests/cli/lint.rs | 166 +++++++++++++++++ .../test/fixtures/ruff/suppressions.py | 56 ++++++ crates/ruff_linter/src/checkers/noqa.rs | 14 +- crates/ruff_linter/src/linter.rs | 19 ++ crates/ruff_linter/src/noqa.rs | 40 ++++- crates/ruff_linter/src/preview.rs | 5 + crates/ruff_linter/src/rules/pyflakes/mod.rs | 4 + crates/ruff_linter/src/rules/ruff/mod.rs | 19 ++ ...ules__ruff__tests__range_suppressions.snap | 168 ++++++++++++++++++ crates/ruff_linter/src/settings/mod.rs | 6 + crates/ruff_linter/src/suppression.rs | 61 ++++++- crates/ruff_linter/src/test.rs | 6 + crates/ruff_server/src/lint.rs | 7 + crates/ruff_wasm/src/lib.rs | 5 + 14 files changed, 564 insertions(+), 12 deletions(-) create mode 100644 crates/ruff_linter/resources/test/fixtures/ruff/suppressions.py create mode 100644 crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__range_suppressions.snap diff --git a/crates/ruff/tests/cli/lint.rs b/crates/ruff/tests/cli/lint.rs index 25500ed346..a86d8e81be 100644 --- a/crates/ruff/tests/cli/lint.rs +++ b/crates/ruff/tests/cli/lint.rs @@ -1440,6 +1440,78 @@ def function(): Ok(()) } +#[test] +fn ignore_noqa() -> Result<()> { + let fixture = CliTest::new()?; + fixture.write_file( + "ruff.toml", + r#" +[lint] +select = ["F401"] +"#, + )?; + + fixture.write_file( + "noqa.py", + r#" +import os # noqa: F401 + +# ruff: disable[F401] +import sys +"#, + )?; + + // without --ignore-noqa + assert_cmd_snapshot!(fixture + .check_command() + .args(["--config", "ruff.toml"]) + .arg("noqa.py"), + @r" + success: false + exit_code: 1 + ----- stdout ----- + noqa.py:5:8: F401 [*] `sys` imported but unused + Found 1 error. + [*] 1 fixable with the `--fix` option. + + ----- stderr ----- + "); + + assert_cmd_snapshot!(fixture + .check_command() + .args(["--config", "ruff.toml"]) + .arg("noqa.py") + .args(["--preview"]), + @r" + success: true + exit_code: 0 + ----- stdout ----- + All checks passed! + + ----- stderr ----- + "); + + // with --ignore-noqa --preview + assert_cmd_snapshot!(fixture + .check_command() + .args(["--config", "ruff.toml"]) + .arg("noqa.py") + .args(["--ignore-noqa", "--preview"]), + @r" + success: false + exit_code: 1 + ----- stdout ----- + noqa.py:2:8: F401 [*] `os` imported but unused + noqa.py:5:8: F401 [*] `sys` imported but unused + Found 2 errors. + [*] 2 fixable with the `--fix` option. + + ----- stderr ----- + "); + + Ok(()) +} + #[test] fn add_noqa() -> Result<()> { let fixture = CliTest::new()?; @@ -1632,6 +1704,100 @@ def unused(x): # noqa: ANN001, ARG001, D103 Ok(()) } +#[test] +fn add_noqa_existing_file_level_noqa() -> Result<()> { + let fixture = CliTest::new()?; + fixture.write_file( + "ruff.toml", + r#" +[lint] +select = ["F401"] +"#, + )?; + + fixture.write_file( + "noqa.py", + r#" +# ruff: noqa F401 +import os +"#, + )?; + + assert_cmd_snapshot!(fixture + .check_command() + .args(["--config", "ruff.toml"]) + .arg("noqa.py") + .arg("--preview") + .args(["--add-noqa"]) + .arg("-") + .pass_stdin(r#" + +"#), @r" + success: true + exit_code: 0 + ----- stdout ----- + + ----- stderr ----- + "); + + let test_code = + fs::read_to_string(fixture.root().join("noqa.py")).expect("should read test file"); + + insta::assert_snapshot!(test_code, @r" + # ruff: noqa F401 + import os + "); + + Ok(()) +} + +#[test] +fn add_noqa_existing_range_suppression() -> Result<()> { + let fixture = CliTest::new()?; + fixture.write_file( + "ruff.toml", + r#" +[lint] +select = ["F401"] +"#, + )?; + + fixture.write_file( + "noqa.py", + r#" +# ruff: disable[F401] +import os +"#, + )?; + + assert_cmd_snapshot!(fixture + .check_command() + .args(["--config", "ruff.toml"]) + .arg("noqa.py") + .arg("--preview") + .args(["--add-noqa"]) + .arg("-") + .pass_stdin(r#" + +"#), @r" + success: true + exit_code: 0 + ----- stdout ----- + + ----- stderr ----- + "); + + let test_code = + fs::read_to_string(fixture.root().join("noqa.py")).expect("should read test file"); + + insta::assert_snapshot!(test_code, @r" + # ruff: disable[F401] + import os + "); + + Ok(()) +} + #[test] fn add_noqa_multiline_comment() -> Result<()> { let fixture = CliTest::new()?; diff --git a/crates/ruff_linter/resources/test/fixtures/ruff/suppressions.py b/crates/ruff_linter/resources/test/fixtures/ruff/suppressions.py new file mode 100644 index 0000000000..7a70c4d548 --- /dev/null +++ b/crates/ruff_linter/resources/test/fixtures/ruff/suppressions.py @@ -0,0 +1,56 @@ +def f(): + # These should both be ignored by the range suppression. + # ruff: disable[E741, F841] + I = 1 + # ruff: enable[E741, F841] + + +def f(): + # These should both be ignored by the implicit range suppression. + # Should also generate an "unmatched suppression" warning. + # ruff:disable[E741,F841] + I = 1 + + +def f(): + # Neither warning is ignored, and an "unmatched suppression" + # should be generated. + I = 1 + # ruff: enable[E741, F841] + + +def f(): + # One should be ignored by the range suppression, and + # the other logged to the user. + # ruff: disable[E741] + I = 1 + # ruff: enable[E741] + + +def f(): + # Test interleaved range suppressions. The first and last + # lines should each log a different warning, while the + # middle line should be completely silenced. + # ruff: disable[E741] + l = 0 + # ruff: disable[F841] + O = 1 + # ruff: enable[E741] + I = 2 + # ruff: enable[F841] + + +def f(): + # Neither of these are ignored and warnings are + # logged to user + # ruff: disable[E501] + I = 1 + # ruff: enable[E501] + + +def f(): + # These should both be ignored by the range suppression, + # and an unusued noqa diagnostic should be logged. + # ruff:disable[E741,F841] + I = 1 # noqa: E741,F841 + # ruff:enable[E741,F841] diff --git a/crates/ruff_linter/src/checkers/noqa.rs b/crates/ruff_linter/src/checkers/noqa.rs index 7cf58a5def..2602adeeee 100644 --- a/crates/ruff_linter/src/checkers/noqa.rs +++ b/crates/ruff_linter/src/checkers/noqa.rs @@ -12,17 +12,20 @@ use crate::fix::edits::delete_comment; use crate::noqa::{ Code, Directive, FileExemption, FileNoqaDirectives, NoqaDirectives, NoqaMapping, }; +use crate::preview::is_range_suppressions_enabled; use crate::registry::Rule; use crate::rule_redirects::get_redirect_target; use crate::rules::pygrep_hooks; use crate::rules::ruff; use crate::rules::ruff::rules::{UnusedCodes, UnusedNOQA}; use crate::settings::LinterSettings; +use crate::suppression::Suppressions; use crate::{Edit, Fix, Locator}; use super::ast::LintContext; /// RUF100 +#[expect(clippy::too_many_arguments)] pub(crate) fn check_noqa( context: &mut LintContext, path: &Path, @@ -31,6 +34,7 @@ pub(crate) fn check_noqa( noqa_line_for: &NoqaMapping, analyze_directives: bool, settings: &LinterSettings, + suppressions: &Suppressions, ) -> Vec { // Identify any codes that are globally exempted (within the current file). let file_noqa_directives = @@ -40,7 +44,7 @@ pub(crate) fn check_noqa( let mut noqa_directives = NoqaDirectives::from_commented_ranges(comment_ranges, &settings.external, path, locator); - if file_noqa_directives.is_empty() && noqa_directives.is_empty() { + if file_noqa_directives.is_empty() && noqa_directives.is_empty() && suppressions.is_empty() { return Vec::new(); } @@ -60,11 +64,19 @@ pub(crate) fn check_noqa( continue; } + // Apply file-level suppressions first if exemption.contains_secondary_code(code) { ignored_diagnostics.push(index); continue; } + // Apply ranged suppressions next + if is_range_suppressions_enabled(settings) && suppressions.check_diagnostic(diagnostic) { + ignored_diagnostics.push(index); + continue; + } + + // Apply end-of-line noqa suppressions last let noqa_offsets = diagnostic .parent() .into_iter() diff --git a/crates/ruff_linter/src/linter.rs b/crates/ruff_linter/src/linter.rs index 719d5ac9c5..08c0417020 100644 --- a/crates/ruff_linter/src/linter.rs +++ b/crates/ruff_linter/src/linter.rs @@ -32,6 +32,7 @@ use crate::rules::ruff::rules::test_rules::{self, TEST_RULES, TestRule}; use crate::settings::types::UnsafeFixes; use crate::settings::{LinterSettings, TargetVersion, flags}; use crate::source_kind::SourceKind; +use crate::suppression::Suppressions; use crate::{Locator, directives, fs}; pub(crate) mod float; @@ -128,6 +129,7 @@ pub fn check_path( source_type: PySourceType, parsed: &Parsed, target_version: TargetVersion, + suppressions: &Suppressions, ) -> Vec { // Aggregate all diagnostics. let mut context = LintContext::new(path, locator.contents(), settings); @@ -339,6 +341,7 @@ pub fn check_path( &directives.noqa_line_for, parsed.has_valid_syntax(), settings, + suppressions, ); if noqa.is_enabled() { for index in ignored.iter().rev() { @@ -400,6 +403,9 @@ pub fn add_noqa_to_path( &indexer, ); + // Parse range suppression comments + let suppressions = Suppressions::from_tokens(settings, locator.contents(), parsed.tokens()); + // Generate diagnostics, ignoring any existing `noqa` directives. let diagnostics = check_path( path, @@ -414,6 +420,7 @@ pub fn add_noqa_to_path( source_type, &parsed, target_version, + &suppressions, ); // Add any missing `# noqa` pragmas. @@ -427,6 +434,7 @@ pub fn add_noqa_to_path( &directives.noqa_line_for, stylist.line_ending(), reason, + &suppressions, ) } @@ -461,6 +469,9 @@ pub fn lint_only( &indexer, ); + // Parse range suppression comments + let suppressions = Suppressions::from_tokens(settings, locator.contents(), parsed.tokens()); + // Generate diagnostics. let diagnostics = check_path( path, @@ -475,6 +486,7 @@ pub fn lint_only( source_type, &parsed, target_version, + &suppressions, ); LinterResult { @@ -566,6 +578,9 @@ pub fn lint_fix<'a>( &indexer, ); + // Parse range suppression comments + let suppressions = Suppressions::from_tokens(settings, locator.contents(), parsed.tokens()); + // Generate diagnostics. let diagnostics = check_path( path, @@ -580,6 +595,7 @@ pub fn lint_fix<'a>( source_type, &parsed, target_version, + &suppressions, ); if iterations == 0 { @@ -769,6 +785,7 @@ mod tests { use crate::registry::Rule; use crate::settings::LinterSettings; use crate::source_kind::SourceKind; + use crate::suppression::Suppressions; use crate::test::{TestedNotebook, assert_notebook_path, test_contents, test_snippet}; use crate::{Locator, assert_diagnostics, directives, settings}; @@ -944,6 +961,7 @@ mod tests { &locator, &indexer, ); + let suppressions = Suppressions::from_tokens(settings, locator.contents(), parsed.tokens()); let mut diagnostics = check_path( path, None, @@ -957,6 +975,7 @@ mod tests { source_type, &parsed, target_version, + &suppressions, ); diagnostics.sort_by(Diagnostic::ruff_start_ordering); diagnostics diff --git a/crates/ruff_linter/src/noqa.rs b/crates/ruff_linter/src/noqa.rs index da9535817e..e8c3ada650 100644 --- a/crates/ruff_linter/src/noqa.rs +++ b/crates/ruff_linter/src/noqa.rs @@ -20,12 +20,14 @@ use crate::Locator; use crate::fs::relativize_path; use crate::registry::Rule; use crate::rule_redirects::get_redirect_target; +use crate::suppression::Suppressions; /// Generates an array of edits that matches the length of `messages`. /// Each potential edit in the array is paired, in order, with the associated diagnostic. /// Each edit will add a `noqa` comment to the appropriate line in the source to hide /// the diagnostic. These edits may conflict with each other and should not be applied /// simultaneously. +#[expect(clippy::too_many_arguments)] pub fn generate_noqa_edits( path: &Path, diagnostics: &[Diagnostic], @@ -34,11 +36,19 @@ pub fn generate_noqa_edits( external: &[String], noqa_line_for: &NoqaMapping, line_ending: LineEnding, + suppressions: &Suppressions, ) -> Vec> { let file_directives = FileNoqaDirectives::extract(locator, comment_ranges, external, path); let exemption = FileExemption::from(&file_directives); let directives = NoqaDirectives::from_commented_ranges(comment_ranges, external, path, locator); - let comments = find_noqa_comments(diagnostics, locator, &exemption, &directives, noqa_line_for); + let comments = find_noqa_comments( + diagnostics, + locator, + &exemption, + &directives, + noqa_line_for, + suppressions, + ); build_noqa_edits_by_diagnostic(comments, locator, line_ending, None) } @@ -725,6 +735,7 @@ pub(crate) fn add_noqa( noqa_line_for: &NoqaMapping, line_ending: LineEnding, reason: Option<&str>, + suppressions: &Suppressions, ) -> Result { let (count, output) = add_noqa_inner( path, @@ -735,6 +746,7 @@ pub(crate) fn add_noqa( noqa_line_for, line_ending, reason, + suppressions, ); fs::write(path, output)?; @@ -751,6 +763,7 @@ fn add_noqa_inner( noqa_line_for: &NoqaMapping, line_ending: LineEnding, reason: Option<&str>, + suppressions: &Suppressions, ) -> (usize, String) { let mut count = 0; @@ -760,7 +773,14 @@ fn add_noqa_inner( let directives = NoqaDirectives::from_commented_ranges(comment_ranges, external, path, locator); - let comments = find_noqa_comments(diagnostics, locator, &exemption, &directives, noqa_line_for); + let comments = find_noqa_comments( + diagnostics, + locator, + &exemption, + &directives, + noqa_line_for, + suppressions, + ); let edits = build_noqa_edits_by_line(comments, locator, line_ending, reason); @@ -859,6 +879,7 @@ fn find_noqa_comments<'a>( exemption: &'a FileExemption, directives: &'a NoqaDirectives, noqa_line_for: &NoqaMapping, + suppressions: &Suppressions, ) -> Vec>> { // List of noqa comments, ordered to match up with `messages` let mut comments_by_line: Vec>> = vec![]; @@ -875,6 +896,12 @@ fn find_noqa_comments<'a>( continue; } + // Apply ranged suppressions next + if suppressions.check_diagnostic(message) { + comments_by_line.push(None); + continue; + } + // Is the violation ignored by a `noqa` directive on the parent line? if let Some(parent) = message.parent() { if let Some(directive_line) = @@ -1253,6 +1280,7 @@ mod tests { use crate::rules::pycodestyle::rules::{AmbiguousVariableName, UselessSemicolon}; use crate::rules::pyflakes::rules::UnusedVariable; use crate::rules::pyupgrade::rules::PrintfStringFormatting; + use crate::suppression::Suppressions; use crate::{Edit, Violation}; use crate::{Locator, generate_noqa_edits}; @@ -2848,6 +2876,7 @@ mod tests { &noqa_line_for, LineEnding::Lf, None, + &Suppressions::default(), ); assert_eq!(count, 0); assert_eq!(output, format!("{contents}")); @@ -2872,6 +2901,7 @@ mod tests { &noqa_line_for, LineEnding::Lf, None, + &Suppressions::default(), ); assert_eq!(count, 1); assert_eq!(output, "x = 1 # noqa: F841\n"); @@ -2903,6 +2933,7 @@ mod tests { &noqa_line_for, LineEnding::Lf, None, + &Suppressions::default(), ); assert_eq!(count, 1); assert_eq!(output, "x = 1 # noqa: E741, F841\n"); @@ -2934,6 +2965,7 @@ mod tests { &noqa_line_for, LineEnding::Lf, None, + &Suppressions::default(), ); assert_eq!(count, 0); assert_eq!(output, "x = 1 # noqa"); @@ -2956,6 +2988,7 @@ print( let messages = [PrintfStringFormatting .into_diagnostic(TextRange::new(12.into(), 79.into()), &source_file)]; let comment_ranges = CommentRanges::default(); + let suppressions = Suppressions::default(); let edits = generate_noqa_edits( path, &messages, @@ -2964,6 +2997,7 @@ print( &[], &noqa_line_for, LineEnding::Lf, + &suppressions, ); assert_eq!( edits, @@ -2987,6 +3021,7 @@ bar = [UselessSemicolon.into_diagnostic(TextRange::new(4.into(), 5.into()), &source_file)]; let noqa_line_for = NoqaMapping::default(); let comment_ranges = CommentRanges::default(); + let suppressions = Suppressions::default(); let edits = generate_noqa_edits( path, &messages, @@ -2995,6 +3030,7 @@ bar = &[], &noqa_line_for, LineEnding::Lf, + &suppressions, ); assert_eq!( edits, diff --git a/crates/ruff_linter/src/preview.rs b/crates/ruff_linter/src/preview.rs index 52be730545..93a49e63a0 100644 --- a/crates/ruff_linter/src/preview.rs +++ b/crates/ruff_linter/src/preview.rs @@ -286,3 +286,8 @@ pub(crate) const fn is_s310_resolve_string_literal_bindings_enabled( ) -> bool { settings.preview.is_enabled() } + +// https://github.com/astral-sh/ruff/pull/21623 +pub(crate) const fn is_range_suppressions_enabled(settings: &LinterSettings) -> bool { + settings.preview.is_enabled() +} diff --git a/crates/ruff_linter/src/rules/pyflakes/mod.rs b/crates/ruff_linter/src/rules/pyflakes/mod.rs index d290ed38c5..02cd5158a8 100644 --- a/crates/ruff_linter/src/rules/pyflakes/mod.rs +++ b/crates/ruff_linter/src/rules/pyflakes/mod.rs @@ -28,6 +28,7 @@ mod tests { use crate::settings::types::PreviewMode; use crate::settings::{LinterSettings, flags}; use crate::source_kind::SourceKind; + use crate::suppression::Suppressions; use crate::test::{test_contents, test_path, test_snippet}; use crate::{Locator, assert_diagnostics, assert_diagnostics_diff, directives}; @@ -955,6 +956,8 @@ mod tests { &locator, &indexer, ); + let suppressions = + Suppressions::from_tokens(&settings, locator.contents(), parsed.tokens()); let mut messages = check_path( Path::new(""), None, @@ -968,6 +971,7 @@ mod tests { source_type, &parsed, target_version, + &suppressions, ); messages.sort_by(Diagnostic::ruff_start_ordering); let actual = messages diff --git a/crates/ruff_linter/src/rules/ruff/mod.rs b/crates/ruff_linter/src/rules/ruff/mod.rs index 5f06ffdb9f..c2d03fb1ae 100644 --- a/crates/ruff_linter/src/rules/ruff/mod.rs +++ b/crates/ruff_linter/src/rules/ruff/mod.rs @@ -305,6 +305,25 @@ mod tests { Ok(()) } + #[test] + fn range_suppressions() -> Result<()> { + assert_diagnostics_diff!( + Path::new("ruff/suppressions.py"), + &settings::LinterSettings::for_rules(vec![ + Rule::UnusedVariable, + Rule::AmbiguousVariableName, + Rule::UnusedNOQA, + ]), + &settings::LinterSettings::for_rules(vec![ + Rule::UnusedVariable, + Rule::AmbiguousVariableName, + Rule::UnusedNOQA, + ]) + .with_preview_mode(), + ); + Ok(()) + } + #[test] fn ruf100_0() -> Result<()> { let diagnostics = test_path( diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__range_suppressions.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__range_suppressions.snap new file mode 100644 index 0000000000..4e09507482 --- /dev/null +++ b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__range_suppressions.snap @@ -0,0 +1,168 @@ +--- +source: crates/ruff_linter/src/rules/ruff/mod.rs +--- +--- Linter settings --- +-linter.preview = disabled ++linter.preview = enabled + +--- Summary --- +Removed: 9 +Added: 1 + +--- Removed --- +E741 Ambiguous variable name: `I` + --> suppressions.py:4:5 + | +2 | # These should both be ignored by the range suppression. +3 | # ruff: disable[E741, F841] +4 | I = 1 + | ^ +5 | # ruff: enable[E741, F841] + | + + +F841 [*] Local variable `I` is assigned to but never used + --> suppressions.py:4:5 + | +2 | # These should both be ignored by the range suppression. +3 | # ruff: disable[E741, F841] +4 | I = 1 + | ^ +5 | # ruff: enable[E741, F841] + | +help: Remove assignment to unused variable `I` +1 | def f(): +2 | # These should both be ignored by the range suppression. +3 | # ruff: disable[E741, F841] + - I = 1 +4 + pass +5 | # ruff: enable[E741, F841] +6 | +7 | +note: This is an unsafe fix and may change runtime behavior + + +E741 Ambiguous variable name: `I` + --> suppressions.py:12:5 + | +10 | # Should also generate an "unmatched suppression" warning. +11 | # ruff:disable[E741,F841] +12 | I = 1 + | ^ + | + + +F841 [*] Local variable `I` is assigned to but never used + --> suppressions.py:12:5 + | +10 | # Should also generate an "unmatched suppression" warning. +11 | # ruff:disable[E741,F841] +12 | I = 1 + | ^ + | +help: Remove assignment to unused variable `I` +9 | # These should both be ignored by the implicit range suppression. +10 | # Should also generate an "unmatched suppression" warning. +11 | # ruff:disable[E741,F841] + - I = 1 +12 + pass +13 | +14 | +15 | def f(): +note: This is an unsafe fix and may change runtime behavior + + +E741 Ambiguous variable name: `I` + --> suppressions.py:26:5 + | +24 | # the other logged to the user. +25 | # ruff: disable[E741] +26 | I = 1 + | ^ +27 | # ruff: enable[E741] + | + + +E741 Ambiguous variable name: `l` + --> suppressions.py:35:5 + | +33 | # middle line should be completely silenced. +34 | # ruff: disable[E741] +35 | l = 0 + | ^ +36 | # ruff: disable[F841] +37 | O = 1 + | + + +E741 Ambiguous variable name: `O` + --> suppressions.py:37:5 + | +35 | l = 0 +36 | # ruff: disable[F841] +37 | O = 1 + | ^ +38 | # ruff: enable[E741] +39 | I = 2 + | + + +F841 [*] Local variable `O` is assigned to but never used + --> suppressions.py:37:5 + | +35 | l = 0 +36 | # ruff: disable[F841] +37 | O = 1 + | ^ +38 | # ruff: enable[E741] +39 | I = 2 + | +help: Remove assignment to unused variable `O` +34 | # ruff: disable[E741] +35 | l = 0 +36 | # ruff: disable[F841] + - O = 1 +37 | # ruff: enable[E741] +38 | I = 2 +39 | # ruff: enable[F841] +note: This is an unsafe fix and may change runtime behavior + + +F841 [*] Local variable `I` is assigned to but never used + --> suppressions.py:39:5 + | +37 | O = 1 +38 | # ruff: enable[E741] +39 | I = 2 + | ^ +40 | # ruff: enable[F841] + | +help: Remove assignment to unused variable `I` +36 | # ruff: disable[F841] +37 | O = 1 +38 | # ruff: enable[E741] + - I = 2 +39 | # ruff: enable[F841] +40 | +41 | +note: This is an unsafe fix and may change runtime behavior + + + +--- Added --- +RUF100 [*] Unused `noqa` directive (unused: `E741`, `F841`) + --> suppressions.py:55:12 + | +53 | # and an unusued noqa diagnostic should be logged. +54 | # ruff:disable[E741,F841] +55 | I = 1 # noqa: E741,F841 + | ^^^^^^^^^^^^^^^^^ +56 | # ruff:enable[E741,F841] + | +help: Remove unused `noqa` directive +52 | # These should both be ignored by the range suppression, +53 | # and an unusued noqa diagnostic should be logged. +54 | # ruff:disable[E741,F841] + - I = 1 # noqa: E741,F841 +55 + I = 1 +56 | # ruff:enable[E741,F841] diff --git a/crates/ruff_linter/src/settings/mod.rs b/crates/ruff_linter/src/settings/mod.rs index b94e4edafb..5d5e35aa8d 100644 --- a/crates/ruff_linter/src/settings/mod.rs +++ b/crates/ruff_linter/src/settings/mod.rs @@ -465,6 +465,12 @@ impl LinterSettings { self } + #[must_use] + pub fn with_preview_mode(mut self) -> Self { + self.preview = PreviewMode::Enabled; + self + } + /// Resolve the [`TargetVersion`] to use for linting. /// /// This method respects the per-file version overrides in diff --git a/crates/ruff_linter/src/suppression.rs b/crates/ruff_linter/src/suppression.rs index 66ad98d25e..3c1a2f57ab 100644 --- a/crates/ruff_linter/src/suppression.rs +++ b/crates/ruff_linter/src/suppression.rs @@ -1,5 +1,6 @@ use compact_str::CompactString; use core::fmt; +use ruff_db::diagnostic::Diagnostic; use ruff_python_ast::token::{TokenKind, Tokens}; use ruff_python_ast::whitespace::indentation; use std::{error::Error, fmt::Formatter}; @@ -9,6 +10,9 @@ use ruff_python_trivia::Cursor; use ruff_text_size::{Ranged, TextLen, TextRange, TextSize, TextSlice}; use smallvec::{SmallVec, smallvec}; +use crate::preview::is_range_suppressions_enabled; +use crate::settings::LinterSettings; + #[allow(unused)] #[derive(Clone, Debug, Eq, PartialEq)] enum SuppressionAction { @@ -98,8 +102,8 @@ pub(crate) struct InvalidSuppression { } #[allow(unused)] -#[derive(Debug)] -pub(crate) struct Suppressions { +#[derive(Debug, Default)] +pub struct Suppressions { /// Valid suppression ranges with associated comments valid: Vec, @@ -112,9 +116,41 @@ pub(crate) struct Suppressions { #[allow(unused)] impl Suppressions { - pub(crate) fn from_tokens(source: &str, tokens: &Tokens) -> Suppressions { - let builder = SuppressionsBuilder::new(source); - builder.load_from_tokens(tokens) + pub fn from_tokens(settings: &LinterSettings, source: &str, tokens: &Tokens) -> Suppressions { + if is_range_suppressions_enabled(settings) { + let builder = SuppressionsBuilder::new(source); + builder.load_from_tokens(tokens) + } else { + Suppressions::default() + } + } + + pub(crate) fn is_empty(&self) -> bool { + self.valid.is_empty() + } + + /// Check if a diagnostic is suppressed by any known range suppressions + pub(crate) fn check_diagnostic(&self, diagnostic: &Diagnostic) -> bool { + if self.valid.is_empty() { + return false; + } + + let Some(code) = diagnostic.secondary_code() else { + return false; + }; + let Some(span) = diagnostic.primary_span() else { + return false; + }; + let Some(range) = span.range() else { + return false; + }; + + for suppression in &self.valid { + if *code == suppression.code.as_str() && suppression.range.contains_range(range) { + return true; + } + } + false } } @@ -457,9 +493,12 @@ mod tests { use ruff_text_size::{TextRange, TextSize}; use similar::DiffableStr; - use crate::suppression::{ - InvalidSuppression, ParseError, Suppression, SuppressionAction, SuppressionComment, - SuppressionParser, Suppressions, + use crate::{ + settings::LinterSettings, + suppression::{ + InvalidSuppression, ParseError, Suppression, SuppressionAction, SuppressionComment, + SuppressionParser, Suppressions, + }, }; #[test] @@ -1376,7 +1415,11 @@ def bar(): /// Parse all suppressions and errors in a module for testing fn debug(source: &'_ str) -> DebugSuppressions<'_> { let parsed = parse(source, ParseOptions::from(Mode::Module)).unwrap(); - let suppressions = Suppressions::from_tokens(source, parsed.tokens()); + let suppressions = Suppressions::from_tokens( + &LinterSettings::default().with_preview_mode(), + source, + parsed.tokens(), + ); DebugSuppressions { source, suppressions, diff --git a/crates/ruff_linter/src/test.rs b/crates/ruff_linter/src/test.rs index 67a6728404..344c921890 100644 --- a/crates/ruff_linter/src/test.rs +++ b/crates/ruff_linter/src/test.rs @@ -32,6 +32,7 @@ use crate::packaging::detect_package_root; use crate::settings::types::UnsafeFixes; use crate::settings::{LinterSettings, flags}; use crate::source_kind::SourceKind; +use crate::suppression::Suppressions; use crate::{Applicability, FixAvailability}; use crate::{Locator, directives}; @@ -234,6 +235,7 @@ pub(crate) fn test_contents<'a>( &locator, &indexer, ); + let suppressions = Suppressions::from_tokens(settings, locator.contents(), parsed.tokens()); let messages = check_path( path, path.parent() @@ -249,6 +251,7 @@ pub(crate) fn test_contents<'a>( source_type, &parsed, target_version, + &suppressions, ); let source_has_errors = parsed.has_invalid_syntax(); @@ -299,6 +302,8 @@ pub(crate) fn test_contents<'a>( &indexer, ); + let suppressions = + Suppressions::from_tokens(settings, locator.contents(), parsed.tokens()); let fixed_messages = check_path( path, None, @@ -312,6 +317,7 @@ pub(crate) fn test_contents<'a>( source_type, &parsed, target_version, + &suppressions, ); if parsed.has_invalid_syntax() && !source_has_errors { diff --git a/crates/ruff_server/src/lint.rs b/crates/ruff_server/src/lint.rs index c9d0d76bec..db3f9ce4d8 100644 --- a/crates/ruff_server/src/lint.rs +++ b/crates/ruff_server/src/lint.rs @@ -20,6 +20,7 @@ use ruff_linter::{ packaging::detect_package_root, settings::flags, source_kind::SourceKind, + suppression::Suppressions, }; use ruff_notebook::Notebook; use ruff_python_codegen::Stylist; @@ -118,6 +119,10 @@ pub(crate) fn check( // Extract the `# noqa` and `# isort: skip` directives from the source. let directives = extract_directives(parsed.tokens(), Flags::all(), &locator, &indexer); + // Parse range suppression comments + let suppressions = + Suppressions::from_tokens(&settings.linter, locator.contents(), parsed.tokens()); + // Generate checks. let diagnostics = check_path( &document_path, @@ -132,6 +137,7 @@ pub(crate) fn check( source_type, &parsed, target_version, + &suppressions, ); let noqa_edits = generate_noqa_edits( @@ -142,6 +148,7 @@ pub(crate) fn check( &settings.linter.external, &directives.noqa_line_for, stylist.line_ending(), + &suppressions, ); let mut diagnostics_map = DiagnosticsMap::default(); diff --git a/crates/ruff_wasm/src/lib.rs b/crates/ruff_wasm/src/lib.rs index 8c18111d16..6dd49a15bf 100644 --- a/crates/ruff_wasm/src/lib.rs +++ b/crates/ruff_wasm/src/lib.rs @@ -2,6 +2,7 @@ use std::path::Path; use js_sys::Error; use ruff_linter::settings::types::PythonVersion; +use ruff_linter::suppression::Suppressions; use serde::{Deserialize, Serialize}; use wasm_bindgen::prelude::*; @@ -212,6 +213,9 @@ impl Workspace { &indexer, ); + let suppressions = + Suppressions::from_tokens(&self.settings.linter, locator.contents(), parsed.tokens()); + // Generate checks. let diagnostics = check_path( Path::new(""), @@ -226,6 +230,7 @@ impl Workspace { source_type, &parsed, target_version, + &suppressions, ); let source_code = locator.to_source_code(); From dc2f0a86fd9c4f256a6809370e29bfe2631ebd8d Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Tue, 9 Dec 2025 11:12:35 +0100 Subject: [PATCH 55/65] Include more details in Tokens 'offset is inside token' panic message (#21860) --- crates/ruff_python_ast/src/token/tokens.rs | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/crates/ruff_python_ast/src/token/tokens.rs b/crates/ruff_python_ast/src/token/tokens.rs index edc7e27463..7ca096d9b0 100644 --- a/crates/ruff_python_ast/src/token/tokens.rs +++ b/crates/ruff_python_ast/src/token/tokens.rs @@ -154,9 +154,7 @@ impl Tokens { // the tokens which is valid as well. assert!( offset >= last.end(), - "Offset {:?} is inside a token range {:?}", - offset, - last.range() + "Offset {offset:?} is inside token `{last:?}`", ); } before @@ -181,9 +179,7 @@ impl Tokens { // the tokens which is valid as well. assert!( offset <= first.start(), - "Offset {:?} is inside a token range {:?}", - offset, - first.range() + "Offset {offset:?} is inside token `{first:?}`", ); } @@ -391,7 +387,7 @@ mod tests { } #[test] - #[should_panic(expected = "Offset 5 is inside a token range 4..7")] + #[should_panic(expected = "Offset 5 is inside token `Name 4..7`")] fn tokens_after_offset_inside_token() { let tokens = new_tokens(TEST_CASE_WITH_GAP.into_iter()); tokens.after(TextSize::new(5)); @@ -453,7 +449,7 @@ mod tests { } #[test] - #[should_panic(expected = "Offset 5 is inside a token range 4..7")] + #[should_panic(expected = "Offset 5 is inside token `Name 4..7`")] fn tokens_before_offset_inside_token() { let tokens = new_tokens(TEST_CASE_WITH_GAP.into_iter()); tokens.before(TextSize::new(5)); @@ -505,14 +501,14 @@ mod tests { } #[test] - #[should_panic(expected = "Offset 5 is inside a token range 4..7")] + #[should_panic(expected = "Offset 5 is inside token `Name 4..7`")] fn tokens_in_range_start_offset_inside_token() { let tokens = new_tokens(TEST_CASE_WITH_GAP.into_iter()); tokens.in_range(TextRange::new(5.into(), 10.into())); } #[test] - #[should_panic(expected = "Offset 6 is inside a token range 4..7")] + #[should_panic(expected = "Offset 6 is inside token `Name 4..7`")] fn tokens_in_range_end_offset_inside_token() { let tokens = new_tokens(TEST_CASE_WITH_GAP.into_iter()); tokens.in_range(TextRange::new(0.into(), 6.into())); From 11901384b407f8a13ea6d20a410c833545f92572 Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Tue, 9 Dec 2025 13:18:30 +0100 Subject: [PATCH 56/65] [ty] Use concise message for LSP clients not supporting related diagnostic information (#21850) --- crates/ty_server/src/capabilities.rs | 23 +++- .../ty_server/src/server/api/diagnostics.rs | 90 +++++++++---- .../src/server/api/requests/diagnostic.rs | 4 +- .../api/requests/workspace_diagnostic.rs | 13 +- crates/ty_server/tests/e2e/main.rs | 10 ++ crates/ty_server/tests/e2e/notebook.rs | 4 +- .../tests/e2e/publish_diagnostics.rs | 51 +++++++ .../e2e__code_actions__code_action.snap | 2 - ...action_attribute_access_on_unimported.snap | 6 +- ...n_existing_import_undefined_decorator.snap | 6 +- ...ode_action_invalid_string_annotations.snap | 3 +- ..._possible_missing_submodule_attribute.snap | 3 +- ...ions__code_action_undefined_decorator.snap | 6 +- ...code_action_undefined_reference_multi.snap | 6 +- ...e2e__notebook__diagnostic_end_of_file.snap | 83 ++---------- ...sage_with_related_information_support.snap | 99 ++++++++++++++ ...e_without_related_information_support.snap | 70 ++++++++++ ...e2e__publish_diagnostics__on_did_open.snap | 31 +---- .../e2e__pull_diagnostics__on_did_open.snap | 31 +---- ...s__workspace_diagnostic_after_changes.snap | 93 +------------ ...s__workspace_diagnostic_initial_state.snap | 124 +----------------- ...agnostic_long_polling_change_response.snap | 31 +---- ...ace_diagnostic_streaming_with_caching.snap | 12 +- ...suspend_change_suspend_first_response.snap | 31 +---- 24 files changed, 361 insertions(+), 471 deletions(-) create mode 100644 crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__message_with_related_information_support.snap create mode 100644 crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__message_without_related_information_support.snap diff --git a/crates/ty_server/src/capabilities.rs b/crates/ty_server/src/capabilities.rs index 23daa43dee..60b5298280 100644 --- a/crates/ty_server/src/capabilities.rs +++ b/crates/ty_server/src/capabilities.rs @@ -36,6 +36,7 @@ bitflags::bitflags! { const WORKSPACE_CONFIGURATION = 1 << 15; const RENAME_DYNAMIC_REGISTRATION = 1 << 16; const COMPLETION_ITEM_LABEL_DETAILS_SUPPORT = 1 << 17; + const DIAGNOSTIC_RELATED_INFORMATION = 1 << 18; } } @@ -163,6 +164,11 @@ impl ResolvedClientCapabilities { self.contains(Self::DIAGNOSTIC_DYNAMIC_REGISTRATION) } + /// Returns `true` if the client has related information support for diagnostics. + pub(crate) const fn supports_diagnostic_related_information(self) -> bool { + self.contains(Self::DIAGNOSTIC_RELATED_INFORMATION) + } + /// Returns `true` if the client supports dynamic registration for rename capabilities. pub(crate) const fn supports_rename_dynamic_registration(self) -> bool { self.contains(Self::RENAME_DYNAMIC_REGISTRATION) @@ -211,15 +217,22 @@ impl ResolvedClientCapabilities { } } - if text_document.is_some_and(|text_document| text_document.diagnostic.is_some()) { + if let Some(diagnostic) = + text_document.and_then(|text_document| text_document.diagnostic.as_ref()) + { flags |= Self::PULL_DIAGNOSTICS; + + if diagnostic.dynamic_registration == Some(true) { + flags |= Self::DIAGNOSTIC_DYNAMIC_REGISTRATION; + } } - if text_document - .and_then(|text_document| text_document.diagnostic.as_ref()?.dynamic_registration) - .unwrap_or_default() + if let Some(publish_diagnostics) = + text_document.and_then(|text_document| text_document.publish_diagnostics.as_ref()) { - flags |= Self::DIAGNOSTIC_DYNAMIC_REGISTRATION; + if publish_diagnostics.related_information == Some(true) { + flags |= Self::DIAGNOSTIC_RELATED_INFORMATION; + } } if text_document diff --git a/crates/ty_server/src/server/api/diagnostics.rs b/crates/ty_server/src/server/api/diagnostics.rs index 3344738cbf..60420b4651 100644 --- a/crates/ty_server/src/server/api/diagnostics.rs +++ b/crates/ty_server/src/server/api/diagnostics.rs @@ -16,6 +16,7 @@ use ruff_db::system::SystemPathBuf; use serde::{Deserialize, Serialize}; use ty_project::{Db as _, ProjectDatabase}; +use crate::capabilities::ResolvedClientCapabilities; use crate::document::{FileRangeExt, ToRangeExt}; use crate::session::DocumentHandle; use crate::session::client::Client; @@ -56,7 +57,11 @@ impl Diagnostics { Self::result_id_from_hash(&self.items) } - pub(super) fn to_lsp_diagnostics(&self, db: &ProjectDatabase) -> LspDiagnostics { + pub(super) fn to_lsp_diagnostics( + &self, + db: &ProjectDatabase, + client_capabilities: ResolvedClientCapabilities, + ) -> LspDiagnostics { if let Some(notebook_document) = db.notebook_document(self.file_or_notebook) { let mut cell_diagnostics: FxHashMap> = FxHashMap::default(); @@ -67,7 +72,8 @@ impl Diagnostics { } for diagnostic in &self.items { - let (url, lsp_diagnostic) = to_lsp_diagnostic(db, diagnostic, self.encoding); + let (url, lsp_diagnostic) = + to_lsp_diagnostic(db, diagnostic, self.encoding, client_capabilities); let Some(url) = url else { tracing::warn!("Unable to find notebook cell"); @@ -85,7 +91,9 @@ impl Diagnostics { LspDiagnostics::TextDocument( self.items .iter() - .map(|diagnostic| to_lsp_diagnostic(db, diagnostic, self.encoding).1) + .map(|diagnostic| { + to_lsp_diagnostic(db, diagnostic, self.encoding, client_capabilities).1 + }) .collect(), ) } @@ -181,7 +189,7 @@ pub(super) fn publish_diagnostics(document: &DocumentHandle, session: &Session, }); }; - match diagnostics.to_lsp_diagnostics(db) { + match diagnostics.to_lsp_diagnostics(db, session.client_capabilities()) { LspDiagnostics::TextDocument(diagnostics) => { publish_diagnostics_notification(document.url().clone(), diagnostics); } @@ -212,6 +220,7 @@ pub(crate) fn publish_settings_diagnostics( } let session_encoding = session.position_encoding(); + let client_capabilities = session.client_capabilities(); let state = session.project_state_mut(&AnySystemPath::System(path)); let db = &state.db; let project = db.project(); @@ -253,7 +262,9 @@ pub(crate) fn publish_settings_diagnostics( // Convert diagnostics to LSP format let lsp_diagnostics = file_diagnostics .into_iter() - .map(|diagnostic| to_lsp_diagnostic(db, &diagnostic, session_encoding).1) + .map(|diagnostic| { + to_lsp_diagnostic(db, &diagnostic, session_encoding, client_capabilities).1 + }) .collect::>(); client.send_notification::(PublishDiagnosticsParams { @@ -292,7 +303,11 @@ pub(super) fn to_lsp_diagnostic( db: &dyn Db, diagnostic: &ruff_db::diagnostic::Diagnostic, encoding: PositionEncoding, + client_capabilities: ResolvedClientCapabilities, ) -> (Option, Diagnostic) { + let supports_related_information = + client_capabilities.supports_diagnostic_related_information(); + let location = diagnostic.primary_span().and_then(|span| { let file = span.expect_ty_file(); span.range()? @@ -330,31 +345,35 @@ pub(super) fn to_lsp_diagnostic( Some(CodeDescription { href }) }); - let mut related_information = Vec::new(); + let related_information = + if supports_related_information { + let mut related_information = Vec::new(); + related_information.extend(diagnostic.secondary_annotations().filter_map( + |annotation| annotation_to_related_information(db, annotation, encoding), + )); - related_information.extend( - diagnostic - .secondary_annotations() - .filter_map(|annotation| annotation_to_related_information(db, annotation, encoding)), - ); + for sub_diagnostic in diagnostic.sub_diagnostics() { + related_information.extend(sub_diagnostic_to_related_information( + db, + sub_diagnostic, + encoding, + )); - for sub_diagnostic in diagnostic.sub_diagnostics() { - related_information.extend(sub_diagnostic_to_related_information( - db, - sub_diagnostic, - encoding, - )); + related_information.extend( + sub_diagnostic + .annotations() + .iter() + .filter(|annotation| !annotation.is_primary()) + .filter_map(|annotation| { + annotation_to_related_information(db, annotation, encoding) + }), + ); + } - related_information.extend( - sub_diagnostic - .annotations() - .iter() - .filter(|annotation| !annotation.is_primary()) - .filter_map(|annotation| { - annotation_to_related_information(db, annotation, encoding) - }), - ); - } + Some(related_information) + } else { + None + }; let data = DiagnosticData::try_from_diagnostic(db, diagnostic, encoding); @@ -367,8 +386,21 @@ pub(super) fn to_lsp_diagnostic( code: Some(NumberOrString::String(diagnostic.id().to_string())), code_description, source: Some(DIAGNOSTIC_NAME.into()), - message: diagnostic.concise_message().to_string(), - related_information: Some(related_information), + message: if supports_related_information { + // Show both the primary and annotation messages if available, + // because we don't create a related information for the primary message. + if let Some(annotation_message) = diagnostic + .primary_annotation() + .and_then(|annotation| annotation.get_message()) + { + format!("{}: {annotation_message}", diagnostic.primary_message()) + } else { + diagnostic.primary_message().to_string() + } + } else { + diagnostic.concise_message().to_string() + }, + related_information, data: serde_json::to_value(data).ok(), }, ) diff --git a/crates/ty_server/src/server/api/requests/diagnostic.rs b/crates/ty_server/src/server/api/requests/diagnostic.rs index ad1b8a4dc0..97f0633c8a 100644 --- a/crates/ty_server/src/server/api/requests/diagnostic.rs +++ b/crates/ty_server/src/server/api/requests/diagnostic.rs @@ -59,7 +59,9 @@ impl BackgroundDocumentRequestHandler for DocumentDiagnosticRequestHandler { result_id: new_id, // SAFETY: Pull diagnostic requests are only called for text documents, not for // notebook documents. - items: diagnostics.to_lsp_diagnostics(db).expect_text_document(), + items: diagnostics + .to_lsp_diagnostics(db, snapshot.resolved_client_capabilities()) + .expect_text_document(), }, }) } diff --git a/crates/ty_server/src/server/api/requests/workspace_diagnostic.rs b/crates/ty_server/src/server/api/requests/workspace_diagnostic.rs index a9f33880e5..4935735ced 100644 --- a/crates/ty_server/src/server/api/requests/workspace_diagnostic.rs +++ b/crates/ty_server/src/server/api/requests/workspace_diagnostic.rs @@ -19,6 +19,7 @@ use serde::{Deserialize, Serialize}; use ty_project::{ProgressReporter, ProjectDatabase}; use crate::PositionEncoding; +use crate::capabilities::ResolvedClientCapabilities; use crate::document::DocumentKey; use crate::server::api::diagnostics::{Diagnostics, to_lsp_diagnostic}; use crate::server::api::traits::{ @@ -318,6 +319,7 @@ struct ResponseWriter<'a> { mode: ReportingMode, index: &'a Index, position_encoding: PositionEncoding, + client_capabilities: ResolvedClientCapabilities, // It's important that we use `AnySystemPath` over `Url` here because // `file_to_url` isn't guaranteed to return the exact same URL as the one provided // by the client. @@ -357,6 +359,7 @@ impl<'a> ResponseWriter<'a> { mode, index, position_encoding, + client_capabilities: snapshot.resolved_client_capabilities(), previous_result_ids, } } @@ -406,7 +409,15 @@ impl<'a> ResponseWriter<'a> { new_id => { let lsp_diagnostics = diagnostics .iter() - .map(|diagnostic| to_lsp_diagnostic(db, diagnostic, self.position_encoding).1) + .map(|diagnostic| { + to_lsp_diagnostic( + db, + diagnostic, + self.position_encoding, + self.client_capabilities, + ) + .1 + }) .collect::>(); WorkspaceDocumentDiagnosticReport::Full(WorkspaceFullDocumentDiagnosticReport { diff --git a/crates/ty_server/tests/e2e/main.rs b/crates/ty_server/tests/e2e/main.rs index 7e380562fa..94557172d0 100644 --- a/crates/ty_server/tests/e2e/main.rs +++ b/crates/ty_server/tests/e2e/main.rs @@ -1103,6 +1103,16 @@ impl TestServerBuilder { self } + pub(crate) fn enable_diagnostic_related_information(mut self, enabled: bool) -> Self { + self.client_capabilities + .text_document + .get_or_insert_default() + .publish_diagnostics + .get_or_insert_default() + .related_information = Some(enabled); + self + } + /// Set custom client capabilities (overrides any previously set capabilities) #[expect(dead_code)] pub(crate) fn with_client_capabilities(mut self, capabilities: ClientCapabilities) -> Self { diff --git a/crates/ty_server/tests/e2e/notebook.rs b/crates/ty_server/tests/e2e/notebook.rs index b8cb10643b..7c7847dfcb 100644 --- a/crates/ty_server/tests/e2e/notebook.rs +++ b/crates/ty_server/tests/e2e/notebook.rs @@ -10,6 +10,7 @@ static FILTERS: &[(&str, &str)] = &[(r#""sortText": "[0-9 ]+""#, r#""sortText": #[test] fn publish_diagnostics_open() -> anyhow::Result<()> { let mut server = TestServerBuilder::new()? + .enable_diagnostic_related_information(true) .build() .wait_until_workspaces_are_initialized(); @@ -219,8 +220,7 @@ fn swap_cells() -> anyhow::Result<()> { "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `a` used when not defined", - "relatedInformation": [] + "message": "Name `a` used when not defined" } ], "vscode-notebook-cell://src/test.ipynb#1": [], diff --git a/crates/ty_server/tests/e2e/publish_diagnostics.rs b/crates/ty_server/tests/e2e/publish_diagnostics.rs index b7f1eaf2d9..64580bc88c 100644 --- a/crates/ty_server/tests/e2e/publish_diagnostics.rs +++ b/crates/ty_server/tests/e2e/publish_diagnostics.rs @@ -30,6 +30,57 @@ def foo() -> str: Ok(()) } +#[test] +fn message_without_related_information_support() -> Result<()> { + let workspace_root = SystemPath::new("src"); + let foo = SystemPath::new("src/foo.py"); + let foo_content = r#" +from typing import assert_type + +assert_type("test", list[str]) +"#; + + let mut server = TestServerBuilder::new()? + .with_workspace(workspace_root, None)? + .with_file(foo, foo_content)? + .enable_pull_diagnostics(false) + .build() + .wait_until_workspaces_are_initialized(); + + server.open_text_document(foo, foo_content, 1); + let diagnostics = server.await_notification::(); + + insta::assert_debug_snapshot!(diagnostics); + + Ok(()) +} + +#[test] +fn message_with_related_information_support() -> Result<()> { + let workspace_root = SystemPath::new("src"); + let foo = SystemPath::new("src/foo.py"); + let foo_content = r#" +from typing import assert_type + +assert_type("test", list[str]) +"#; + + let mut server = TestServerBuilder::new()? + .with_workspace(workspace_root, None)? + .with_file(foo, foo_content)? + .enable_diagnostic_related_information(true) + .enable_pull_diagnostics(false) + .build() + .wait_until_workspaces_are_initialized(); + + server.open_text_document(foo, foo_content, 1); + let diagnostics = server.await_notification::(); + + insta::assert_debug_snapshot!(diagnostics); + + Ok(()) +} + #[test] fn on_did_change_watched_files() -> Result<()> { let workspace_root = SystemPath::new("src"); diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action.snap b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action.snap index ae0da5c3ad..af59d0f038 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action.snap @@ -25,7 +25,6 @@ expression: code_actions }, "source": "ty", "message": "Unused `ty: ignore` directive", - "relatedInformation": [], "tags": [ 1 ] @@ -74,7 +73,6 @@ expression: code_actions }, "source": "ty", "message": "Unused `ty: ignore` directive", - "relatedInformation": [], "tags": [ 1 ] diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_attribute_access_on_unimported.snap b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_attribute_access_on_unimported.snap index 3026696d8e..78da8d45f7 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_attribute_access_on_unimported.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_attribute_access_on_unimported.snap @@ -24,8 +24,7 @@ expression: code_actions "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `typing` used when not defined", - "relatedInformation": [] + "message": "Name `typing` used when not defined" } ], "edit": { @@ -70,8 +69,7 @@ expression: code_actions "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `typing` used when not defined", - "relatedInformation": [] + "message": "Name `typing` used when not defined" } ], "edit": { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_existing_import_undefined_decorator.snap b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_existing_import_undefined_decorator.snap index fd022ed8b2..f5e5a4f565 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_existing_import_undefined_decorator.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_existing_import_undefined_decorator.snap @@ -24,8 +24,7 @@ expression: code_actions "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `deprecated` used when not defined", - "relatedInformation": [] + "message": "Name `deprecated` used when not defined" } ], "edit": { @@ -70,8 +69,7 @@ expression: code_actions "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `deprecated` used when not defined", - "relatedInformation": [] + "message": "Name `deprecated` used when not defined" } ], "edit": { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_invalid_string_annotations.snap b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_invalid_string_annotations.snap index 07ae5cb675..6e5e2f3edc 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_invalid_string_annotations.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_invalid_string_annotations.snap @@ -24,8 +24,7 @@ expression: code_actions "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `foobar` used when not defined", - "relatedInformation": [] + "message": "Name `foobar` used when not defined" } ], "edit": { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_possible_missing_submodule_attribute.snap b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_possible_missing_submodule_attribute.snap index fe723d2fcc..5ab3b0dc23 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_possible_missing_submodule_attribute.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_possible_missing_submodule_attribute.snap @@ -24,8 +24,7 @@ expression: code_actions "href": "https://ty.dev/rules#possibly-missing-attribute" }, "source": "ty", - "message": "Submodule `parser` may not be available as an attribute on module `html`", - "relatedInformation": [] + "message": "Submodule `parser` may not be available as an attribute on module `html`" } ], "edit": { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_decorator.snap b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_decorator.snap index 44c5c5cd22..6c42ea73da 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_decorator.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_decorator.snap @@ -24,8 +24,7 @@ expression: code_actions "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `deprecated` used when not defined", - "relatedInformation": [] + "message": "Name `deprecated` used when not defined" } ], "edit": { @@ -70,8 +69,7 @@ expression: code_actions "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `deprecated` used when not defined", - "relatedInformation": [] + "message": "Name `deprecated` used when not defined" } ], "edit": { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reference_multi.snap b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reference_multi.snap index a57ac11745..c1ed495ca8 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reference_multi.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reference_multi.snap @@ -24,8 +24,7 @@ expression: code_actions "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `Literal` used when not defined", - "relatedInformation": [] + "message": "Name `Literal` used when not defined" } ], "edit": { @@ -70,8 +69,7 @@ expression: code_actions "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `Literal` used when not defined", - "relatedInformation": [] + "message": "Name `Literal` used when not defined" } ], "edit": { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__diagnostic_end_of_file.snap b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__diagnostic_end_of_file.snap index 3d11a0804c..24b529f89a 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__notebook__diagnostic_end_of_file.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__notebook__diagnostic_end_of_file.snap @@ -22,8 +22,7 @@ expression: diagnostics "href": "https://ty.dev/rules#invalid-return-type" }, "source": "ty", - "message": "Function can implicitly return `None`, which is not assignable to return type `str`", - "relatedInformation": [] + "message": "Function can implicitly return `None`, which is not assignable to return type `str`" } ], "vscode-notebook-cell://test.ipynb#2": [ @@ -41,8 +40,7 @@ expression: diagnostics "severity": 1, "code": "invalid-syntax", "source": "ty", - "message": "Expected `,`, found name", - "relatedInformation": [] + "message": "Expected `,`, found name" }, { "range": { @@ -61,8 +59,7 @@ expression: diagnostics "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `word` used when not defined", - "relatedInformation": [] + "message": "Name `word` used when not defined" }, { "range": { @@ -78,8 +75,7 @@ expression: diagnostics "severity": 1, "code": "invalid-syntax", "source": "ty", - "message": "Expected `,`, found string", - "relatedInformation": [] + "message": "Expected `,`, found string" }, { "range": { @@ -98,41 +94,7 @@ expression: diagnostics "href": "https://ty.dev/rules#invalid-argument-type" }, "source": "ty", - "message": "Argument to function `with_style` is incorrect: Expected `Style`, found `Literal[/", /"]`", - "relatedInformation": [ - { - "location": { - "uri": "vscode-notebook-cell://test.ipynb#1", - "range": { - "start": { - "line": 0, - "character": 4 - }, - "end": { - "line": 0, - "character": 14 - } - } - }, - "message": "Function defined here" - }, - { - "location": { - "uri": "vscode-notebook-cell://test.ipynb#1", - "range": { - "start": { - "line": 0, - "character": 32 - }, - "end": { - "line": 0, - "character": 44 - } - } - }, - "message": "Parameter declared here" - } - ] + "message": "Argument to function `with_style` is incorrect: Expected `Style`, found `Literal[/", /"]`" }, { "range": { @@ -148,8 +110,7 @@ expression: diagnostics "severity": 1, "code": "invalid-syntax", "source": "ty", - "message": "Expected `,`, found name", - "relatedInformation": [] + "message": "Expected `,`, found name" }, { "range": { @@ -168,8 +129,7 @@ expression: diagnostics "href": "https://ty.dev/rules#unresolved-reference" }, "source": "ty", - "message": "Name `underline` used when not defined", - "relatedInformation": [] + "message": "Name `underline` used when not defined" }, { "range": { @@ -188,25 +148,7 @@ expression: diagnostics "href": "https://ty.dev/rules#too-many-positional-arguments" }, "source": "ty", - "message": "Too many positional arguments to function `with_style`: expected 3, got 6", - "relatedInformation": [ - { - "location": { - "uri": "vscode-notebook-cell://test.ipynb#1", - "range": { - "start": { - "line": 0, - "character": 4 - }, - "end": { - "line": 0, - "character": 52 - } - } - }, - "message": "Function signature here" - } - ] + "message": "Too many positional arguments to function `with_style`: expected 3, got 6" }, { "range": { @@ -222,8 +164,7 @@ expression: diagnostics "severity": 1, "code": "invalid-syntax", "source": "ty", - "message": "missing closing quote in string literal", - "relatedInformation": [] + "message": "missing closing quote in string literal" }, { "range": { @@ -239,8 +180,7 @@ expression: diagnostics "severity": 1, "code": "invalid-syntax", "source": "ty", - "message": "Expected `,`, found name", - "relatedInformation": [] + "message": "Expected `,`, found name" }, { "range": { @@ -256,8 +196,7 @@ expression: diagnostics "severity": 1, "code": "invalid-syntax", "source": "ty", - "message": "unexpected EOF while parsing", - "relatedInformation": [] + "message": "unexpected EOF while parsing" } ] } diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__message_with_related_information_support.snap b/crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__message_with_related_information_support.snap new file mode 100644 index 0000000000..7c18c8f93d --- /dev/null +++ b/crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__message_with_related_information_support.snap @@ -0,0 +1,99 @@ +--- +source: crates/ty_server/tests/e2e/publish_diagnostics.rs +expression: diagnostics +--- +PublishDiagnosticsParams { + uri: Url { + scheme: "file", + cannot_be_a_base: false, + username: "", + password: None, + host: None, + port: None, + path: "/src/foo.py", + query: None, + fragment: None, + }, + diagnostics: [ + Diagnostic { + range: Range { + start: Position { + line: 3, + character: 0, + }, + end: Position { + line: 3, + character: 30, + }, + }, + severity: Some( + Error, + ), + code: Some( + String( + "type-assertion-failure", + ), + ), + code_description: Some( + CodeDescription { + href: Url { + scheme: "https", + cannot_be_a_base: false, + username: "", + password: None, + host: Some( + Domain( + "ty.dev", + ), + ), + port: None, + path: "/rules", + query: None, + fragment: Some( + "type-assertion-failure", + ), + }, + }, + ), + source: Some( + "ty", + ), + message: "Argument does not have asserted type `list[str]`", + related_information: Some( + [ + DiagnosticRelatedInformation { + location: Location { + uri: Url { + scheme: "file", + cannot_be_a_base: false, + username: "", + password: None, + host: None, + port: None, + path: "/src/foo.py", + query: None, + fragment: None, + }, + range: Range { + start: Position { + line: 3, + character: 12, + }, + end: Position { + line: 3, + character: 18, + }, + }, + }, + message: "Inferred type is `Literal[/"test/"]`", + }, + ], + ), + tags: None, + data: None, + }, + ], + version: Some( + 1, + ), +} diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__message_without_related_information_support.snap b/crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__message_without_related_information_support.snap new file mode 100644 index 0000000000..d2056ebf20 --- /dev/null +++ b/crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__message_without_related_information_support.snap @@ -0,0 +1,70 @@ +--- +source: crates/ty_server/tests/e2e/publish_diagnostics.rs +expression: diagnostics +--- +PublishDiagnosticsParams { + uri: Url { + scheme: "file", + cannot_be_a_base: false, + username: "", + password: None, + host: None, + port: None, + path: "/src/foo.py", + query: None, + fragment: None, + }, + diagnostics: [ + Diagnostic { + range: Range { + start: Position { + line: 3, + character: 0, + }, + end: Position { + line: 3, + character: 30, + }, + }, + severity: Some( + Error, + ), + code: Some( + String( + "type-assertion-failure", + ), + ), + code_description: Some( + CodeDescription { + href: Url { + scheme: "https", + cannot_be_a_base: false, + username: "", + password: None, + host: Some( + Domain( + "ty.dev", + ), + ), + port: None, + path: "/rules", + query: None, + fragment: Some( + "type-assertion-failure", + ), + }, + }, + ), + source: Some( + "ty", + ), + message: "Type `list[str]` does not match asserted type `Literal[/"test/"]`", + related_information: None, + tags: None, + data: None, + }, + ], + version: Some( + 1, + ), +} diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__on_did_open.snap b/crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__on_did_open.snap index be48dde9dc..63f94e2ae7 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__on_did_open.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__publish_diagnostics__on_did_open.snap @@ -59,36 +59,7 @@ PublishDiagnosticsParams { "ty", ), message: "Return type does not match returned value: expected `str`, found `Literal[42]`", - related_information: Some( - [ - DiagnosticRelatedInformation { - location: Location { - uri: Url { - scheme: "file", - cannot_be_a_base: false, - username: "", - password: None, - host: None, - port: None, - path: "/src/foo.py", - query: None, - fragment: None, - }, - range: Range { - start: Position { - line: 0, - character: 13, - }, - end: Position { - line: 0, - character: 16, - }, - }, - }, - message: "Expected `str` because of return type", - }, - ], - ), + related_information: None, tags: None, data: None, }, diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__on_did_open.snap b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__on_did_open.snap index 12ade6fda2..86cf96fef5 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__on_did_open.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__on_did_open.snap @@ -55,36 +55,7 @@ Report( "ty", ), message: "Return type does not match returned value: expected `str`, found `Literal[42]`", - related_information: Some( - [ - DiagnosticRelatedInformation { - location: Location { - uri: Url { - scheme: "file", - cannot_be_a_base: false, - username: "", - password: None, - host: None, - port: None, - path: "/src/foo.py", - query: None, - fragment: None, - }, - range: Range { - start: Position { - line: 0, - character: 13, - }, - end: Position { - line: 0, - character: 16, - }, - }, - }, - message: "Expected `str` because of return type", - }, - ], - ), + related_information: None, tags: None, data: None, }, diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_after_changes.snap b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_after_changes.snap index 38f03c13e2..02b3f7f831 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_after_changes.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_after_changes.snap @@ -70,36 +70,7 @@ Report( "ty", ), message: "Return type does not match returned value: expected `int`, found `Literal[/"hello/"]`", - related_information: Some( - [ - DiagnosticRelatedInformation { - location: Location { - uri: Url { - scheme: "file", - cannot_be_a_base: false, - username: "", - password: None, - host: None, - port: None, - path: "/src/changed_error.py", - query: None, - fragment: None, - }, - range: Range { - start: Position { - line: 0, - character: 13, - }, - end: Position { - line: 0, - character: 16, - }, - }, - }, - message: "Expected `int` because of return type", - }, - ], - ), + related_information: None, tags: None, data: None, }, @@ -194,36 +165,7 @@ Report( "ty", ), message: "Return type does not match returned value: expected `str`, found `Literal[42]`", - related_information: Some( - [ - DiagnosticRelatedInformation { - location: Location { - uri: Url { - scheme: "file", - cannot_be_a_base: false, - username: "", - password: None, - host: None, - port: None, - path: "/src/modified_same_error.py", - query: None, - fragment: None, - }, - range: Range { - start: Position { - line: 3, - character: 13, - }, - end: Position { - line: 3, - character: 16, - }, - }, - }, - message: "Expected `str` because of return type", - }, - ], - ), + related_information: None, tags: None, data: None, }, @@ -296,36 +238,7 @@ Report( "ty", ), message: "Return type does not match returned value: expected `str`, found `Literal[42]`", - related_information: Some( - [ - DiagnosticRelatedInformation { - location: Location { - uri: Url { - scheme: "file", - cannot_be_a_base: false, - username: "", - password: None, - host: None, - port: None, - path: "/src/new_error.py", - query: None, - fragment: None, - }, - range: Range { - start: Position { - line: 0, - character: 13, - }, - end: Position { - line: 0, - character: 16, - }, - }, - }, - message: "Expected `str` because of return type", - }, - ], - ), + related_information: None, tags: None, data: None, }, diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_initial_state.snap b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_initial_state.snap index 2b3bc9b579..ddd3944928 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_initial_state.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_initial_state.snap @@ -68,36 +68,7 @@ Report( "ty", ), message: "Return type does not match returned value: expected `str`, found `Literal[42]`", - related_information: Some( - [ - DiagnosticRelatedInformation { - location: Location { - uri: Url { - scheme: "file", - cannot_be_a_base: false, - username: "", - password: None, - host: None, - port: None, - path: "/src/changed_error.py", - query: None, - fragment: None, - }, - range: Range { - start: Position { - line: 0, - character: 13, - }, - end: Position { - line: 0, - character: 16, - }, - }, - }, - message: "Expected `str` because of return type", - }, - ], - ), + related_information: None, tags: None, data: None, }, @@ -168,36 +139,7 @@ Report( "ty", ), message: "Return type does not match returned value: expected `str`, found `Literal[42]`", - related_information: Some( - [ - DiagnosticRelatedInformation { - location: Location { - uri: Url { - scheme: "file", - cannot_be_a_base: false, - username: "", - password: None, - host: None, - port: None, - path: "/src/fixed_error.py", - query: None, - fragment: None, - }, - range: Range { - start: Position { - line: 0, - character: 13, - }, - end: Position { - line: 0, - character: 16, - }, - }, - }, - message: "Expected `str` because of return type", - }, - ], - ), + related_information: None, tags: None, data: None, }, @@ -268,36 +210,7 @@ Report( "ty", ), message: "Return type does not match returned value: expected `str`, found `Literal[42]`", - related_information: Some( - [ - DiagnosticRelatedInformation { - location: Location { - uri: Url { - scheme: "file", - cannot_be_a_base: false, - username: "", - password: None, - host: None, - port: None, - path: "/src/modified_same_error.py", - query: None, - fragment: None, - }, - range: Range { - start: Position { - line: 0, - character: 13, - }, - end: Position { - line: 0, - character: 16, - }, - }, - }, - message: "Expected `str` because of return type", - }, - ], - ), + related_information: None, tags: None, data: None, }, @@ -370,36 +283,7 @@ Report( "ty", ), message: "Return type does not match returned value: expected `str`, found `Literal[42]`", - related_information: Some( - [ - DiagnosticRelatedInformation { - location: Location { - uri: Url { - scheme: "file", - cannot_be_a_base: false, - username: "", - password: None, - host: None, - port: None, - path: "/src/unchanged.py", - query: None, - fragment: None, - }, - range: Range { - start: Position { - line: 0, - character: 13, - }, - end: Position { - line: 0, - character: 16, - }, - }, - }, - message: "Expected `str` because of return type", - }, - ], - ), + related_information: None, tags: None, data: None, }, diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_long_polling_change_response.snap b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_long_polling_change_response.snap index e2f12e261c..e1e5223e0d 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_long_polling_change_response.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_long_polling_change_response.snap @@ -70,36 +70,7 @@ Report( "ty", ), message: "Return type does not match returned value: expected `str`, found `Literal[42]`", - related_information: Some( - [ - DiagnosticRelatedInformation { - location: Location { - uri: Url { - scheme: "file", - cannot_be_a_base: false, - username: "", - password: None, - host: None, - port: None, - path: "/src/test.py", - query: None, - fragment: None, - }, - range: Range { - start: Position { - line: 0, - character: 15, - }, - end: Position { - line: 0, - character: 18, - }, - }, - }, - message: "Expected `str` because of return type", - }, - ], - ), + related_information: None, tags: None, data: None, }, diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_streaming_with_caching.snap b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_streaming_with_caching.snap index 90fb910f5e..d6832c5425 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_streaming_with_caching.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_streaming_with_caching.snap @@ -68,9 +68,7 @@ expression: all_items "ty", ), message: "Name `true` used when not defined", - related_information: Some( - [], - ), + related_information: None, tags: None, data: None, }, @@ -143,9 +141,7 @@ expression: all_items "ty", ), message: "Name `true` used when not defined", - related_information: Some( - [], - ), + related_information: None, tags: None, data: None, }, @@ -218,9 +214,7 @@ expression: all_items "ty", ), message: "Name `true` used when not defined", - related_information: Some( - [], - ), + related_information: None, tags: None, data: None, }, diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_suspend_change_suspend_first_response.snap b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_suspend_change_suspend_first_response.snap index 6f38e6bc19..2052485560 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_suspend_change_suspend_first_response.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__pull_diagnostics__workspace_diagnostic_suspend_change_suspend_first_response.snap @@ -70,36 +70,7 @@ Report( "ty", ), message: "Return type does not match returned value: expected `str`, found `Literal[42]`", - related_information: Some( - [ - DiagnosticRelatedInformation { - location: Location { - uri: Url { - scheme: "file", - cannot_be_a_base: false, - username: "", - password: None, - host: None, - port: None, - path: "/src/test.py", - query: None, - fragment: None, - }, - range: Range { - start: Position { - line: 0, - character: 15, - }, - end: Position { - line: 0, - character: 18, - }, - }, - }, - message: "Expected `str` because of return type", - }, - ], - ), + related_information: None, tags: None, data: None, }, From a0b18bc153d511caf9d7a47d861ce741fa592324 Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Tue, 9 Dec 2025 14:08:22 +0100 Subject: [PATCH 57/65] [ty] Fix reveal-type E2E test (#21865) --- crates/ty_ide/src/code_action.rs | 39 +++++++- crates/ty_server/tests/e2e/code_actions.rs | 36 ------- ...ns__code_action_undefined_reveal_type.snap | 98 ------------------- 3 files changed, 38 insertions(+), 135 deletions(-) delete mode 100644 crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reveal_type.snap diff --git a/crates/ty_ide/src/code_action.rs b/crates/ty_ide/src/code_action.rs index 8826dfce06..2b6703afac 100644 --- a/crates/ty_ide/src/code_action.rs +++ b/crates/ty_ide/src/code_action.rs @@ -86,7 +86,10 @@ mod tests { use ruff_diagnostics::Fix; use ruff_text_size::{TextRange, TextSize}; use ty_project::ProjectMetadata; - use ty_python_semantic::{lint::LintMetadata, types::UNRESOLVED_REFERENCE}; + use ty_python_semantic::{ + lint::LintMetadata, + types::{UNDEFINED_REVEAL, UNRESOLVED_REFERENCE}, + }; #[test] fn add_ignore() { @@ -441,6 +444,40 @@ mod tests { "#); } + #[test] + fn undefined_reveal_type() { + let test = CodeActionTest::with_source( + r#" + reveal_type(1) + "#, + ); + + assert_snapshot!(test.code_actions(&UNDEFINED_REVEAL), @r" + info[code-action]: import typing.reveal_type + --> main.py:2:13 + | + 2 | reveal_type(1) + | ^^^^^^^^^^^ + | + help: This is a preferred code action + 1 + from typing import reveal_type + 2 | + 3 | reveal_type(1) + 4 | + + info[code-action]: Ignore 'undefined-reveal' for this line + --> main.py:2:13 + | + 2 | reveal_type(1) + | ^^^^^^^^^^^ + | + 1 | + - reveal_type(1) + 2 + reveal_type(1) # ty:ignore[undefined-reveal] + 3 | + "); + } + pub(super) struct CodeActionTest { pub(super) db: ty_project::TestDb, pub(super) file: File, diff --git a/crates/ty_server/tests/e2e/code_actions.rs b/crates/ty_server/tests/e2e/code_actions.rs index d3d50c5fb9..8d8c1daebe 100644 --- a/crates/ty_server/tests/e2e/code_actions.rs +++ b/crates/ty_server/tests/e2e/code_actions.rs @@ -158,42 +158,6 @@ x: Literal[1] = 1 Ok(()) } -// `Literal` is available from two places so we should suggest two possible imports -#[test] -fn code_action_undefined_reveal_type() -> Result<()> { - let workspace_root = SystemPath::new("src"); - let foo = SystemPath::new("src/foo.py"); - let foo_content = "\ -reveal_type(1) -"; - - let ty_toml = SystemPath::new("ty.toml"); - let ty_toml_content = ""; - - let mut server = TestServerBuilder::new()? - .with_workspace(workspace_root, None)? - .with_file(ty_toml, ty_toml_content)? - .with_file(foo, foo_content)? - .enable_pull_diagnostics(true) - .build() - .wait_until_workspaces_are_initialized(); - - server.open_text_document(foo, foo_content, 1); - - // Wait for diagnostics to be computed. - let diagnostics = server.document_diagnostic_request(foo, None); - let range = full_range(foo_content); - let code_action_params = code_actions_at(&server, diagnostics, foo, range); - - // Get code actions - let code_action_id = server.send_request::(code_action_params); - let code_actions = server.await_response::(&code_action_id); - - insta::assert_json_snapshot!(code_actions); - - Ok(()) -} - // Using an unimported decorator `@deprecated` #[test] fn code_action_undefined_decorator() -> Result<()> { diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reveal_type.snap b/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reveal_type.snap deleted file mode 100644 index aace2bc042..0000000000 --- a/crates/ty_server/tests/e2e/snapshots/e2e__code_actions__code_action_undefined_reveal_type.snap +++ /dev/null @@ -1,98 +0,0 @@ ---- -source: crates/ty_server/tests/e2e/code_actions.rs -expression: code_actions ---- -[ - { - "title": "import typing.reveal_type", - "kind": "quickfix", - "diagnostics": [ - { - "range": { - "start": { - "line": 0, - "character": 0 - }, - "end": { - "line": 0, - "character": 11 - } - }, - "severity": 2, - "code": "undefined-reveal", - "codeDescription": { - "href": "https://ty.dev/rules#undefined-reveal" - }, - "source": "ty", - "message": "`reveal_type` used without importing it", - "relatedInformation": [] - } - ], - "edit": { - "changes": { - "file:///src/foo.py": [ - { - "range": { - "start": { - "line": 0, - "character": 0 - }, - "end": { - "line": 0, - "character": 0 - } - }, - "newText": "from typing import reveal_type\n" - } - ] - } - }, - "isPreferred": true - }, - { - "title": "Ignore 'undefined-reveal' for this line", - "kind": "quickfix", - "diagnostics": [ - { - "range": { - "start": { - "line": 0, - "character": 0 - }, - "end": { - "line": 0, - "character": 11 - } - }, - "severity": 2, - "code": "undefined-reveal", - "codeDescription": { - "href": "https://ty.dev/rules#undefined-reveal" - }, - "source": "ty", - "message": "`reveal_type` used without importing it", - "relatedInformation": [] - } - ], - "edit": { - "changes": { - "file:///src/foo.py": [ - { - "range": { - "start": { - "line": 0, - "character": 14 - }, - "end": { - "line": 0, - "character": 14 - } - }, - "newText": " # ty:ignore[undefined-reveal]" - } - ] - } - }, - "isPreferred": false - } -] From 426125f5c0fcd8db30fdf31eb997e6d01b09211b Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Mon, 8 Dec 2025 12:30:32 -0500 Subject: [PATCH 58/65] [ty] Stabilize auto-import While still under development, it's far enough along now that we think it's worth enabling it by default. This should also help give us feedback for how it behaves. This PR adds a "completion settings" grouping similar to inlay hints. We only have an auto-import setting there now, but I expect we'll add more options to configure completion behavior in the future. Closes astral-sh/ty#1765 --- crates/ty_ide/src/completion.rs | 22 ++++- .../src/server/api/requests/completion.rs | 8 +- crates/ty_server/src/session/options.rs | 43 +++++++--- crates/ty_server/src/session/settings.rs | 12 +-- crates/ty_server/tests/e2e/completions.rs | 82 +++++++++++++++++++ crates/ty_server/tests/e2e/main.rs | 33 +++++++- crates/ty_server/tests/e2e/notebook.rs | 33 ++------ .../e2e__commands__debug_command.snap | 4 +- 8 files changed, 183 insertions(+), 54 deletions(-) create mode 100644 crates/ty_server/tests/e2e/completions.rs diff --git a/crates/ty_ide/src/completion.rs b/crates/ty_ide/src/completion.rs index 3fc0f95235..a5e342b247 100644 --- a/crates/ty_ide/src/completion.rs +++ b/crates/ty_ide/src/completion.rs @@ -380,11 +380,22 @@ pub enum CompletionKind { TypeParameter, } -#[derive(Clone, Debug, Default)] +#[derive(Clone, Debug)] pub struct CompletionSettings { pub auto_import: bool, } +// N.B. It's important for the defaults here to match the defaults +// established by `CompletionOptions::into_settings`. This is +// because `WorkspaceSettings::default()` uses this definition. +// But `WorkspaceOptions::default().into_settings()` will use the +// `CompletionOptions::into_settings` definition. +impl Default for CompletionSettings { + fn default() -> CompletionSettings { + CompletionSettings { auto_import: true } + } +} + pub fn completion<'db>( db: &'db dyn Db, settings: &CompletionSettings, @@ -6610,7 +6621,14 @@ collabc fn completion_test_builder(&self) -> CompletionTestBuilder { CompletionTestBuilder { cursor_test: self.build(), - settings: CompletionSettings::default(), + settings: CompletionSettings { + // The tests were originally written with auto-import + // disabled, since it was disabled by default. But then + // we enabled it by default. However, we kept the tests + // as written with the assumption that auto-import was + // disabled unless opted into. ---AG + auto_import: false, + }, skip_builtins: false, skip_keywords: false, type_signatures: false, diff --git a/crates/ty_server/src/server/api/requests/completion.rs b/crates/ty_server/src/server/api/requests/completion.rs index 1055f85b56..540546cf49 100644 --- a/crates/ty_server/src/server/api/requests/completion.rs +++ b/crates/ty_server/src/server/api/requests/completion.rs @@ -8,7 +8,7 @@ use lsp_types::{ }; use ruff_source_file::OneIndexed; use ruff_text_size::Ranged; -use ty_ide::{CompletionKind, CompletionSettings, completion}; +use ty_ide::{CompletionKind, completion}; use ty_project::ProjectDatabase; use crate::document::{PositionExt, ToRangeExt}; @@ -56,10 +56,8 @@ impl BackgroundDocumentRequestHandler for CompletionRequestHandler { ) else { return Ok(None); }; - let settings = CompletionSettings { - auto_import: snapshot.global_settings().is_auto_import_enabled(), - }; - let completions = completion(db, &settings, file, offset); + let settings = snapshot.workspace_settings().completions(); + let completions = completion(db, settings, file, offset); if completions.is_empty() { return Ok(None); } diff --git a/crates/ty_server/src/session/options.rs b/crates/ty_server/src/session/options.rs index 982dccd484..b202270aae 100644 --- a/crates/ty_server/src/session/options.rs +++ b/crates/ty_server/src/session/options.rs @@ -8,7 +8,7 @@ use serde::{Deserialize, Serialize}; use serde_json::Value; use ty_combine::Combine; -use ty_ide::InlayHintSettings; +use ty_ide::{CompletionSettings, InlayHintSettings}; use ty_project::metadata::Options as TyOptions; use ty_project::metadata::options::ProjectOptionsOverrides; use ty_project::metadata::value::{RangedValue, RelativePathBuf}; @@ -123,8 +123,11 @@ impl ClientOptions { } #[must_use] - pub fn with_experimental_auto_import(mut self, enabled: bool) -> Self { - self.global.experimental.get_or_insert_default().auto_import = Some(enabled); + pub fn with_auto_import(mut self, enabled: bool) -> Self { + self.workspace + .completions + .get_or_insert_default() + .auto_import = Some(enabled); self } @@ -155,7 +158,6 @@ impl GlobalOptions { .experimental .map(|experimental| ExperimentalSettings { rename: experimental.rename.unwrap_or(false), - auto_import: experimental.auto_import.unwrap_or(false), }) .unwrap_or_default(); @@ -178,6 +180,9 @@ pub(crate) struct WorkspaceOptions { /// Options to configure inlay hints. inlay_hints: Option, + /// Options to configure completions. + completions: Option, + /// Information about the currently active Python environment in the VS Code Python extension. /// /// This is relevant only for VS Code and is populated by the ty VS Code extension. @@ -235,6 +240,10 @@ impl WorkspaceOptions { .inlay_hints .map(InlayHintOptions::into_settings) .unwrap_or_default(), + completions: self + .completions + .map(CompletionOptions::into_settings) + .unwrap_or_default(), overrides, } } @@ -256,6 +265,26 @@ impl InlayHintOptions { } } +#[derive(Clone, Combine, Debug, Serialize, Deserialize, Default)] +#[serde(rename_all = "camelCase")] +struct CompletionOptions { + auto_import: Option, +} + +impl CompletionOptions { + // N.B. It's important for the defaults here to + // match the defaults for `CompletionSettings`. + // This is because `WorkspaceSettings::default()` + // uses `CompletionSettings::default()`. But + // `WorkspaceOptions::default().into_settings()` will use this + // definition. + fn into_settings(self) -> CompletionSettings { + CompletionSettings { + auto_import: self.auto_import.unwrap_or(true), + } + } +} + /// Diagnostic mode for the language server. #[derive(Clone, Copy, Debug, Default, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] @@ -300,12 +329,6 @@ impl Combine for DiagnosticMode { pub(crate) struct Experimental { /// Whether to enable the experimental symbol rename feature. pub(crate) rename: Option, - /// Whether to enable the experimental "auto-import" feature. - /// - /// At time of writing (2025-08-29), this feature is still - /// under active development. It may not work right or may be - /// incomplete. - pub(crate) auto_import: Option, } #[derive(Clone, Debug, Serialize, Deserialize, Default)] diff --git a/crates/ty_server/src/session/settings.rs b/crates/ty_server/src/session/settings.rs index 7b3e95f3ed..5e73df0102 100644 --- a/crates/ty_server/src/session/settings.rs +++ b/crates/ty_server/src/session/settings.rs @@ -1,6 +1,6 @@ use super::options::DiagnosticMode; -use ty_ide::InlayHintSettings; +use ty_ide::{CompletionSettings, InlayHintSettings}; use ty_project::metadata::options::ProjectOptionsOverrides; /// Resolved client settings that are shared across all workspaces. @@ -14,10 +14,6 @@ impl GlobalSettings { pub(crate) fn is_rename_enabled(&self) -> bool { self.experimental.rename } - - pub(crate) fn is_auto_import_enabled(&self) -> bool { - self.experimental.auto_import - } } impl GlobalSettings { @@ -29,7 +25,6 @@ impl GlobalSettings { #[derive(Clone, Default, Debug, PartialEq)] pub(crate) struct ExperimentalSettings { pub(super) rename: bool, - pub(super) auto_import: bool, } /// Resolved client settings for a specific workspace. @@ -40,6 +35,7 @@ pub(crate) struct ExperimentalSettings { pub(crate) struct WorkspaceSettings { pub(super) disable_language_services: bool, pub(super) inlay_hints: InlayHintSettings, + pub(super) completions: CompletionSettings, pub(super) overrides: Option, } @@ -55,4 +51,8 @@ impl WorkspaceSettings { pub(crate) fn inlay_hints(&self) -> &InlayHintSettings { &self.inlay_hints } + + pub(crate) fn completions(&self) -> &CompletionSettings { + &self.completions + } } diff --git a/crates/ty_server/tests/e2e/completions.rs b/crates/ty_server/tests/e2e/completions.rs new file mode 100644 index 0000000000..80576100b6 --- /dev/null +++ b/crates/ty_server/tests/e2e/completions.rs @@ -0,0 +1,82 @@ +use anyhow::Result; +use lsp_types::{Position, notification::PublishDiagnostics}; +use ruff_db::system::SystemPath; +use ty_server::ClientOptions; + +use crate::TestServerBuilder; + +/// Tests that auto-import is enabled by default. +#[test] +fn default_auto_import() -> Result<()> { + let workspace_root = SystemPath::new("src"); + let foo = SystemPath::new("src/foo.py"); + let foo_content = "\ +walktr +"; + + let mut server = TestServerBuilder::new()? + .with_initialization_options(ClientOptions::default()) + .with_workspace(workspace_root, None)? + .with_file(foo, foo_content)? + .build() + .wait_until_workspaces_are_initialized(); + + server.open_text_document(foo, foo_content, 1); + let _ = server.await_notification::(); + + let hints = server.completion_request(&server.file_uri(foo), Position::new(0, 6)); + + insta::assert_json_snapshot!(hints, @r#" + [ + { + "label": "walktree (import inspect)", + "kind": 3, + "sortText": "0", + "insertText": "walktree", + "additionalTextEdits": [ + { + "range": { + "start": { + "line": 0, + "character": 0 + }, + "end": { + "line": 0, + "character": 0 + } + }, + "newText": "from inspect import walktree\n" + } + ] + } + ] + "#); + + Ok(()) +} + +/// Tests that disabling auto-import works. +#[test] +fn disable_auto_import() -> Result<()> { + let workspace_root = SystemPath::new("src"); + let foo = SystemPath::new("src/foo.py"); + let foo_content = "\ +walktr +"; + + let mut server = TestServerBuilder::new()? + .with_initialization_options(ClientOptions::default().with_auto_import(false)) + .with_workspace(workspace_root, None)? + .with_file(foo, foo_content)? + .build() + .wait_until_workspaces_are_initialized(); + + server.open_text_document(foo, foo_content, 1); + let _ = server.await_notification::(); + + let hints = server.completion_request(&server.file_uri(foo), Position::new(0, 6)); + + insta::assert_json_snapshot!(hints, @"[]"); + + Ok(()) +} diff --git a/crates/ty_server/tests/e2e/main.rs b/crates/ty_server/tests/e2e/main.rs index 94557172d0..5ef434cef6 100644 --- a/crates/ty_server/tests/e2e/main.rs +++ b/crates/ty_server/tests/e2e/main.rs @@ -29,6 +29,7 @@ mod code_actions; mod commands; +mod completions; mod initialize; mod inlay_hints; mod notebook; @@ -51,11 +52,12 @@ use lsp_types::notification::{ Initialized, Notification, }; use lsp_types::request::{ - DocumentDiagnosticRequest, HoverRequest, Initialize, InlayHintRequest, Request, Shutdown, - WorkspaceConfiguration, WorkspaceDiagnosticRequest, + Completion, DocumentDiagnosticRequest, HoverRequest, Initialize, InlayHintRequest, Request, + Shutdown, WorkspaceConfiguration, WorkspaceDiagnosticRequest, }; use lsp_types::{ - ClientCapabilities, ConfigurationParams, DiagnosticClientCapabilities, + ClientCapabilities, CompletionItem, CompletionParams, CompletionResponse, + CompletionTriggerKind, ConfigurationParams, DiagnosticClientCapabilities, DidChangeTextDocumentParams, DidChangeWatchedFilesClientCapabilities, DidChangeWatchedFilesParams, DidCloseTextDocumentParams, DidOpenTextDocumentParams, DocumentDiagnosticParams, DocumentDiagnosticReportResult, FileEvent, Hover, HoverParams, @@ -872,6 +874,31 @@ impl TestServer { let id = self.send_request::(params); self.await_response::(&id) } + + /// Sends a `textDocument/completion` request for the document at the given URL and position. + pub(crate) fn completion_request( + &mut self, + uri: &Url, + position: Position, + ) -> Vec { + let completions_id = self.send_request::(CompletionParams { + text_document_position: TextDocumentPositionParams { + text_document: TextDocumentIdentifier { uri: uri.clone() }, + position, + }, + work_done_progress_params: lsp_types::WorkDoneProgressParams::default(), + partial_result_params: lsp_types::PartialResultParams::default(), + context: Some(lsp_types::CompletionContext { + trigger_kind: CompletionTriggerKind::TRIGGER_FOR_INCOMPLETE_COMPLETIONS, + trigger_character: None, + }), + }); + match self.await_response::(&completions_id) { + Some(CompletionResponse::Array(array)) => array, + Some(CompletionResponse::List(lsp_types::CompletionList { items, .. })) => items, + None => vec![], + } + } } impl fmt::Debug for TestServer { diff --git a/crates/ty_server/tests/e2e/notebook.rs b/crates/ty_server/tests/e2e/notebook.rs index 7c7847dfcb..c8d5c738db 100644 --- a/crates/ty_server/tests/e2e/notebook.rs +++ b/crates/ty_server/tests/e2e/notebook.rs @@ -1,5 +1,5 @@ use insta::assert_json_snapshot; -use lsp_types::{CompletionResponse, CompletionTriggerKind, NotebookCellKind, Position, Range}; +use lsp_types::{NotebookCellKind, Position, Range}; use ruff_db::system::SystemPath; use ty_server::ClientOptions; @@ -285,7 +285,7 @@ fn auto_import() -> anyhow::Result<()> { let mut server = TestServerBuilder::new()? .with_workspace( SystemPath::new("src"), - Some(ClientOptions::default().with_experimental_auto_import(true)), + Some(ClientOptions::default().with_auto_import(true)), )? .build() .wait_until_workspaces_are_initialized(); @@ -325,7 +325,7 @@ fn auto_import_same_cell() -> anyhow::Result<()> { let mut server = TestServerBuilder::new()? .with_workspace( SystemPath::new("src"), - Some(ClientOptions::default().with_experimental_auto_import(true)), + Some(ClientOptions::default().with_auto_import(true)), )? .build() .wait_until_workspaces_are_initialized(); @@ -360,7 +360,7 @@ fn auto_import_from_future() -> anyhow::Result<()> { let mut server = TestServerBuilder::new()? .with_workspace( SystemPath::new("src"), - Some(ClientOptions::default().with_experimental_auto_import(true)), + Some(ClientOptions::default().with_auto_import(true)), )? .build() .wait_until_workspaces_are_initialized(); @@ -397,7 +397,7 @@ fn auto_import_docstring() -> anyhow::Result<()> { let mut server = TestServerBuilder::new()? .with_workspace( SystemPath::new("src"), - Some(ClientOptions::default().with_experimental_auto_import(true)), + Some(ClientOptions::default().with_auto_import(true)), )? .build() .wait_until_workspaces_are_initialized(); @@ -521,31 +521,10 @@ fn literal_completions( cell: &lsp_types::Url, position: Position, ) -> Vec { - let completions_id = - server.send_request::(lsp_types::CompletionParams { - text_document_position: lsp_types::TextDocumentPositionParams { - text_document: lsp_types::TextDocumentIdentifier { uri: cell.clone() }, - position, - }, - work_done_progress_params: lsp_types::WorkDoneProgressParams::default(), - partial_result_params: lsp_types::PartialResultParams::default(), - context: Some(lsp_types::CompletionContext { - trigger_kind: CompletionTriggerKind::TRIGGER_FOR_INCOMPLETE_COMPLETIONS, - trigger_character: None, - }), - }); - + let mut items = server.completion_request(cell, position); // There are a ton of imports we don't care about in here... // The import bit is that an edit is always restricted to the current cell. That means, // we can't add `Literal` to the `from typing import TYPE_CHECKING` import in cell 1 - let completions = server.await_response::(&completions_id); - let mut items = match completions { - Some(CompletionResponse::Array(array)) => array, - Some(CompletionResponse::List(lsp_types::CompletionList { items, .. })) => items, - None => return vec![], - }; - items.retain(|item| item.label.starts_with("Litera")); - items } diff --git a/crates/ty_server/tests/e2e/snapshots/e2e__commands__debug_command.snap b/crates/ty_server/tests/e2e/snapshots/e2e__commands__debug_command.snap index 0daa6c768a..762b91f71c 100644 --- a/crates/ty_server/tests/e2e/snapshots/e2e__commands__debug_command.snap +++ b/crates/ty_server/tests/e2e/snapshots/e2e__commands__debug_command.snap @@ -10,7 +10,6 @@ Global settings: GlobalSettings { diagnostic_mode: OpenFilesOnly, experimental: ExperimentalSettings { rename: false, - auto_import: false, }, } Open text documents: 0 @@ -22,6 +21,9 @@ Settings: WorkspaceSettings { variable_types: true, call_argument_names: true, }, + completions: CompletionSettings { + auto_import: true, + }, overrides: None, } From c35bf8f441ca2f745be7368f4e819be43c016319 Mon Sep 17 00:00:00 2001 From: Dhruv Manilawala Date: Tue, 9 Dec 2025 20:29:34 +0530 Subject: [PATCH 59/65] [ty] Fix overload filtering to prefer more "precise" match (#21859) ## Summary fixes: https://github.com/astral-sh/ty/issues/1809 I took this chance to add some debug level tracing logs for overload call evaluation similar to Doug's implementation in `constraints.rs`. ## Test Plan - Add new mdtests - Tested it against `sqlalchemy.select` in pyx which results in the correct overload being matched --- .../resources/mdtest/call/overloads.md | 75 +++++++++++++++- .../src/types/call/arguments.rs | 2 +- .../ty_python_semantic/src/types/call/bind.rs | 89 +++++++++++++++++++ 3 files changed, 164 insertions(+), 2 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/call/overloads.md b/crates/ty_python_semantic/resources/mdtest/call/overloads.md index e6ef48276a..72672b31ed 100644 --- a/crates/ty_python_semantic/resources/mdtest/call/overloads.md +++ b/crates/ty_python_semantic/resources/mdtest/call/overloads.md @@ -925,7 +925,7 @@ def _(t: tuple[int, str] | tuple[int, str, int]) -> None: f(*t) # error: [no-matching-overload] ``` -## Filtering based on variaidic arguments +## Filtering based on variadic arguments This is step 4 of the overload call evaluation algorithm which specifies that: @@ -1469,6 +1469,79 @@ def _(arg: list[Any]): reveal_type(f4(*arg)) # revealed: Unknown ``` +### Varidic argument with generics + +`overloaded.pyi`: + +```pyi +from typing import Any, TypeVar, overload + +T1 = TypeVar("T1") +T2 = TypeVar("T2") +T3 = TypeVar("T3") + +@overload +def f1(x: T1, /) -> tuple[T1]: ... +@overload +def f1(x1: T1, x2: T2, /) -> tuple[T1, T2]: ... +@overload +def f1(x1: T1, x2: T2, x3: T3, /) -> tuple[T1, T2, T3]: ... +@overload +def f1(*args: Any) -> tuple[Any, ...]: ... + +@overload +def f2(x1: T1) -> tuple[T1]: ... +@overload +def f2(x1: T1, x2: T2) -> tuple[T1, T2]: ... +@overload +def f2(*args: Any, **kwargs: Any) -> tuple[Any, ...]: ... + +@overload +def f3(x: T1) -> tuple[T1]: ... +@overload +def f3(x1: T1, x2: T2) -> tuple[T1, T2]: ... +@overload +def f3(*args: Any) -> tuple[Any, ...]: ... +@overload +def f3(**kwargs: Any) -> dict[str, Any]: ... +``` + +```py +from overloaded import f1, f2, f3 +from typing import Any + +# These calls only match the last overload +reveal_type(f1()) # revealed: tuple[Any, ...] +reveal_type(f1(1, 2, 3, 4)) # revealed: tuple[Any, ...] + +# While these calls match multiple overloads but step 5 filters out all the remaining overloads +# except the most specific one in terms of the number of arguments. +reveal_type(f1(1)) # revealed: tuple[Literal[1]] +reveal_type(f1(1, 2)) # revealed: tuple[Literal[1], Literal[2]] +reveal_type(f1(1, 2, 3)) # revealed: tuple[Literal[1], Literal[2], Literal[3]] + +def _(args1: list[int], args2: list[Any]): + reveal_type(f1(*args1)) # revealed: tuple[Any, ...] + reveal_type(f1(*args2)) # revealed: tuple[Any, ...] + +reveal_type(f2()) # revealed: tuple[Any, ...] +reveal_type(f2(1, 2)) # revealed: tuple[Literal[1], Literal[2]] +# TODO: Should be `tuple[Literal[1], Literal[2]]` +reveal_type(f2(x1=1, x2=2)) # revealed: Unknown +# TODO: Should be `tuple[Literal[2], Literal[1]]` +reveal_type(f2(x2=1, x1=2)) # revealed: Unknown +reveal_type(f2(1, 2, z=3)) # revealed: tuple[Any, ...] + +reveal_type(f3(1, 2)) # revealed: tuple[Literal[1], Literal[2]] +reveal_type(f3(1, 2, 3)) # revealed: tuple[Any, ...] +# TODO: Should be `tuple[Literal[1], Literal[2]]` +reveal_type(f3(x1=1, x2=2)) # revealed: Unknown +reveal_type(f3(z=1)) # revealed: dict[str, Any] + +# error: [no-matching-overload] +reveal_type(f3(1, 2, x=3)) # revealed: Unknown +``` + ### Non-participating fully-static parameter Ref: diff --git a/crates/ty_python_semantic/src/types/call/arguments.rs b/crates/ty_python_semantic/src/types/call/arguments.rs index cc8f377271..f3097bb66d 100644 --- a/crates/ty_python_semantic/src/types/call/arguments.rs +++ b/crates/ty_python_semantic/src/types/call/arguments.rs @@ -228,7 +228,7 @@ impl<'a, 'db> CallArguments<'a, 'db> { if expansion_size > MAX_EXPANSIONS { tracing::debug!( "Skipping argument type expansion as it would exceed the \ - maximum number of expansions ({MAX_EXPANSIONS})" + maximum number of expansions ({MAX_EXPANSIONS})" ); return Some(State::LimitReached(index)); } diff --git a/crates/ty_python_semantic/src/types/call/bind.rs b/crates/ty_python_semantic/src/types/call/bind.rs index 10e9ddfca3..72a4818578 100644 --- a/crates/ty_python_semantic/src/types/call/bind.rs +++ b/crates/ty_python_semantic/src/types/call/bind.rs @@ -2,6 +2,13 @@ //! arguments against the parameters of the callable. Like with //! [signatures][crate::types::signatures], we have to handle the fact that the callable might be a //! union of types, each of which might contain multiple overloads. +//! +//! ### Tracing +//! +//! This module is instrumented with debug-level `tracing` messages. You can set the `TY_LOG` +//! environment variable to see this output when testing locally. `tracing` log messages typically +//! have a `target` field, which is the name of the module the message appears in — in this case, +//! `ty_python_semantic::types::call::bind`. use std::borrow::Cow; use std::collections::HashSet; @@ -1582,6 +1589,13 @@ impl<'db> CallableBinding<'db> { // before checking. let argument_types = argument_types.with_self(self.bound_type); + tracing::debug!( + target: "ty_python_semantic::types::call::bind", + matching_overload_index = ?self.matching_overload_index(), + signature = %self.signature_type.display(db), + "after step 1", + ); + // Step 1: Check the result of the arity check which is done by `match_parameters` let matching_overload_indexes = match self.matching_overload_index() { MatchingOverloadIndex::None => { @@ -1612,6 +1626,13 @@ impl<'db> CallableBinding<'db> { overload.check_types(db, argument_types.as_ref(), call_expression_tcx); } + tracing::debug!( + target: "ty_python_semantic::types::call::bind", + matching_overload_index = ?self.matching_overload_index(), + signature = %self.signature_type.display(db), + "after step 2", + ); + match self.matching_overload_index() { MatchingOverloadIndex::None => { // If all overloads result in errors, proceed to step 3. @@ -1624,6 +1645,13 @@ impl<'db> CallableBinding<'db> { // If two or more candidate overloads remain, proceed to step 4. self.filter_overloads_containing_variadic(&indexes); + tracing::debug!( + target: "ty_python_semantic::types::call::bind", + matching_overload_index = ?self.matching_overload_index(), + signature = %self.signature_type.display(db), + "after step 4", + ); + match self.matching_overload_index() { MatchingOverloadIndex::None => { // This shouldn't be possible because step 4 can only filter out overloads @@ -1642,6 +1670,13 @@ impl<'db> CallableBinding<'db> { argument_types.as_ref(), &indexes, ); + + tracing::debug!( + target: "ty_python_semantic::types::call::bind", + matching_overload_index = ?self.matching_overload_index(), + signature = %self.signature_type.display(db), + "after step 5", + ); } } @@ -1744,12 +1779,26 @@ impl<'db> CallableBinding<'db> { overload.match_parameters(db, expanded_arguments, &mut argument_forms); } + tracing::debug!( + target: "ty_python_semantic::types::call::bind", + matching_overload_index = ?self.matching_overload_index(), + signature = %self.signature_type.display(db), + "after step 1", + ); + merged_argument_forms.merge(&argument_forms); for (_, overload) in self.matching_overloads_mut() { overload.check_types(db, expanded_arguments, call_expression_tcx); } + tracing::debug!( + target: "ty_python_semantic::types::call::bind", + matching_overload_index = ?self.matching_overload_index(), + signature = %self.signature_type.display(db), + "after step 2", + ); + let return_type = match self.matching_overload_index() { MatchingOverloadIndex::None => None, MatchingOverloadIndex::Single(index) => { @@ -1758,6 +1807,13 @@ impl<'db> CallableBinding<'db> { MatchingOverloadIndex::Multiple(matching_overload_indexes) => { self.filter_overloads_containing_variadic(&matching_overload_indexes); + tracing::debug!( + target: "ty_python_semantic::types::call::bind", + matching_overload_index = ?self.matching_overload_index(), + signature = %self.signature_type.display(db), + "after step 4", + ); + match self.matching_overload_index() { MatchingOverloadIndex::None => { tracing::debug!( @@ -1772,6 +1828,14 @@ impl<'db> CallableBinding<'db> { expanded_arguments, &indexes, ); + + tracing::debug!( + target: "ty_python_semantic::types::call::bind", + matching_overload_index = ?self.matching_overload_index(), + signature = %self.signature_type.display(db), + "after step 5", + ); + Some(self.return_type()) } } @@ -1926,12 +1990,37 @@ impl<'db> CallableBinding<'db> { .take(max_parameter_count) .collect::>(); + // The following loop is trying to construct a tuple of argument types that correspond to + // the participating parameter indexes. Considering the following example: + // + // ```python + // @overload + // def f(x: Literal[1], y: Literal[2]) -> tuple[int, int]: ... + // @overload + // def f(*args: Any) -> tuple[Any, ...]: ... + // + // f(1, 2) + // ``` + // + // Here, only the first parameter participates in the filtering process because only one + // overload has the second parameter. So, while going through the argument types, the + // second argument needs to be skipped but for the second overload both arguments map to + // the first parameter and that parameter is considered for the filtering process. This + // flag is to handle that special case of many-to-one mapping from arguments to parameters. + let mut variadic_parameter_handled = false; + for (argument_index, argument_type) in arguments.iter_types().enumerate() { + if variadic_parameter_handled { + continue; + } for overload_index in matching_overload_indexes { let overload = &self.overloads[*overload_index]; for (parameter_index, variadic_argument_type) in overload.argument_matches[argument_index].iter() { + if overload.signature.parameters()[parameter_index].is_variadic() { + variadic_parameter_handled = true; + } if !participating_parameter_indexes.contains(¶meter_index) { continue; } From aea2bc23086e3036ef1820cba2204f9dec586729 Mon Sep 17 00:00:00 2001 From: David Peter Date: Tue, 9 Dec 2025 16:22:59 +0100 Subject: [PATCH 60/65] [ty] Infer type variables within generic unions (#21862) ## Summary This PR allows our generics solver to find a solution for `T` in cases like the following: ```py def extract_t[T](x: P[T] | Q[T]) -> T: raise NotImplementedError reveal_type(extract_t(P[int]())) # revealed: int reveal_type(extract_t(Q[str]())) # revealed: str ``` closes https://github.com/astral-sh/ty/issues/1772 closes https://github.com/astral-sh/ty/issues/1314 ## Ecosystem The impact here looks very good! It took me a long time to figure this out, but the new diagnostics on bokeh are actually true positives. I should have tested with another type-checker immediately, I guess. All other type checkers also emit errors on these `__init__` calls. MRE [here](https://play.ty.dev/5c19d260-65e2-4f70-a75e-1a25780843a2) (no error on main, diagnostic on this branch) A lot of false positives on home-assistant go away for calls to functions like [`async_listen`](https://github.com/home-assistant/core/blob/180053fe9859f2a201ed2c33375db5316b50b7b5/homeassistant/core.py#L1581-L1587) which take a `event_type: EventType[_DataT] | str` parameter. We can now solve for `_DataT` here, which was previously falling back to its default value, and then caused problems because it was used as an argument to an invariant generic class. ## Test Plan New Markdown tests --- .../resources/mdtest/external/sqlalchemy.md | 45 ++---- .../mdtest/generics/legacy/functions.md | 132 ++++++++++++++++++ .../mdtest/generics/pep695/functions.md | 121 ++++++++++++++++ .../ty_python_semantic/src/types/generics.rs | 69 ++++++--- 4 files changed, 321 insertions(+), 46 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md b/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md index 61e6668de1..43fff45058 100644 --- a/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md +++ b/crates/ty_python_semantic/resources/mdtest/external/sqlalchemy.md @@ -107,44 +107,34 @@ We can also specify particular columns to select: ```py stmt = select(User.id, User.name) -# TODO: should be `Select[tuple[int, str]]` -reveal_type(stmt) # revealed: Select[tuple[Unknown, Unknown]] +reveal_type(stmt) # revealed: Select[tuple[int, str]] ids_and_names = session.execute(stmt).all() -# TODO: should be `Sequence[Row[tuple[int, str]]]` -reveal_type(ids_and_names) # revealed: Sequence[Row[tuple[Unknown, Unknown]]] +reveal_type(ids_and_names) # revealed: Sequence[Row[tuple[int, str]]] for row in session.execute(stmt): - # TODO: should be `Row[tuple[int, str]]` - reveal_type(row) # revealed: Row[tuple[Unknown, Unknown]] + reveal_type(row) # revealed: Row[tuple[int, str]] for user_id, name in session.execute(stmt).tuples(): - # TODO: should be `int` - reveal_type(user_id) # revealed: Unknown - # TODO: should be `str` - reveal_type(name) # revealed: Unknown + reveal_type(user_id) # revealed: int + reveal_type(name) # revealed: str result = session.execute(stmt) row = result.one_or_none() assert row is not None (user_id, name) = row._tuple() -# TODO: should be `int` -reveal_type(user_id) # revealed: Unknown -# TODO: should be `str` -reveal_type(name) # revealed: Unknown +reveal_type(user_id) # revealed: int +reveal_type(name) # revealed: str stmt = select(User.id).where(User.name == "Alice") -# TODO: should be `Select[tuple[int]]` -reveal_type(stmt) # revealed: Select[tuple[Unknown]] +reveal_type(stmt) # revealed: Select[tuple[int]] alice_id = session.scalars(stmt).first() -# TODO: should be `int | None` -reveal_type(alice_id) # revealed: Unknown | None +reveal_type(alice_id) # revealed: int | None alice_id = session.scalar(stmt) -# TODO: should be `int | None` -reveal_type(alice_id) # revealed: Unknown | None +reveal_type(alice_id) # revealed: int | None ``` Using the legacy `query` API also works: @@ -166,15 +156,12 @@ And similarly when specifying particular columns: ```py query = session.query(User.id, User.name) -# TODO: should be `RowReturningQuery[tuple[int, str]]` -reveal_type(query) # revealed: RowReturningQuery[tuple[Unknown, Unknown]] +reveal_type(query) # revealed: RowReturningQuery[tuple[int, str]] -# TODO: should be `list[Row[tuple[int, str]]]` -reveal_type(query.all()) # revealed: list[Row[tuple[Unknown, Unknown]]] +reveal_type(query.all()) # revealed: list[Row[tuple[int, str]]] for row in query: - # TODO: should be `Row[tuple[int, str]]` - reveal_type(row) # revealed: Row[tuple[Unknown, Unknown]] + reveal_type(row) # revealed: Row[tuple[int, str]] ``` ## Async API @@ -203,8 +190,6 @@ async def test_async(session: AsyncSession): stmt = select(User.id, User.name) result = await session.execute(stmt) for user_id, name in result.tuples(): - # TODO: should be `int` - reveal_type(user_id) # revealed: Unknown - # TODO: should be `str` - reveal_type(name) # revealed: Unknown + reveal_type(user_id) # revealed: int + reveal_type(name) # revealed: str ``` diff --git a/crates/ty_python_semantic/resources/mdtest/generics/legacy/functions.md b/crates/ty_python_semantic/resources/mdtest/generics/legacy/functions.md index 2fce911026..6e89253bd0 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/legacy/functions.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/legacy/functions.md @@ -347,6 +347,138 @@ reveal_type(tuple_param("a", ("a", 1))) # revealed: tuple[Literal["a"], Literal reveal_type(tuple_param(1, ("a", 1))) # revealed: tuple[Literal["a"], Literal[1]] ``` +When a union parameter contains generic classes like `P[T] | Q[T]`, we can infer the typevar from +the actual argument even for non-final classes. + +```py +from typing import TypeVar, Generic + +T = TypeVar("T") + +class P(Generic[T]): + x: T + +class Q(Generic[T]): + x: T + +def extract_t(x: P[T] | Q[T]) -> T: + raise NotImplementedError + +reveal_type(extract_t(P[int]())) # revealed: int +reveal_type(extract_t(Q[str]())) # revealed: str +``` + +Passing anything else results in an error: + +```py +# error: [invalid-argument-type] +reveal_type(extract_t([1, 2])) # revealed: Unknown +``` + +This also works when different union elements have different typevars: + +```py +S = TypeVar("S") + +def extract_both(x: P[T] | Q[S]) -> tuple[T, S]: + raise NotImplementedError + +reveal_type(extract_both(P[int]())) # revealed: tuple[int, Unknown] +reveal_type(extract_both(Q[str]())) # revealed: tuple[Unknown, str] +``` + +Inference also works when passing subclasses of the generic classes in the union. + +```py +class SubP(P[T]): + pass + +class SubQ(Q[T]): + pass + +reveal_type(extract_t(SubP[int]())) # revealed: int +reveal_type(extract_t(SubQ[str]())) # revealed: str + +reveal_type(extract_both(SubP[int]())) # revealed: tuple[int, Unknown] +reveal_type(extract_both(SubQ[str]())) # revealed: tuple[Unknown, str] +``` + +When a type is a subclass of both `P` and `Q` with different specializations, we cannot infer a +single type for `T` in `extract_t`, because `P` and `Q` are invariant. However, we can still infer +both types in a call to `extract_both`: + +```py +class PandQ(P[int], Q[str]): + pass + +# TODO: Ideally, we would return `Unknown` here. +# error: [invalid-argument-type] +reveal_type(extract_t(PandQ())) # revealed: int | str + +reveal_type(extract_both(PandQ())) # revealed: tuple[int, str] +``` + +When non-generic types are part of the union, we can still infer typevars for the remaining generic +types: + +```py +def extract_optional_t(x: None | P[T]) -> T: + raise NotImplementedError + +reveal_type(extract_optional_t(None)) # revealed: Unknown +reveal_type(extract_optional_t(P[int]())) # revealed: int +``` + +Passing anything else results in an error: + +```py +# error: [invalid-argument-type] +reveal_type(extract_optional_t(Q[str]())) # revealed: Unknown +``` + +If the union contains contains parent and child of a generic class, we ideally pick the union +element that is more precise: + +```py +class Base(Generic[T]): + x: T + +class Sub(Base[T]): ... + +def f(t: Base[T] | Sub[T | None]) -> T: + raise NotImplementedError + +reveal_type(f(Base[int]())) # revealed: int +# TODO: Should ideally be `str` +reveal_type(f(Sub[str | None]())) # revealed: str | None +``` + +If we have a case like the following, where only one of the union elements matches due to the +typevar bound, we do not emit a specialization error: + +```py +from typing import TypeVar + +I_int = TypeVar("I_int", bound=int) +S_str = TypeVar("S_str", bound=str) + +class P(Generic[T]): + value: T + +def f(t: P[I_int] | P[S_str]) -> tuple[I_int, S_str]: + raise NotImplementedError + +reveal_type(f(P[int]())) # revealed: tuple[int, Unknown] +reveal_type(f(P[str]())) # revealed: tuple[Unknown, str] +``` + +However, if we pass something that does not match _any_ union element, we do emit an error: + +```py +# error: [invalid-argument-type] +reveal_type(f(P[bytes]())) # revealed: tuple[Unknown, Unknown] +``` + ## Inferring nested generic function calls We can infer type assignments in nested calls to multiple generic functions. If they use the same diff --git a/crates/ty_python_semantic/resources/mdtest/generics/pep695/functions.md b/crates/ty_python_semantic/resources/mdtest/generics/pep695/functions.md index 8af1b948ee..843bd60d21 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/pep695/functions.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/pep695/functions.md @@ -310,6 +310,127 @@ reveal_type(tuple_param("a", ("a", 1))) # revealed: tuple[Literal["a"], Literal reveal_type(tuple_param(1, ("a", 1))) # revealed: tuple[Literal["a"], Literal[1]] ``` +When a union parameter contains generic classes like `P[T] | Q[T]`, we can infer the typevar from +the actual argument even for non-final classes. + +```py +class P[T]: + x: T # invariant + +class Q[T]: + x: T # invariant + +def extract_t[T](x: P[T] | Q[T]) -> T: + raise NotImplementedError + +reveal_type(extract_t(P[int]())) # revealed: int +reveal_type(extract_t(Q[str]())) # revealed: str +``` + +Passing anything else results in an error: + +```py +# error: [invalid-argument-type] +reveal_type(extract_t([1, 2])) # revealed: Unknown +``` + +This also works when different union elements have different typevars: + +```py +def extract_both[T, S](x: P[T] | Q[S]) -> tuple[T, S]: + raise NotImplementedError + +reveal_type(extract_both(P[int]())) # revealed: tuple[int, Unknown] +reveal_type(extract_both(Q[str]())) # revealed: tuple[Unknown, str] +``` + +Inference also works when passing subclasses of the generic classes in the union. + +```py +class SubP[T](P[T]): + pass + +class SubQ[T](Q[T]): + pass + +reveal_type(extract_t(SubP[int]())) # revealed: int +reveal_type(extract_t(SubQ[str]())) # revealed: str + +reveal_type(extract_both(SubP[int]())) # revealed: tuple[int, Unknown] +reveal_type(extract_both(SubQ[str]())) # revealed: tuple[Unknown, str] +``` + +When a type is a subclass of both `P` and `Q` with different specializations, we cannot infer a +single type for `T` in `extract_t`, because `P` and `Q` are invariant. However, we can still infer +both types in a call to `extract_both`: + +```py +class PandQ(P[int], Q[str]): + pass + +# TODO: Ideally, we would return `Unknown` here. +# error: [invalid-argument-type] +reveal_type(extract_t(PandQ())) # revealed: int | str + +reveal_type(extract_both(PandQ())) # revealed: tuple[int, str] +``` + +When non-generic types are part of the union, we can still infer typevars for the remaining generic +types: + +```py +def extract_optional_t[T](x: None | P[T]) -> T: + raise NotImplementedError + +reveal_type(extract_optional_t(None)) # revealed: Unknown +reveal_type(extract_optional_t(P[int]())) # revealed: int +``` + +Passing anything else results in an error: + +```py +# error: [invalid-argument-type] +reveal_type(extract_optional_t(Q[str]())) # revealed: Unknown +``` + +If the union contains contains parent and child of a generic class, we ideally pick the union +element that is more precise: + +```py +class Base[T]: + x: T + +class Sub[T](Base[T]): ... + +def f[T](t: Base[T] | Sub[T | None]) -> T: + raise NotImplementedError + +reveal_type(f(Base[int]())) # revealed: int +# TODO: Should ideally be `str` +reveal_type(f(Sub[str | None]())) # revealed: str | None +``` + +If we have a case like the following, where only one of the union elements matches due to the +typevar bound, we do not emit a specialization error: + +```py +class P[T]: + value: T + +def f[I: int, S: str](t: P[I] | P[S]) -> tuple[I, S]: + raise NotImplementedError + +reveal_type(f(P[int]())) # revealed: tuple[int, Unknown] +reveal_type(f(P[str]())) # revealed: tuple[Unknown, str] +``` + +However, if we pass something that does not match _any_ union element, we do emit an error: + +```py +# error: [invalid-argument-type] +reveal_type(f(P[bytes]())) # revealed: tuple[Unknown, Unknown] +``` + ## Inferring nested generic function calls We can infer type assignments in nested calls to multiple generic functions. If they use the same diff --git a/crates/ty_python_semantic/src/types/generics.rs b/crates/ty_python_semantic/src/types/generics.rs index 7db5f7e7a2..32488389bb 100644 --- a/crates/ty_python_semantic/src/types/generics.rs +++ b/crates/ty_python_semantic/src/types/generics.rs @@ -1545,35 +1545,72 @@ impl<'db> SpecializationBuilder<'db> { } self.add_type_mapping(*formal_bound_typevar, remaining_actual, polarity, f); } - (Type::Union(formal), _) => { - // Second, if the formal is a union, and precisely one union element is assignable - // from the actual type, then we don't add any type mapping. This handles a case like + (Type::Union(union_formal), _) => { + // Second, if the formal is a union, and the actual type is assignable to precisely + // one union element, then we don't add any type mapping. This handles a case like // // ```py - // def f[T](t: T | None): ... + // def f[T](t: T | None) -> T: ... // - // f(None) + // reveal_type(f(None)) # revealed: Unknown // ``` // // without specializing `T` to `None`. - // - // Otherwise, if precisely one union element _is_ a typevar (not _contains_ a - // typevar), then we add a mapping between that typevar and the actual type. if !actual.is_never() { - let assignable_elements = (formal.elements(self.db).iter()).filter(|ty| { - actual - .when_subtype_of(self.db, **ty, self.inferable) - .is_always_satisfied(self.db) - }); + let assignable_elements = + (union_formal.elements(self.db).iter()).filter(|ty| { + actual + .when_subtype_of(self.db, **ty, self.inferable) + .is_always_satisfied(self.db) + }); if assignable_elements.exactly_one().is_ok() { return Ok(()); } } - let bound_typevars = - (formal.elements(self.db).iter()).filter_map(|ty| ty.as_typevar()); - if let Ok(bound_typevar) = bound_typevars.exactly_one() { + let mut bound_typevars = + (union_formal.elements(self.db).iter()).filter_map(|ty| ty.as_typevar()); + + let first_bound_typevar = bound_typevars.next(); + let has_more_than_one_typevar = bound_typevars.next().is_some(); + + // Otherwise, if precisely one union element _is_ a typevar (not _contains_ a + // typevar), then we add a mapping between that typevar and the actual type. + if let Some(bound_typevar) = first_bound_typevar + && !has_more_than_one_typevar + { self.add_type_mapping(bound_typevar, actual, polarity, f); + return Ok(()); + } + + // TODO: + // Handling more than one bare typevar is something that we can't handle yet. + if has_more_than_one_typevar { + return Ok(()); + } + + // Finally, if there are no bare typevars, we try to infer type mappings by + // checking against each union element. This handles cases like + // ```py + // def f[T](t: P[T] | Q[T]) -> T: ... + // + // reveal_type(f(P[str]())) # revealed: str + // reveal_type(f(Q[int]())) # revealed: int + // ``` + let mut first_error = None; + let mut found_matching_element = false; + for formal_element in union_formal.elements(self.db) { + if !formal_element.is_disjoint_from(self.db, actual) { + let result = self.infer_map_impl(*formal_element, actual, polarity, &mut f); + if let Err(err) = result { + first_error.get_or_insert(err); + } else { + found_matching_element = true; + } + } + } + if !found_matching_element && let Some(error) = first_error { + return Err(error); } } From a9899af98af70fbd200343014b25ed083027685d Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Tue, 9 Dec 2025 10:00:03 -0500 Subject: [PATCH 61/65] [ty] Use default settings in completion tests This makes it so the test and production environments match. Ref https://github.com/astral-sh/ruff/pull/21851#discussion_r2601579316 --- crates/ty_ide/src/completion.rs | 195 +++++++++++++++++++------------- 1 file changed, 114 insertions(+), 81 deletions(-) diff --git a/crates/ty_ide/src/completion.rs b/crates/ty_ide/src/completion.rs index a5e342b247..b03b1930ca 100644 --- a/crates/ty_ide/src/completion.rs +++ b/crates/ty_ide/src/completion.rs @@ -1835,7 +1835,7 @@ x = foobad ); assert_snapshot!( - test.skip_builtins().build().snapshot(), + test.skip_builtins().skip_auto_import().build().snapshot(), @"foo_bar_baz", ); } @@ -1849,7 +1849,7 @@ type ); assert_snapshot!( - test.type_signatures().build().snapshot(), + test.type_signatures().skip_auto_import().build().snapshot(), @r" TypeError :: type :: @@ -2044,7 +2044,10 @@ f ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @"foo"); + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @"foo", + ); } #[test] @@ -2058,7 +2061,7 @@ g ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @"", ); } @@ -2089,7 +2092,10 @@ f ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @"foo"); + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @"foo", + ); } #[test] @@ -2118,7 +2124,9 @@ def foo(): ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @r" + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @r" foo foofoo "); @@ -2168,9 +2176,11 @@ def foo(): ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @r" - foo - foofoo + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @r" + foo + foofoo "); } @@ -2184,9 +2194,11 @@ def foo(): f", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @r" - foo - foofoo + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @r" + foo + foofoo "); } @@ -2202,10 +2214,12 @@ def frob(): ... ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @r" - foo - foofoo - frob + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @r" + foo + foofoo + frob "); } @@ -2221,9 +2235,11 @@ def frob(): ... ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @r" - foo - frob + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @r" + foo + frob "); } @@ -2239,11 +2255,13 @@ def frob(): ... ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @r" - foo - foofoo - foofoofoo - frob + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @r" + foo + foofoo + foofoofoo + frob "); } @@ -2390,7 +2408,10 @@ def frob(): ... ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @"foo"); + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @"foo", + ); } #[test] @@ -2401,7 +2422,10 @@ def frob(): ... ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @"foo"); + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @"foo", + ); } #[test] @@ -2412,7 +2436,10 @@ def frob(): ... ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @"foo"); + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @"foo", + ); } #[test] @@ -2423,7 +2450,10 @@ def frob(): ... ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @"foo"); + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @"foo", + ); } #[test] @@ -2434,7 +2464,10 @@ def frob(): ... ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @"foo"); + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @"foo", + ); } #[test] @@ -2516,10 +2549,13 @@ class Foo: ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @r" + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @r" bar frob - "); + ", + ); } #[test] @@ -2532,7 +2568,10 @@ class Foo: ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @"bar"); + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @"bar", + ); } #[test] @@ -3149,7 +3188,7 @@ bar(o ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @r" foo okay @@ -3170,7 +3209,7 @@ bar(o ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @r" foo okay @@ -3189,7 +3228,7 @@ foo(b ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @r" bar barbaz @@ -3209,7 +3248,7 @@ foo(bar=1, b ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @r" baz " @@ -3229,7 +3268,7 @@ abc(o ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @r" okay " @@ -3247,7 +3286,7 @@ abc(okay=1, ba baz=5 ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @r" bar " @@ -3270,7 +3309,7 @@ bar(o ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @"foo" ); } @@ -3291,7 +3330,7 @@ bar(o ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @r" foo okay @@ -3333,9 +3372,11 @@ class C: ", ); - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @r" - foo - self + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @r" + foo + self "); } @@ -3367,7 +3408,9 @@ class C: // FIXME: Should NOT include `foo` here, since // that is only a method that can be called on // `self`. - assert_snapshot!(builder.skip_keywords().skip_builtins().build().snapshot(), @r" + assert_snapshot!( + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), + @r" foo self "); @@ -3384,7 +3427,7 @@ class ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @"classy_variable_name", ); } @@ -3400,7 +3443,7 @@ print(f\"{some ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @"some_symbol", ); } @@ -3439,7 +3482,7 @@ if sys.platform == \"not-my-current-platform\": // currently make no effort to provide a good IDE experience within sections that // are unreachable assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @"", ); } @@ -3925,7 +3968,7 @@ Fo = float ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @"Fo", ); } @@ -4047,7 +4090,7 @@ except Type: ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @"", ); } @@ -4063,7 +4106,7 @@ def _(): ); assert_snapshot!( - builder.skip_keywords().skip_builtins().build().snapshot(), + builder.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @"", ); } @@ -4597,7 +4640,6 @@ from os. .source("main.py", "Abra") .source("package/__init__.py", "AbraKadabra = 1") .completion_test_builder() - .auto_import() .build() .contains("AbraKadabra"); } @@ -4608,7 +4650,6 @@ from os. .source("main.py", "Kadabra = 1\nKad") .source("package/__init__.py", "AbraKadabra = 1") .completion_test_builder() - .auto_import() .type_signatures() .module_names() .filter(|c| c.name.contains("Kadabra")) @@ -4691,7 +4732,7 @@ from os. ); assert_snapshot!( - test.skip_keywords().skip_builtins().build().snapshot(), + test.skip_keywords().skip_builtins().skip_auto_import().build().snapshot(), @"", ); } @@ -5790,7 +5831,6 @@ def foo(param: s) .source("foo.py", "def long_namea(): ...") .completion_test_builder() .type_signatures() - .auto_import() .module_names() .filter(|c| c.name.contains("long_name")) .build() @@ -5809,6 +5849,7 @@ def foo(param: s) let snapshot = completion_test_builder("from typing import Protocol\nclass Foo(P: ...") .filter(|c| c.name.starts_with('P')) + .skip_auto_import() .build() .snapshot(); @@ -6074,9 +6115,7 @@ from .imp #[test] fn typing_extensions_excluded_from_auto_import() { - let builder = completion_test_builder("deprecated") - .auto_import() - .module_names(); + let builder = completion_test_builder("deprecated").module_names(); assert_snapshot!(builder.build().snapshot(), @"deprecated :: warnings"); } @@ -6099,7 +6138,6 @@ from .imp .source("typing_extensions.py", "deprecated = 1") .source("foo.py", "deprecated") .completion_test_builder() - .auto_import() .module_names(); assert_snapshot!(builder.build().snapshot(), @r" deprecated :: typing_extensions @@ -6124,7 +6162,6 @@ from .imp let builder = CursorTest::builder() .source("foo.pyi", "deprecated") .completion_test_builder() - .auto_import() .module_names(); assert_snapshot!(builder.build().snapshot(), @r" deprecated :: typing_extensions @@ -6163,7 +6200,6 @@ ZQ .source("foo.py", r#"from bar import ZQZQ"#) .source("bar.py", r#"ZQZQ = 1"#) .completion_test_builder() - .auto_import() .module_names() .build() .snapshot(); @@ -6205,7 +6241,6 @@ ZQ .source("foo.py", r#"from bar import ZQZQ as ZQZQ"#) .source("bar.py", r#"ZQZQ = 1"#) .completion_test_builder() - .auto_import() .module_names() .build() .snapshot(); @@ -6233,7 +6268,6 @@ ZQ "#, ) .completion_test_builder() - .auto_import() .module_names() .build() .snapshot(); @@ -6268,7 +6302,6 @@ bar.ZQ "#, ) .completion_test_builder() - .auto_import() .module_names() .build() .snapshot(); @@ -6290,7 +6323,6 @@ Quitter "#, ) .completion_test_builder() - .auto_import() .module_names() .build() .snapshot(); @@ -6322,7 +6354,6 @@ ZQ "#, ) .completion_test_builder() - .auto_import() .module_names() .build() .snapshot(); @@ -6342,7 +6373,6 @@ multiprocess "#, ) .completion_test_builder() - .auto_import() .build() .snapshot(); assert_snapshot!(snapshot, @r" @@ -6383,7 +6413,6 @@ zqzqzq ) .source("zqzqzqzqzq.py", "") .completion_test_builder() - .auto_import() .build() .snapshot(); assert_snapshot!(snapshot, @"zqzqzqzqzq"); @@ -6399,7 +6428,6 @@ collabc "#, ) .completion_test_builder() - .auto_import() .build() .snapshot(); assert_snapshot!(snapshot, @"collections.abc"); @@ -6471,12 +6499,19 @@ collabc &self.cursor_test.db } - /// When enabled, symbols that aren't in scope but available - /// in the environment will be included. + /// When set, symbols that aren't in scope but available + /// in the environment will NOT be included. /// - /// Not enabled by default. - fn auto_import(mut self) -> CompletionTestBuilder { - self.settings.auto_import = true; + /// Auto-import is enabled by default. So one must opt into + /// skipping them with this method if one wants to test + /// completions without auto-import enabled. + /// + /// It's somewhat common to want to skip auto-import + /// completions because they can otherwise inflate the + /// snapshot size quite a bit and obscure what is actually + /// being tested. + fn skip_auto_import(mut self) -> CompletionTestBuilder { + self.settings.auto_import = false; self } @@ -6621,14 +6656,12 @@ collabc fn completion_test_builder(&self) -> CompletionTestBuilder { CompletionTestBuilder { cursor_test: self.build(), - settings: CompletionSettings { - // The tests were originally written with auto-import - // disabled, since it was disabled by default. But then - // we enabled it by default. However, we kept the tests - // as written with the assumption that auto-import was - // disabled unless opted into. ---AG - auto_import: false, - }, + // N.B. We very much want to use the default settings + // here, so that our test environment matches the + // production environment. If a default changes, the + // tests should be fixed to accomodate that change + // as well. ---AG + settings: CompletionSettings::default(), skip_builtins: false, skip_keywords: false, type_signatures: false, From 4e4d01834488cbd1cac47d475f45f714f12b129e Mon Sep 17 00:00:00 2001 From: Amethyst Reese Date: Tue, 9 Dec 2025 08:30:27 -0800 Subject: [PATCH 62/65] New diagnostics for unused range suppressions (#21783) Issue #3711 --- .../test/fixtures/ruff/suppressions.py | 32 ++ crates/ruff_linter/src/checkers/noqa.rs | 13 +- crates/ruff_linter/src/noqa.rs | 2 +- .../src/rules/ruff/rules/unused_noqa.rs | 30 +- ...ules__ruff__tests__range_suppressions.snap | 287 +++++++++++++++++- crates/ruff_linter/src/suppression.rs | 99 +++++- 6 files changed, 446 insertions(+), 17 deletions(-) diff --git a/crates/ruff_linter/resources/test/fixtures/ruff/suppressions.py b/crates/ruff_linter/resources/test/fixtures/ruff/suppressions.py index 7a70c4d548..f8a3c882aa 100644 --- a/crates/ruff_linter/resources/test/fixtures/ruff/suppressions.py +++ b/crates/ruff_linter/resources/test/fixtures/ruff/suppressions.py @@ -54,3 +54,35 @@ def f(): # ruff:disable[E741,F841] I = 1 # noqa: E741,F841 # ruff:enable[E741,F841] + + +def f(): + # TODO: Duplicate codes should be counted as duplicate, not unused + # ruff: disable[F841, F841] + foo = 0 + + +def f(): + # Overlapping range suppressions, one should be marked as used, + # and the other should trigger an unused suppression diagnostic + # ruff: disable[F841] + # ruff: disable[F841] + foo = 0 + + +def f(): + # Multiple codes but only one is used + # ruff: disable[E741, F401, F841] + foo = 0 + + +def f(): + # Multiple codes but only two are used + # ruff: disable[E741, F401, F841] + I = 0 + + +def f(): + # Multiple codes but none are used + # ruff: disable[E741, F401, F841] + print("hello") diff --git a/crates/ruff_linter/src/checkers/noqa.rs b/crates/ruff_linter/src/checkers/noqa.rs index 2602adeeee..f984ef3576 100644 --- a/crates/ruff_linter/src/checkers/noqa.rs +++ b/crates/ruff_linter/src/checkers/noqa.rs @@ -119,6 +119,9 @@ pub(crate) fn check_noqa( } } + // Diagnostics for unused/invalid range suppressions + suppressions.check_suppressions(context, locator); + // Enforce that the noqa directive was actually used (RUF100), unless RUF100 was itself // suppressed. if context.is_rule_enabled(Rule::UnusedNOQA) @@ -140,8 +143,13 @@ pub(crate) fn check_noqa( Directive::All(directive) => { if matches.is_empty() { let edit = delete_comment(directive.range(), locator); - let mut diagnostic = context - .report_diagnostic(UnusedNOQA { codes: None }, directive.range()); + let mut diagnostic = context.report_diagnostic( + UnusedNOQA { + codes: None, + kind: ruff::rules::UnusedNOQAKind::Noqa, + }, + directive.range(), + ); diagnostic.add_primary_tag(ruff_db::diagnostic::DiagnosticTag::Unnecessary); diagnostic.set_fix(Fix::safe_edit(edit)); } @@ -236,6 +244,7 @@ pub(crate) fn check_noqa( .map(|code| (*code).to_string()) .collect(), }), + kind: ruff::rules::UnusedNOQAKind::Noqa, }, directive.range(), ); diff --git a/crates/ruff_linter/src/noqa.rs b/crates/ruff_linter/src/noqa.rs index e8c3ada650..a3b5b6133d 100644 --- a/crates/ruff_linter/src/noqa.rs +++ b/crates/ruff_linter/src/noqa.rs @@ -879,7 +879,7 @@ fn find_noqa_comments<'a>( exemption: &'a FileExemption, directives: &'a NoqaDirectives, noqa_line_for: &NoqaMapping, - suppressions: &Suppressions, + suppressions: &'a Suppressions, ) -> Vec>> { // List of noqa comments, ordered to match up with `messages` let mut comments_by_line: Vec>> = vec![]; diff --git a/crates/ruff_linter/src/rules/ruff/rules/unused_noqa.rs b/crates/ruff_linter/src/rules/ruff/rules/unused_noqa.rs index e4645a5541..d6e4ce94d9 100644 --- a/crates/ruff_linter/src/rules/ruff/rules/unused_noqa.rs +++ b/crates/ruff_linter/src/rules/ruff/rules/unused_noqa.rs @@ -4,7 +4,7 @@ use ruff_macros::{ViolationMetadata, derive_message_formats}; use crate::AlwaysFixableViolation; -#[derive(Debug, PartialEq, Eq)] +#[derive(Debug, PartialEq, Eq, Default)] pub(crate) struct UnusedCodes { pub disabled: Vec, pub duplicated: Vec, @@ -12,6 +12,21 @@ pub(crate) struct UnusedCodes { pub unmatched: Vec, } +#[derive(Debug, PartialEq, Eq)] +pub(crate) enum UnusedNOQAKind { + Noqa, + Suppression, +} + +impl UnusedNOQAKind { + fn as_str(&self) -> &str { + match self { + UnusedNOQAKind::Noqa => "`noqa` directive", + UnusedNOQAKind::Suppression => "suppression", + } + } +} + /// ## What it does /// Checks for `noqa` directives that are no longer applicable. /// @@ -46,6 +61,7 @@ pub(crate) struct UnusedCodes { #[violation_metadata(stable_since = "v0.0.155")] pub(crate) struct UnusedNOQA { pub codes: Option, + pub kind: UnusedNOQAKind, } impl AlwaysFixableViolation for UnusedNOQA { @@ -95,16 +111,20 @@ impl AlwaysFixableViolation for UnusedNOQA { )); } if codes_by_reason.is_empty() { - "Unused `noqa` directive".to_string() + format!("Unused {}", self.kind.as_str()) } else { - format!("Unused `noqa` directive ({})", codes_by_reason.join("; ")) + format!( + "Unused {} ({})", + self.kind.as_str(), + codes_by_reason.join("; ") + ) } } - None => "Unused blanket `noqa` directive".to_string(), + None => format!("Unused blanket {}", self.kind.as_str()), } } fn fix_title(&self) -> String { - "Remove unused `noqa` directive".to_string() + format!("Remove unused {}", self.kind.as_str()) } } diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__range_suppressions.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__range_suppressions.snap index 4e09507482..24a43ade5e 100644 --- a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__range_suppressions.snap +++ b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__range_suppressions.snap @@ -6,8 +6,8 @@ source: crates/ruff_linter/src/rules/ruff/mod.rs +linter.preview = enabled --- Summary --- -Removed: 9 -Added: 1 +Removed: 14 +Added: 11 --- Removed --- E741 Ambiguous variable name: `I` @@ -148,8 +148,136 @@ help: Remove assignment to unused variable `I` note: This is an unsafe fix and may change runtime behavior +F841 [*] Local variable `foo` is assigned to but never used + --> suppressions.py:62:5 + | +60 | # TODO: Duplicate codes should be counted as duplicate, not unused +61 | # ruff: disable[F841, F841] +62 | foo = 0 + | ^^^ + | +help: Remove assignment to unused variable `foo` +59 | def f(): +60 | # TODO: Duplicate codes should be counted as duplicate, not unused +61 | # ruff: disable[F841, F841] + - foo = 0 +62 + pass +63 | +64 | +65 | def f(): +note: This is an unsafe fix and may change runtime behavior + + +F841 [*] Local variable `foo` is assigned to but never used + --> suppressions.py:70:5 + | +68 | # ruff: disable[F841] +69 | # ruff: disable[F841] +70 | foo = 0 + | ^^^ + | +help: Remove assignment to unused variable `foo` +67 | # and the other should trigger an unused suppression diagnostic +68 | # ruff: disable[F841] +69 | # ruff: disable[F841] + - foo = 0 +70 + pass +71 | +72 | +73 | def f(): +note: This is an unsafe fix and may change runtime behavior + + +F841 [*] Local variable `foo` is assigned to but never used + --> suppressions.py:76:5 + | +74 | # Multiple codes but only one is used +75 | # ruff: disable[E741, F401, F841] +76 | foo = 0 + | ^^^ + | +help: Remove assignment to unused variable `foo` +73 | def f(): +74 | # Multiple codes but only one is used +75 | # ruff: disable[E741, F401, F841] + - foo = 0 +76 + pass +77 | +78 | +79 | def f(): +note: This is an unsafe fix and may change runtime behavior + + +E741 Ambiguous variable name: `I` + --> suppressions.py:82:5 + | +80 | # Multiple codes but only two are used +81 | # ruff: disable[E741, F401, F841] +82 | I = 0 + | ^ + | + + +F841 [*] Local variable `I` is assigned to but never used + --> suppressions.py:82:5 + | +80 | # Multiple codes but only two are used +81 | # ruff: disable[E741, F401, F841] +82 | I = 0 + | ^ + | +help: Remove assignment to unused variable `I` +79 | def f(): +80 | # Multiple codes but only two are used +81 | # ruff: disable[E741, F401, F841] + - I = 0 +82 + pass +83 | +84 | +85 | def f(): +note: This is an unsafe fix and may change runtime behavior + + --- Added --- +RUF100 [*] Unused suppression (non-enabled: `E501`) + --> suppressions.py:46:5 + | +44 | # Neither of these are ignored and warnings are +45 | # logged to user +46 | # ruff: disable[E501] + | ^^^^^^^^^^^^^^^^^^^^^ +47 | I = 1 +48 | # ruff: enable[E501] + | +help: Remove unused suppression +43 | def f(): +44 | # Neither of these are ignored and warnings are +45 | # logged to user + - # ruff: disable[E501] +46 | I = 1 +47 | # ruff: enable[E501] +48 | + + +RUF100 [*] Unused suppression (non-enabled: `E501`) + --> suppressions.py:48:5 + | +46 | # ruff: disable[E501] +47 | I = 1 +48 | # ruff: enable[E501] + | ^^^^^^^^^^^^^^^^^^^^ + | +help: Remove unused suppression +45 | # logged to user +46 | # ruff: disable[E501] +47 | I = 1 + - # ruff: enable[E501] +48 | +49 | +50 | def f(): + + RUF100 [*] Unused `noqa` directive (unused: `E741`, `F841`) --> suppressions.py:55:12 | @@ -166,3 +294,158 @@ help: Remove unused `noqa` directive - I = 1 # noqa: E741,F841 55 + I = 1 56 | # ruff:enable[E741,F841] +57 | +58 | + + +RUF100 [*] Unused suppression (unused: `F841`) + --> suppressions.py:61:21 + | +59 | def f(): +60 | # TODO: Duplicate codes should be counted as duplicate, not unused +61 | # ruff: disable[F841, F841] + | ^^^^ +62 | foo = 0 + | +help: Remove unused suppression +58 | +59 | def f(): +60 | # TODO: Duplicate codes should be counted as duplicate, not unused + - # ruff: disable[F841, F841] +61 + # ruff: disable[F841] +62 | foo = 0 +63 | +64 | + + +RUF100 [*] Unused suppression (unused: `F841`) + --> suppressions.py:69:5 + | +67 | # and the other should trigger an unused suppression diagnostic +68 | # ruff: disable[F841] +69 | # ruff: disable[F841] + | ^^^^^^^^^^^^^^^^^^^^^ +70 | foo = 0 + | +help: Remove unused suppression +66 | # Overlapping range suppressions, one should be marked as used, +67 | # and the other should trigger an unused suppression diagnostic +68 | # ruff: disable[F841] + - # ruff: disable[F841] +69 | foo = 0 +70 | +71 | + + +RUF100 [*] Unused suppression (unused: `E741`) + --> suppressions.py:75:21 + | +73 | def f(): +74 | # Multiple codes but only one is used +75 | # ruff: disable[E741, F401, F841] + | ^^^^ +76 | foo = 0 + | +help: Remove unused suppression +72 | +73 | def f(): +74 | # Multiple codes but only one is used + - # ruff: disable[E741, F401, F841] +75 + # ruff: disable[F401, F841] +76 | foo = 0 +77 | +78 | + + +RUF100 [*] Unused suppression (non-enabled: `F401`) + --> suppressions.py:75:27 + | +73 | def f(): +74 | # Multiple codes but only one is used +75 | # ruff: disable[E741, F401, F841] + | ^^^^ +76 | foo = 0 + | +help: Remove unused suppression +72 | +73 | def f(): +74 | # Multiple codes but only one is used + - # ruff: disable[E741, F401, F841] +75 + # ruff: disable[E741, F841] +76 | foo = 0 +77 | +78 | + + +RUF100 [*] Unused suppression (non-enabled: `F401`) + --> suppressions.py:81:27 + | +79 | def f(): +80 | # Multiple codes but only two are used +81 | # ruff: disable[E741, F401, F841] + | ^^^^ +82 | I = 0 + | +help: Remove unused suppression +78 | +79 | def f(): +80 | # Multiple codes but only two are used + - # ruff: disable[E741, F401, F841] +81 + # ruff: disable[E741, F841] +82 | I = 0 +83 | +84 | + + +RUF100 [*] Unused suppression (unused: `E741`) + --> suppressions.py:87:21 + | +85 | def f(): +86 | # Multiple codes but none are used +87 | # ruff: disable[E741, F401, F841] + | ^^^^ +88 | print("hello") + | +help: Remove unused suppression +84 | +85 | def f(): +86 | # Multiple codes but none are used + - # ruff: disable[E741, F401, F841] +87 + # ruff: disable[F401, F841] +88 | print("hello") + + +RUF100 [*] Unused suppression (non-enabled: `F401`) + --> suppressions.py:87:27 + | +85 | def f(): +86 | # Multiple codes but none are used +87 | # ruff: disable[E741, F401, F841] + | ^^^^ +88 | print("hello") + | +help: Remove unused suppression +84 | +85 | def f(): +86 | # Multiple codes but none are used + - # ruff: disable[E741, F401, F841] +87 + # ruff: disable[E741, F841] +88 | print("hello") + + +RUF100 [*] Unused suppression (unused: `F841`) + --> suppressions.py:87:33 + | +85 | def f(): +86 | # Multiple codes but none are used +87 | # ruff: disable[E741, F401, F841] + | ^^^^ +88 | print("hello") + | +help: Remove unused suppression +84 | +85 | def f(): +86 | # Multiple codes but none are used + - # ruff: disable[E741, F401, F841] +87 + # ruff: disable[E741, F401] +88 | print("hello") diff --git a/crates/ruff_linter/src/suppression.rs b/crates/ruff_linter/src/suppression.rs index 3c1a2f57ab..9eb12d1026 100644 --- a/crates/ruff_linter/src/suppression.rs +++ b/crates/ruff_linter/src/suppression.rs @@ -1,8 +1,10 @@ use compact_str::CompactString; use core::fmt; use ruff_db::diagnostic::Diagnostic; +use ruff_diagnostics::{Edit, Fix}; use ruff_python_ast::token::{TokenKind, Tokens}; use ruff_python_ast::whitespace::indentation; +use std::cell::Cell; use std::{error::Error, fmt::Formatter}; use thiserror::Error; @@ -10,10 +12,14 @@ use ruff_python_trivia::Cursor; use ruff_text_size::{Ranged, TextLen, TextRange, TextSize, TextSlice}; use smallvec::{SmallVec, smallvec}; +use crate::Locator; +use crate::checkers::ast::LintContext; +use crate::codes::Rule; +use crate::fix::edits::delete_comment; use crate::preview::is_range_suppressions_enabled; +use crate::rules::ruff::rules::{UnusedCodes, UnusedNOQA, UnusedNOQAKind}; use crate::settings::LinterSettings; -#[allow(unused)] #[derive(Clone, Debug, Eq, PartialEq)] enum SuppressionAction { Disable, @@ -35,7 +41,6 @@ pub(crate) struct SuppressionComment { reason: TextRange, } -#[allow(unused)] impl SuppressionComment { /// Return the suppressed codes as strings fn codes_as_str<'src>(&self, source: &'src str) -> impl Iterator { @@ -52,7 +57,6 @@ pub(crate) struct PendingSuppressionComment<'a> { comment: SuppressionComment, } -#[allow(unused)] impl PendingSuppressionComment<'_> { /// Whether the comment "matches" another comment, based on indentation and suppressed codes /// Expects a "forward search" for matches, ie, will only match if the current comment is a @@ -68,8 +72,7 @@ impl PendingSuppressionComment<'_> { } } -#[allow(unused)] -#[derive(Clone, Debug)] +#[derive(Debug)] pub(crate) struct Suppression { /// The lint code being suppressed code: CompactString, @@ -79,9 +82,11 @@ pub(crate) struct Suppression { /// Any comments associated with the suppression comments: SmallVec<[SuppressionComment; 2]>, + + /// Whether this suppression actually suppressed a diagnostic + used: Cell, } -#[allow(unused)] #[derive(Copy, Clone, Debug)] pub(crate) enum InvalidSuppressionKind { /// Trailing suppression not supported @@ -114,7 +119,6 @@ pub struct Suppressions { errors: Vec, } -#[allow(unused)] impl Suppressions { pub fn from_tokens(settings: &LinterSettings, source: &str, tokens: &Tokens) -> Suppressions { if is_range_suppressions_enabled(settings) { @@ -147,11 +151,90 @@ impl Suppressions { for suppression in &self.valid { if *code == suppression.code.as_str() && suppression.range.contains_range(range) { + suppression.used.set(true); return true; } } false } + + pub(crate) fn check_suppressions(&self, context: &LintContext, locator: &Locator) { + if !context.any_rule_enabled(&[Rule::UnusedNOQA, Rule::InvalidRuleCode]) { + return; + } + + let unused = self + .valid + .iter() + .filter(|suppression| !suppression.used.get()); + + for suppression in unused { + let Ok(rule) = Rule::from_code(&suppression.code) else { + continue; // TODO: invalid code + }; + for comment in &suppression.comments { + let mut range = comment.range; + let edit = if comment.codes.len() == 1 { + delete_comment(comment.range, locator) + } else { + let code_index = comment + .codes + .iter() + .position(|range| locator.slice(range) == suppression.code) + .unwrap(); + range = comment.codes[code_index]; + let code_range = if code_index < (comment.codes.len() - 1) { + TextRange::new( + comment.codes[code_index].start(), + comment.codes[code_index + 1].start(), + ) + } else { + TextRange::new( + comment.codes[code_index - 1].end(), + comment.codes[code_index].end(), + ) + }; + Edit::range_deletion(code_range) + }; + + let codes = if context.is_rule_enabled(rule) { + UnusedCodes { + unmatched: vec![suppression.code.to_string()], + ..Default::default() + } + } else { + UnusedCodes { + disabled: vec![suppression.code.to_string()], + ..Default::default() + } + }; + + let mut diagnostic = context.report_diagnostic( + UnusedNOQA { + codes: Some(codes), + kind: UnusedNOQAKind::Suppression, + }, + range, + ); + diagnostic.set_fix(Fix::safe_edit(edit)); + } + } + + for error in self + .errors + .iter() + .filter(|error| error.kind == ParseErrorKind::MissingCodes) + { + let mut diagnostic = context.report_diagnostic( + UnusedNOQA { + codes: Some(UnusedCodes::default()), + kind: UnusedNOQAKind::Suppression, + }, + error.range, + ); + diagnostic.set_fix(Fix::safe_edit(delete_comment(error.range, locator))); + } + } } #[derive(Default)] @@ -276,6 +359,7 @@ impl<'a> SuppressionsBuilder<'a> { code: code.into(), range: combined_range, comments: smallvec![comment.comment.clone(), other.comment.clone()], + used: false.into(), }); } @@ -292,6 +376,7 @@ impl<'a> SuppressionsBuilder<'a> { code: code.into(), range: implicit_range, comments: smallvec![comment.comment.clone()], + used: false.into(), }); } self.pending.remove(comment_index); From 8727a7b1797bb4a21c0237bd5b36f1e08b213bb4 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Tue, 9 Dec 2025 09:05:18 -0800 Subject: [PATCH 63/65] Fix stack overflow with recursive generic protocols (depth limit) (#21858) ## Summary This fixes https://github.com/astral-sh/ty/issues/1736 where recursive generic protocols with growing specializations caused a stack overflow. The issue occurred with protocols like: ```python class C[T](Protocol): a: 'C[set[T]]' ``` When checking `C[set[int]]` against e.g. `C[Unknown]`, member `a` requires checking `C[set[set[int]]]`, which requires `C[set[set[set[int]]]]`, etc. Each level has different type specializations, so the existing cycle detection (using full types as cache keys) didn't catch the infinite recursion. This fix adds a simple recursion depth limit (64) to the CycleDetector. When the depth exceeds the limit, we return the fallback value (assume compatible) to safely terminate the recursion. This is a bit of a blunt hammer, but it should be broadly effective to prevent stack overflow in any nested-relation case, and it's hard to imagine that non-recursive nested relation comparisons of depth > 64 exist much in the wild. ## Test Plan Added mdtest. --- .../resources/mdtest/protocols.md | 25 +++++++++++ crates/ty_python_semantic/src/types/cyclic.rs | 45 ++++++++++++++++++- 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/crates/ty_python_semantic/resources/mdtest/protocols.md b/crates/ty_python_semantic/resources/mdtest/protocols.md index 28069bd07c..40b180fb35 100644 --- a/crates/ty_python_semantic/resources/mdtest/protocols.md +++ b/crates/ty_python_semantic/resources/mdtest/protocols.md @@ -3010,6 +3010,31 @@ class Bar(Protocol[S]): z: S | Bar[S] ``` +### Recursive generic protocols with growing specializations + +This snippet caused a stack overflow in because the +type parameter grows with each recursive call (`C[set[T]]` leads to `C[set[set[T]]]`, then +`C[set[set[set[T]]]]`, etc.): + +```toml +[environment] +python-version = "3.12" +``` + +```py +from typing import Protocol + +class C[T](Protocol): + a: "C[set[T]]" + +def takes_c(c: C[set[int]]) -> None: ... +def f(c: C[int]) -> None: + # The key thing is that we don't stack overflow while checking this. + # The cycle detection assumes compatibility when it detects potential + # infinite recursion between protocol specializations. + takes_c(c) +``` + ### Recursive legacy generic protocol ```py diff --git a/crates/ty_python_semantic/src/types/cyclic.rs b/crates/ty_python_semantic/src/types/cyclic.rs index 344881303a..6f179b1a72 100644 --- a/crates/ty_python_semantic/src/types/cyclic.rs +++ b/crates/ty_python_semantic/src/types/cyclic.rs @@ -19,7 +19,7 @@ //! of the Rust types implementing protocols also call `visitor.visit`. The best way to avoid this //! is to prefer always calling `visitor.visit` only in the main recursive method on `Type`. -use std::cell::RefCell; +use std::cell::{Cell, RefCell}; use std::cmp::Eq; use std::hash::Hash; use std::marker::PhantomData; @@ -29,6 +29,22 @@ use rustc_hash::FxHashMap; use crate::FxIndexSet; use crate::types::Type; +/// Maximum recursion depth for cycle detection. +/// +/// This is a safety limit to prevent stack overflow when checking recursive generic protocols +/// that create infinitely growing type specializations. For example: +/// +/// ```python +/// class C[T](Protocol): +/// a: 'C[set[T]]' +/// ``` +/// +/// When checking `C[set[int]]` against e.g. `C[Unknown]`, member `a` requires checking +/// `C[set[set[int]]]`, which in turn requires checking `C[set[set[set[int]]]]`, etc. Each level +/// creates a unique cache key, so the standard cycle detection doesn't catch it. The depth limit +/// ensures we bail out before hitting a stack overflow. +const MAX_RECURSION_DEPTH: u32 = 64; + pub(crate) type TypeTransformer<'db, Tag> = CycleDetector, Type<'db>>; impl Default for TypeTransformer<'_, Tag> { @@ -58,6 +74,10 @@ pub struct CycleDetector { /// sort-of defeat the point of a cache if we did!) cache: RefCell>, + /// Current recursion depth. Used to prevent stack overflow if recursive generic types create + /// infinitely growing type specializations that don't trigger exact-match cycle detection. + depth: Cell, + fallback: R, _tag: PhantomData, @@ -68,6 +88,7 @@ impl CycleDetector { CycleDetector { seen: RefCell::new(FxIndexSet::default()), cache: RefCell::new(FxHashMap::default()), + depth: Cell::new(0), fallback, _tag: PhantomData, } @@ -83,7 +104,18 @@ impl CycleDetector { return self.fallback.clone(); } + // Check depth limit to prevent stack overflow from recursive generic types + // with growing specializations (e.g., C[set[T]] -> C[set[set[T]]] -> ...) + let current_depth = self.depth.get(); + if current_depth >= MAX_RECURSION_DEPTH { + self.seen.borrow_mut().pop(); + return self.fallback.clone(); + } + self.depth.set(current_depth + 1); + let ret = func(); + + self.depth.set(current_depth); self.seen.borrow_mut().pop(); self.cache.borrow_mut().insert(item, ret.clone()); @@ -100,7 +132,18 @@ impl CycleDetector { return Some(self.fallback.clone()); } + // Check depth limit to prevent stack overflow from recursive generic protocols + // with growing specializations (e.g., C[set[T]] -> C[set[set[T]]] -> ...) + let current_depth = self.depth.get(); + if current_depth >= MAX_RECURSION_DEPTH { + self.seen.borrow_mut().pop(); + return Some(self.fallback.clone()); + } + self.depth.set(current_depth + 1); + let ret = func()?; + + self.depth.set(current_depth); self.seen.borrow_mut().pop(); self.cache.borrow_mut().insert(item, ret.clone()); From 9490fbf1e1cd2a94835069e1867217f5e62d6b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Riegel?= <96702577+LoicRiegel@users.noreply.github.com> Date: Tue, 9 Dec 2025 19:49:55 +0100 Subject: [PATCH 64/65] [`pylint`] Detect subclasses of builtin exceptions (`PLW0133`) (#21382) ## Summary Closes #17347 Goal is to detect the useless exception statement not just for builtin exceptions but also custom (user defined) ones. ## Test Plan I added test cases in the rule fixture and updated the insta snapshot. Note that I first moved up a test case case which was at the bottom to the correct "violation category". I wasn't sure if I should create new test cases or just insert inside those tests. I know that ideally each test case should test only one thing, but here, duplicating twice 12 test cases seemed very verbose, and actually less maintainable in the future. The drawback is that the diff in the snapshot is hard to review, sorry. But you can see that the snapshot gives 38 diagnostics, which is what we expect. Alternatively, I also created this file for manual testing. ```py # tmp/test_error.py class MyException(Exception): ... class MyBaseException(BaseException): ... class MyValueError(ValueError): ... class MyExceptionCustom(Exception): ... class MyBaseExceptionCustom(BaseException): ... class MyValueErrorCustom(ValueError): ... class MyDeprecationWarning(DeprecationWarning): ... class MyDeprecationWarningCustom(MyDeprecationWarning): ... class MyExceptionGroup(ExceptionGroup): ... class MyExceptionGroupCustom(MyExceptionGroup): ... class MyBaseExceptionGroup(ExceptionGroup): ... class MyBaseExceptionGroupCustom(MyBaseExceptionGroup): ... def foo(): Exception("...") BaseException("...") ValueError("...") RuntimeError("...") DeprecationWarning("...") GeneratorExit("...") SystemExit("...") ExceptionGroup("eg", [ValueError(1), TypeError(2), OSError(3), OSError(4)]) BaseExceptionGroup("eg", [ValueError(1), TypeError(2), OSError(3), OSError(4)]) MyException("...") MyBaseException("...") MyValueError("...") MyExceptionCustom("...") MyBaseExceptionCustom("...") MyValueErrorCustom("...") MyDeprecationWarning("...") MyDeprecationWarningCustom("...") MyExceptionGroup("...") MyExceptionGroupCustom("...") MyBaseExceptionGroup("...") MyBaseExceptionGroupCustom("...") ``` and you can run this to check the PR: ```sh target/debug/ruff check tmp/test_error.py --select PLW0133 --unsafe-fixes --diff --no-cache --isolated --target-version py310 target/debug/ruff check tmp/test_error.py --select PLW0133 --unsafe-fixes --diff --no-cache --isolated --target-version py314 ``` --- .../pylint/useless_exception_statement.py | 79 +- crates/ruff_linter/src/preview.rs | 5 + crates/ruff_linter/src/rules/pylint/mod.rs | 28 +- .../rules/useless_exception_statement.rs | 45 +- ...LW0133_useless_exception_statement.py.snap | 440 +++++----- ...LW0133_useless_exception_statement.py.snap | 751 ++++++++++++++++++ 6 files changed, 1137 insertions(+), 211 deletions(-) create mode 100644 crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__preview__PLW0133_useless_exception_statement.py.snap diff --git a/crates/ruff_linter/resources/test/fixtures/pylint/useless_exception_statement.py b/crates/ruff_linter/resources/test/fixtures/pylint/useless_exception_statement.py index eaff5cd895..a382445e9c 100644 --- a/crates/ruff_linter/resources/test/fixtures/pylint/useless_exception_statement.py +++ b/crates/ruff_linter/resources/test/fixtures/pylint/useless_exception_statement.py @@ -2,15 +2,40 @@ from abc import ABC, abstractmethod from contextlib import suppress +class MyError(Exception): + ... + + +class MySubError(MyError): + ... + + +class MyValueError(ValueError): + ... + + +class MyUserWarning(UserWarning): + ... + + +# Violation test cases with builtin errors: PLW0133 + + # Test case 1: Useless exception statement def func(): AssertionError("This is an assertion error") # PLW0133 + MyError("This is a custom error") # PLW0133 + MySubError("This is a custom error") # PLW0133 + MyValueError("This is a custom value error") # PLW0133 # Test case 2: Useless exception statement in try-except block def func(): try: Exception("This is an exception") # PLW0133 + MyError("This is an exception") # PLW0133 + MySubError("This is an exception") # PLW0133 + MyValueError("This is an exception") # PLW0133 except Exception as err: pass @@ -19,6 +44,9 @@ def func(): def func(): if True: RuntimeError("This is an exception") # PLW0133 + MyError("This is an exception") # PLW0133 + MySubError("This is an exception") # PLW0133 + MyValueError("This is an exception") # PLW0133 # Test case 4: Useless exception statement in class @@ -26,12 +54,18 @@ def func(): class Class: def __init__(self): TypeError("This is an exception") # PLW0133 + MyError("This is an exception") # PLW0133 + MySubError("This is an exception") # PLW0133 + MyValueError("This is an exception") # PLW0133 # Test case 5: Useless exception statement in function def func(): def inner(): IndexError("This is an exception") # PLW0133 + MyError("This is an exception") # PLW0133 + MySubError("This is an exception") # PLW0133 + MyValueError("This is an exception") # PLW0133 inner() @@ -40,6 +74,9 @@ def func(): def func(): while True: KeyError("This is an exception") # PLW0133 + MyError("This is an exception") # PLW0133 + MySubError("This is an exception") # PLW0133 + MyValueError("This is an exception") # PLW0133 # Test case 7: Useless exception statement in abstract class @@ -48,27 +85,58 @@ def func(): @abstractmethod def method(self): NotImplementedError("This is an exception") # PLW0133 + MyError("This is an exception") # PLW0133 + MySubError("This is an exception") # PLW0133 + MyValueError("This is an exception") # PLW0133 # Test case 8: Useless exception statement inside context manager def func(): - with suppress(AttributeError): + with suppress(Exception): AttributeError("This is an exception") # PLW0133 + MyError("This is an exception") # PLW0133 + MySubError("This is an exception") # PLW0133 + MyValueError("This is an exception") # PLW0133 # Test case 9: Useless exception statement in parentheses def func(): (RuntimeError("This is an exception")) # PLW0133 + (MyError("This is an exception")) # PLW0133 + (MySubError("This is an exception")) # PLW0133 + (MyValueError("This is an exception")) # PLW0133 # Test case 10: Useless exception statement in continuation def func(): x = 1; (RuntimeError("This is an exception")); y = 2 # PLW0133 + x = 1; (MyError("This is an exception")); y = 2 # PLW0133 + x = 1; (MySubError("This is an exception")); y = 2 # PLW0133 + x = 1; (MyValueError("This is an exception")); y = 2 # PLW0133 # Test case 11: Useless warning statement def func(): - UserWarning("This is an assertion error") # PLW0133 + UserWarning("This is a user warning") # PLW0133 + MyUserWarning("This is a custom user warning") # PLW0133 + + +# Test case 12: Useless exception statement at module level +import builtins + +builtins.TypeError("still an exception even though it's an Attribute") # PLW0133 + +PythonFinalizationError("Added in Python 3.13") # PLW0133 + +MyError("This is an exception") # PLW0133 + +MySubError("This is an exception") # PLW0133 + +MyValueError("This is an exception") # PLW0133 + +UserWarning("This is a user warning") # PLW0133 + +MyUserWarning("This is a custom user warning") # PLW0133 # Non-violation test cases: PLW0133 @@ -119,10 +187,3 @@ def func(): def func(): with suppress(AttributeError): raise AttributeError("This is an exception") # OK - - -import builtins - -builtins.TypeError("still an exception even though it's an Attribute") - -PythonFinalizationError("Added in Python 3.13") diff --git a/crates/ruff_linter/src/preview.rs b/crates/ruff_linter/src/preview.rs index 93a49e63a0..5c43172053 100644 --- a/crates/ruff_linter/src/preview.rs +++ b/crates/ruff_linter/src/preview.rs @@ -9,6 +9,11 @@ use crate::settings::LinterSettings; // Rule-specific behavior +// https://github.com/astral-sh/ruff/pull/21382 +pub(crate) const fn is_custom_exception_checking_enabled(settings: &LinterSettings) -> bool { + settings.preview.is_enabled() +} + // https://github.com/astral-sh/ruff/pull/15541 pub(crate) const fn is_suspicious_function_reference_enabled(settings: &LinterSettings) -> bool { settings.preview.is_enabled() diff --git a/crates/ruff_linter/src/rules/pylint/mod.rs b/crates/ruff_linter/src/rules/pylint/mod.rs index a0ab9a908e..de341b1146 100644 --- a/crates/ruff_linter/src/rules/pylint/mod.rs +++ b/crates/ruff_linter/src/rules/pylint/mod.rs @@ -16,10 +16,10 @@ mod tests { use crate::registry::Rule; use crate::rules::{flake8_tidy_imports, pylint}; - use crate::assert_diagnostics; use crate::settings::LinterSettings; use crate::settings::types::PreviewMode; use crate::test::test_path; + use crate::{assert_diagnostics, assert_diagnostics_diff}; #[test_case(Rule::SingledispatchMethod, Path::new("singledispatch_method.py"))] #[test_case( @@ -253,6 +253,32 @@ mod tests { Ok(()) } + #[test_case( + Rule::UselessExceptionStatement, + Path::new("useless_exception_statement.py") + )] + fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { + let snapshot = format!( + "preview__{}_{}", + rule_code.noqa_code(), + path.to_string_lossy() + ); + + assert_diagnostics_diff!( + snapshot, + Path::new("pylint").join(path).as_path(), + &LinterSettings { + preview: PreviewMode::Disabled, + ..LinterSettings::for_rule(rule_code) + }, + &LinterSettings { + preview: PreviewMode::Enabled, + ..LinterSettings::for_rule(rule_code) + } + ); + Ok(()) + } + #[test] fn continue_in_finally() -> Result<()> { let diagnostics = test_path( diff --git a/crates/ruff_linter/src/rules/pylint/rules/useless_exception_statement.rs b/crates/ruff_linter/src/rules/pylint/rules/useless_exception_statement.rs index 4608297683..6eba84adc3 100644 --- a/crates/ruff_linter/src/rules/pylint/rules/useless_exception_statement.rs +++ b/crates/ruff_linter/src/rules/pylint/rules/useless_exception_statement.rs @@ -1,10 +1,11 @@ use ruff_macros::{ViolationMetadata, derive_message_formats}; use ruff_python_ast::{self as ast, Expr}; -use ruff_python_semantic::SemanticModel; +use ruff_python_semantic::{SemanticModel, analyze}; use ruff_python_stdlib::builtins; use ruff_text_size::Ranged; use crate::checkers::ast::Checker; +use crate::preview::is_custom_exception_checking_enabled; use crate::{Edit, Fix, FixAvailability, Violation}; use ruff_python_ast::PythonVersion; @@ -20,6 +21,9 @@ use ruff_python_ast::PythonVersion; /// This rule only detects built-in exceptions, like `ValueError`, and does /// not catch user-defined exceptions. /// +/// In [preview], this rule will also detect user-defined exceptions, but only +/// the ones defined in the file being checked. +/// /// ## Example /// ```python /// ValueError("...") @@ -32,7 +36,8 @@ use ruff_python_ast::PythonVersion; /// /// ## Fix safety /// This rule's fix is marked as unsafe, as converting a useless exception -/// statement to a `raise` statement will change the program's behavior. +/// +/// [preview]: https://docs.astral.sh/ruff/preview/ #[derive(ViolationMetadata)] #[violation_metadata(stable_since = "0.5.0")] pub(crate) struct UselessExceptionStatement; @@ -56,7 +61,10 @@ pub(crate) fn useless_exception_statement(checker: &Checker, expr: &ast::StmtExp return; }; - if is_builtin_exception(func, checker.semantic(), checker.target_version()) { + if is_builtin_exception(func, checker.semantic(), checker.target_version()) + || (is_custom_exception_checking_enabled(checker.settings()) + && is_custom_exception(func, checker.semantic(), checker.target_version())) + { let mut diagnostic = checker.report_diagnostic(UselessExceptionStatement, expr.range()); diagnostic.set_fix(Fix::unsafe_edit(Edit::insertion( "raise ".to_string(), @@ -78,3 +86,34 @@ fn is_builtin_exception( if builtins::is_exception(name, target_version.minor)) }) } + +/// Returns `true` if the given expression is a custom exception. +fn is_custom_exception( + expr: &Expr, + semantic: &SemanticModel, + target_version: PythonVersion, +) -> bool { + let Some(qualified_name) = semantic.resolve_qualified_name(expr) else { + return false; + }; + let Some(symbol) = qualified_name.segments().last() else { + return false; + }; + let Some(binding_id) = semantic.lookup_symbol(symbol) else { + return false; + }; + let binding = semantic.binding(binding_id); + let Some(source) = binding.source else { + return false; + }; + let statement = semantic.statement(source); + if let ast::Stmt::ClassDef(class_def) = statement { + return analyze::class::any_qualified_base_class(class_def, semantic, &|qualified_name| { + if let ["" | "builtins", name] = qualified_name.segments() { + return builtins::is_exception(name, target_version.minor); + } + false + }); + } + false +} diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0133_useless_exception_statement.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0133_useless_exception_statement.py.snap index 6199c06156..9cbb8b9dfe 100644 --- a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0133_useless_exception_statement.py.snap +++ b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0133_useless_exception_statement.py.snap @@ -2,250 +2,294 @@ source: crates/ruff_linter/src/rules/pylint/mod.rs --- PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:7:5 - | -5 | # Test case 1: Useless exception statement -6 | def func(): -7 | AssertionError("This is an assertion error") # PLW0133 - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | -help: Add `raise` keyword -4 | -5 | # Test case 1: Useless exception statement -6 | def func(): - - AssertionError("This is an assertion error") # PLW0133 -7 + raise AssertionError("This is an assertion error") # PLW0133 -8 | -9 | -10 | # Test case 2: Useless exception statement in try-except block -note: This is an unsafe fix and may change runtime behavior - -PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:13:9 + --> useless_exception_statement.py:26:5 | -11 | def func(): -12 | try: -13 | Exception("This is an exception") # PLW0133 - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -14 | except Exception as err: -15 | pass - | -help: Add `raise` keyword -10 | # Test case 2: Useless exception statement in try-except block -11 | def func(): -12 | try: - - Exception("This is an exception") # PLW0133 -13 + raise Exception("This is an exception") # PLW0133 -14 | except Exception as err: -15 | pass -16 | -note: This is an unsafe fix and may change runtime behavior - -PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:21:9 - | -19 | def func(): -20 | if True: -21 | RuntimeError("This is an exception") # PLW0133 - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | -help: Add `raise` keyword -18 | # Test case 3: Useless exception statement in if statement -19 | def func(): -20 | if True: - - RuntimeError("This is an exception") # PLW0133 -21 + raise RuntimeError("This is an exception") # PLW0133 -22 | -23 | -24 | # Test case 4: Useless exception statement in class -note: This is an unsafe fix and may change runtime behavior - -PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:28:13 - | -26 | class Class: -27 | def __init__(self): -28 | TypeError("This is an exception") # PLW0133 - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | -help: Add `raise` keyword +24 | # Test case 1: Useless exception statement 25 | def func(): -26 | class Class: -27 | def __init__(self): +26 | AssertionError("This is an assertion error") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +27 | MyError("This is a custom error") # PLW0133 +28 | MySubError("This is a custom error") # PLW0133 + | +help: Add `raise` keyword +23 | +24 | # Test case 1: Useless exception statement +25 | def func(): + - AssertionError("This is an assertion error") # PLW0133 +26 + raise AssertionError("This is an assertion error") # PLW0133 +27 | MyError("This is a custom error") # PLW0133 +28 | MySubError("This is a custom error") # PLW0133 +29 | MyValueError("This is a custom value error") # PLW0133 +note: This is an unsafe fix and may change runtime behavior + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:35:9 + | +33 | def func(): +34 | try: +35 | Exception("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +36 | MyError("This is an exception") # PLW0133 +37 | MySubError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +32 | # Test case 2: Useless exception statement in try-except block +33 | def func(): +34 | try: + - Exception("This is an exception") # PLW0133 +35 + raise Exception("This is an exception") # PLW0133 +36 | MyError("This is an exception") # PLW0133 +37 | MySubError("This is an exception") # PLW0133 +38 | MyValueError("This is an exception") # PLW0133 +note: This is an unsafe fix and may change runtime behavior + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:46:9 + | +44 | def func(): +45 | if True: +46 | RuntimeError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +47 | MyError("This is an exception") # PLW0133 +48 | MySubError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +43 | # Test case 3: Useless exception statement in if statement +44 | def func(): +45 | if True: + - RuntimeError("This is an exception") # PLW0133 +46 + raise RuntimeError("This is an exception") # PLW0133 +47 | MyError("This is an exception") # PLW0133 +48 | MySubError("This is an exception") # PLW0133 +49 | MyValueError("This is an exception") # PLW0133 +note: This is an unsafe fix and may change runtime behavior + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:56:13 + | +54 | class Class: +55 | def __init__(self): +56 | TypeError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +57 | MyError("This is an exception") # PLW0133 +58 | MySubError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +53 | def func(): +54 | class Class: +55 | def __init__(self): - TypeError("This is an exception") # PLW0133 -28 + raise TypeError("This is an exception") # PLW0133 -29 | -30 | -31 | # Test case 5: Useless exception statement in function +56 + raise TypeError("This is an exception") # PLW0133 +57 | MyError("This is an exception") # PLW0133 +58 | MySubError("This is an exception") # PLW0133 +59 | MyValueError("This is an exception") # PLW0133 note: This is an unsafe fix and may change runtime behavior PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:34:9 + --> useless_exception_statement.py:65:9 | -32 | def func(): -33 | def inner(): -34 | IndexError("This is an exception") # PLW0133 +63 | def func(): +64 | def inner(): +65 | IndexError("This is an exception") # PLW0133 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -35 | -36 | inner() +66 | MyError("This is an exception") # PLW0133 +67 | MySubError("This is an exception") # PLW0133 | help: Add `raise` keyword -31 | # Test case 5: Useless exception statement in function -32 | def func(): -33 | def inner(): +62 | # Test case 5: Useless exception statement in function +63 | def func(): +64 | def inner(): - IndexError("This is an exception") # PLW0133 -34 + raise IndexError("This is an exception") # PLW0133 -35 | -36 | inner() -37 | +65 + raise IndexError("This is an exception") # PLW0133 +66 | MyError("This is an exception") # PLW0133 +67 | MySubError("This is an exception") # PLW0133 +68 | MyValueError("This is an exception") # PLW0133 note: This is an unsafe fix and may change runtime behavior PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:42:9 + --> useless_exception_statement.py:76:9 | -40 | def func(): -41 | while True: -42 | KeyError("This is an exception") # PLW0133 +74 | def func(): +75 | while True: +76 | KeyError("This is an exception") # PLW0133 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +77 | MyError("This is an exception") # PLW0133 +78 | MySubError("This is an exception") # PLW0133 | help: Add `raise` keyword -39 | # Test case 6: Useless exception statement in while loop -40 | def func(): -41 | while True: +73 | # Test case 6: Useless exception statement in while loop +74 | def func(): +75 | while True: - KeyError("This is an exception") # PLW0133 -42 + raise KeyError("This is an exception") # PLW0133 -43 | -44 | -45 | # Test case 7: Useless exception statement in abstract class +76 + raise KeyError("This is an exception") # PLW0133 +77 | MyError("This is an exception") # PLW0133 +78 | MySubError("This is an exception") # PLW0133 +79 | MyValueError("This is an exception") # PLW0133 note: This is an unsafe fix and may change runtime behavior PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:50:13 + --> useless_exception_statement.py:87:13 | -48 | @abstractmethod -49 | def method(self): -50 | NotImplementedError("This is an exception") # PLW0133 +85 | @abstractmethod +86 | def method(self): +87 | NotImplementedError("This is an exception") # PLW0133 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +88 | MyError("This is an exception") # PLW0133 +89 | MySubError("This is an exception") # PLW0133 | help: Add `raise` keyword -47 | class Class(ABC): -48 | @abstractmethod -49 | def method(self): +84 | class Class(ABC): +85 | @abstractmethod +86 | def method(self): - NotImplementedError("This is an exception") # PLW0133 -50 + raise NotImplementedError("This is an exception") # PLW0133 -51 | -52 | -53 | # Test case 8: Useless exception statement inside context manager +87 + raise NotImplementedError("This is an exception") # PLW0133 +88 | MyError("This is an exception") # PLW0133 +89 | MySubError("This is an exception") # PLW0133 +90 | MyValueError("This is an exception") # PLW0133 note: This is an unsafe fix and may change runtime behavior PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:56:9 + --> useless_exception_statement.py:96:9 | -54 | def func(): -55 | with suppress(AttributeError): -56 | AttributeError("This is an exception") # PLW0133 +94 | def func(): +95 | with suppress(Exception): +96 | AttributeError("This is an exception") # PLW0133 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +97 | MyError("This is an exception") # PLW0133 +98 | MySubError("This is an exception") # PLW0133 | help: Add `raise` keyword -53 | # Test case 8: Useless exception statement inside context manager -54 | def func(): -55 | with suppress(AttributeError): +93 | # Test case 8: Useless exception statement inside context manager +94 | def func(): +95 | with suppress(Exception): - AttributeError("This is an exception") # PLW0133 -56 + raise AttributeError("This is an exception") # PLW0133 -57 | -58 | -59 | # Test case 9: Useless exception statement in parentheses +96 + raise AttributeError("This is an exception") # PLW0133 +97 | MyError("This is an exception") # PLW0133 +98 | MySubError("This is an exception") # PLW0133 +99 | MyValueError("This is an exception") # PLW0133 note: This is an unsafe fix and may change runtime behavior PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:61:5 - | -59 | # Test case 9: Useless exception statement in parentheses -60 | def func(): -61 | (RuntimeError("This is an exception")) # PLW0133 - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | -help: Add `raise` keyword -58 | -59 | # Test case 9: Useless exception statement in parentheses -60 | def func(): - - (RuntimeError("This is an exception")) # PLW0133 -61 + raise (RuntimeError("This is an exception")) # PLW0133 -62 | -63 | -64 | # Test case 10: Useless exception statement in continuation -note: This is an unsafe fix and may change runtime behavior - -PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:66:12 - | -64 | # Test case 10: Useless exception statement in continuation -65 | def func(): -66 | x = 1; (RuntimeError("This is an exception")); y = 2 # PLW0133 - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | -help: Add `raise` keyword -63 | -64 | # Test case 10: Useless exception statement in continuation -65 | def func(): - - x = 1; (RuntimeError("This is an exception")); y = 2 # PLW0133 -66 + x = 1; raise (RuntimeError("This is an exception")); y = 2 # PLW0133 -67 | -68 | -69 | # Test case 11: Useless warning statement -note: This is an unsafe fix and may change runtime behavior - -PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:71:5 - | -69 | # Test case 11: Useless warning statement -70 | def func(): -71 | UserWarning("This is an assertion error") # PLW0133 - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | -help: Add `raise` keyword -68 | -69 | # Test case 11: Useless warning statement -70 | def func(): - - UserWarning("This is an assertion error") # PLW0133 -71 + raise UserWarning("This is an assertion error") # PLW0133 -72 | -73 | -74 | # Non-violation test cases: PLW0133 -note: This is an unsafe fix and may change runtime behavior - -PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:126:1 + --> useless_exception_statement.py:104:5 | -124 | import builtins -125 | -126 | builtins.TypeError("still an exception even though it's an Attribute") - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -127 | -128 | PythonFinalizationError("Added in Python 3.13") +102 | # Test case 9: Useless exception statement in parentheses +103 | def func(): +104 | (RuntimeError("This is an exception")) # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +105 | (MyError("This is an exception")) # PLW0133 +106 | (MySubError("This is an exception")) # PLW0133 | help: Add `raise` keyword +101 | +102 | # Test case 9: Useless exception statement in parentheses +103 | def func(): + - (RuntimeError("This is an exception")) # PLW0133 +104 + raise (RuntimeError("This is an exception")) # PLW0133 +105 | (MyError("This is an exception")) # PLW0133 +106 | (MySubError("This is an exception")) # PLW0133 +107 | (MyValueError("This is an exception")) # PLW0133 +note: This is an unsafe fix and may change runtime behavior + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:112:12 + | +110 | # Test case 10: Useless exception statement in continuation +111 | def func(): +112 | x = 1; (RuntimeError("This is an exception")); y = 2 # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +113 | x = 1; (MyError("This is an exception")); y = 2 # PLW0133 +114 | x = 1; (MySubError("This is an exception")); y = 2 # PLW0133 + | +help: Add `raise` keyword +109 | +110 | # Test case 10: Useless exception statement in continuation +111 | def func(): + - x = 1; (RuntimeError("This is an exception")); y = 2 # PLW0133 +112 + x = 1; raise (RuntimeError("This is an exception")); y = 2 # PLW0133 +113 | x = 1; (MyError("This is an exception")); y = 2 # PLW0133 +114 | x = 1; (MySubError("This is an exception")); y = 2 # PLW0133 +115 | x = 1; (MyValueError("This is an exception")); y = 2 # PLW0133 +note: This is an unsafe fix and may change runtime behavior + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:120:5 + | +118 | # Test case 11: Useless warning statement +119 | def func(): +120 | UserWarning("This is a user warning") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +121 | MyUserWarning("This is a custom user warning") # PLW0133 + | +help: Add `raise` keyword +117 | +118 | # Test case 11: Useless warning statement +119 | def func(): + - UserWarning("This is a user warning") # PLW0133 +120 + raise UserWarning("This is a user warning") # PLW0133 +121 | MyUserWarning("This is a custom user warning") # PLW0133 +122 | 123 | -124 | import builtins -125 | - - builtins.TypeError("still an exception even though it's an Attribute") -126 + raise builtins.TypeError("still an exception even though it's an Attribute") -127 | -128 | PythonFinalizationError("Added in Python 3.13") note: This is an unsafe fix and may change runtime behavior PLW0133 [*] Missing `raise` statement on exception - --> useless_exception_statement.py:128:1 + --> useless_exception_statement.py:127:1 | -126 | builtins.TypeError("still an exception even though it's an Attribute") -127 | -128 | PythonFinalizationError("Added in Python 3.13") - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +125 | import builtins +126 | +127 | builtins.TypeError("still an exception even though it's an Attribute") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +128 | +129 | PythonFinalizationError("Added in Python 3.13") # PLW0133 | help: Add `raise` keyword -125 | -126 | builtins.TypeError("still an exception even though it's an Attribute") -127 | - - PythonFinalizationError("Added in Python 3.13") -128 + raise PythonFinalizationError("Added in Python 3.13") +124 | # Test case 12: Useless exception statement at module level +125 | import builtins +126 | + - builtins.TypeError("still an exception even though it's an Attribute") # PLW0133 +127 + raise builtins.TypeError("still an exception even though it's an Attribute") # PLW0133 +128 | +129 | PythonFinalizationError("Added in Python 3.13") # PLW0133 +130 | +note: This is an unsafe fix and may change runtime behavior + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:129:1 + | +127 | builtins.TypeError("still an exception even though it's an Attribute") # PLW0133 +128 | +129 | PythonFinalizationError("Added in Python 3.13") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +130 | +131 | MyError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +126 | +127 | builtins.TypeError("still an exception even though it's an Attribute") # PLW0133 +128 | + - PythonFinalizationError("Added in Python 3.13") # PLW0133 +129 + raise PythonFinalizationError("Added in Python 3.13") # PLW0133 +130 | +131 | MyError("This is an exception") # PLW0133 +132 | +note: This is an unsafe fix and may change runtime behavior + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:137:1 + | +135 | MyValueError("This is an exception") # PLW0133 +136 | +137 | UserWarning("This is a user warning") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +138 | +139 | MyUserWarning("This is a custom user warning") # PLW0133 + | +help: Add `raise` keyword +134 | +135 | MyValueError("This is an exception") # PLW0133 +136 | + - UserWarning("This is a user warning") # PLW0133 +137 + raise UserWarning("This is a user warning") # PLW0133 +138 | +139 | MyUserWarning("This is a custom user warning") # PLW0133 +140 | note: This is an unsafe fix and may change runtime behavior diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__preview__PLW0133_useless_exception_statement.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__preview__PLW0133_useless_exception_statement.py.snap new file mode 100644 index 0000000000..c6a1f16ba8 --- /dev/null +++ b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__preview__PLW0133_useless_exception_statement.py.snap @@ -0,0 +1,751 @@ +--- +source: crates/ruff_linter/src/rules/pylint/mod.rs +--- +--- Linter settings --- +-linter.preview = disabled ++linter.preview = enabled + +--- Summary --- +Removed: 0 +Added: 35 + +--- Added --- +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:27:5 + | +25 | def func(): +26 | AssertionError("This is an assertion error") # PLW0133 +27 | MyError("This is a custom error") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +28 | MySubError("This is a custom error") # PLW0133 +29 | MyValueError("This is a custom value error") # PLW0133 + | +help: Add `raise` keyword +24 | # Test case 1: Useless exception statement +25 | def func(): +26 | AssertionError("This is an assertion error") # PLW0133 + - MyError("This is a custom error") # PLW0133 +27 + raise MyError("This is a custom error") # PLW0133 +28 | MySubError("This is a custom error") # PLW0133 +29 | MyValueError("This is a custom value error") # PLW0133 +30 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:28:5 + | +26 | AssertionError("This is an assertion error") # PLW0133 +27 | MyError("This is a custom error") # PLW0133 +28 | MySubError("This is a custom error") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +29 | MyValueError("This is a custom value error") # PLW0133 + | +help: Add `raise` keyword +25 | def func(): +26 | AssertionError("This is an assertion error") # PLW0133 +27 | MyError("This is a custom error") # PLW0133 + - MySubError("This is a custom error") # PLW0133 +28 + raise MySubError("This is a custom error") # PLW0133 +29 | MyValueError("This is a custom value error") # PLW0133 +30 | +31 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:29:5 + | +27 | MyError("This is a custom error") # PLW0133 +28 | MySubError("This is a custom error") # PLW0133 +29 | MyValueError("This is a custom value error") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: Add `raise` keyword +26 | AssertionError("This is an assertion error") # PLW0133 +27 | MyError("This is a custom error") # PLW0133 +28 | MySubError("This is a custom error") # PLW0133 + - MyValueError("This is a custom value error") # PLW0133 +29 + raise MyValueError("This is a custom value error") # PLW0133 +30 | +31 | +32 | # Test case 2: Useless exception statement in try-except block +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:36:9 + | +34 | try: +35 | Exception("This is an exception") # PLW0133 +36 | MyError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +37 | MySubError("This is an exception") # PLW0133 +38 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +33 | def func(): +34 | try: +35 | Exception("This is an exception") # PLW0133 + - MyError("This is an exception") # PLW0133 +36 + raise MyError("This is an exception") # PLW0133 +37 | MySubError("This is an exception") # PLW0133 +38 | MyValueError("This is an exception") # PLW0133 +39 | except Exception as err: +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:37:9 + | +35 | Exception("This is an exception") # PLW0133 +36 | MyError("This is an exception") # PLW0133 +37 | MySubError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +38 | MyValueError("This is an exception") # PLW0133 +39 | except Exception as err: + | +help: Add `raise` keyword +34 | try: +35 | Exception("This is an exception") # PLW0133 +36 | MyError("This is an exception") # PLW0133 + - MySubError("This is an exception") # PLW0133 +37 + raise MySubError("This is an exception") # PLW0133 +38 | MyValueError("This is an exception") # PLW0133 +39 | except Exception as err: +40 | pass +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:38:9 + | +36 | MyError("This is an exception") # PLW0133 +37 | MySubError("This is an exception") # PLW0133 +38 | MyValueError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +39 | except Exception as err: +40 | pass + | +help: Add `raise` keyword +35 | Exception("This is an exception") # PLW0133 +36 | MyError("This is an exception") # PLW0133 +37 | MySubError("This is an exception") # PLW0133 + - MyValueError("This is an exception") # PLW0133 +38 + raise MyValueError("This is an exception") # PLW0133 +39 | except Exception as err: +40 | pass +41 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:47:9 + | +45 | if True: +46 | RuntimeError("This is an exception") # PLW0133 +47 | MyError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +48 | MySubError("This is an exception") # PLW0133 +49 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +44 | def func(): +45 | if True: +46 | RuntimeError("This is an exception") # PLW0133 + - MyError("This is an exception") # PLW0133 +47 + raise MyError("This is an exception") # PLW0133 +48 | MySubError("This is an exception") # PLW0133 +49 | MyValueError("This is an exception") # PLW0133 +50 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:48:9 + | +46 | RuntimeError("This is an exception") # PLW0133 +47 | MyError("This is an exception") # PLW0133 +48 | MySubError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +49 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +45 | if True: +46 | RuntimeError("This is an exception") # PLW0133 +47 | MyError("This is an exception") # PLW0133 + - MySubError("This is an exception") # PLW0133 +48 + raise MySubError("This is an exception") # PLW0133 +49 | MyValueError("This is an exception") # PLW0133 +50 | +51 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:49:9 + | +47 | MyError("This is an exception") # PLW0133 +48 | MySubError("This is an exception") # PLW0133 +49 | MyValueError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: Add `raise` keyword +46 | RuntimeError("This is an exception") # PLW0133 +47 | MyError("This is an exception") # PLW0133 +48 | MySubError("This is an exception") # PLW0133 + - MyValueError("This is an exception") # PLW0133 +49 + raise MyValueError("This is an exception") # PLW0133 +50 | +51 | +52 | # Test case 4: Useless exception statement in class +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:57:13 + | +55 | def __init__(self): +56 | TypeError("This is an exception") # PLW0133 +57 | MyError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +58 | MySubError("This is an exception") # PLW0133 +59 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +54 | class Class: +55 | def __init__(self): +56 | TypeError("This is an exception") # PLW0133 + - MyError("This is an exception") # PLW0133 +57 + raise MyError("This is an exception") # PLW0133 +58 | MySubError("This is an exception") # PLW0133 +59 | MyValueError("This is an exception") # PLW0133 +60 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:58:13 + | +56 | TypeError("This is an exception") # PLW0133 +57 | MyError("This is an exception") # PLW0133 +58 | MySubError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +59 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +55 | def __init__(self): +56 | TypeError("This is an exception") # PLW0133 +57 | MyError("This is an exception") # PLW0133 + - MySubError("This is an exception") # PLW0133 +58 + raise MySubError("This is an exception") # PLW0133 +59 | MyValueError("This is an exception") # PLW0133 +60 | +61 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:59:13 + | +57 | MyError("This is an exception") # PLW0133 +58 | MySubError("This is an exception") # PLW0133 +59 | MyValueError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: Add `raise` keyword +56 | TypeError("This is an exception") # PLW0133 +57 | MyError("This is an exception") # PLW0133 +58 | MySubError("This is an exception") # PLW0133 + - MyValueError("This is an exception") # PLW0133 +59 + raise MyValueError("This is an exception") # PLW0133 +60 | +61 | +62 | # Test case 5: Useless exception statement in function +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:66:9 + | +64 | def inner(): +65 | IndexError("This is an exception") # PLW0133 +66 | MyError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +67 | MySubError("This is an exception") # PLW0133 +68 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +63 | def func(): +64 | def inner(): +65 | IndexError("This is an exception") # PLW0133 + - MyError("This is an exception") # PLW0133 +66 + raise MyError("This is an exception") # PLW0133 +67 | MySubError("This is an exception") # PLW0133 +68 | MyValueError("This is an exception") # PLW0133 +69 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:67:9 + | +65 | IndexError("This is an exception") # PLW0133 +66 | MyError("This is an exception") # PLW0133 +67 | MySubError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +68 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +64 | def inner(): +65 | IndexError("This is an exception") # PLW0133 +66 | MyError("This is an exception") # PLW0133 + - MySubError("This is an exception") # PLW0133 +67 + raise MySubError("This is an exception") # PLW0133 +68 | MyValueError("This is an exception") # PLW0133 +69 | +70 | inner() +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:68:9 + | +66 | MyError("This is an exception") # PLW0133 +67 | MySubError("This is an exception") # PLW0133 +68 | MyValueError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +69 | +70 | inner() + | +help: Add `raise` keyword +65 | IndexError("This is an exception") # PLW0133 +66 | MyError("This is an exception") # PLW0133 +67 | MySubError("This is an exception") # PLW0133 + - MyValueError("This is an exception") # PLW0133 +68 + raise MyValueError("This is an exception") # PLW0133 +69 | +70 | inner() +71 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:77:9 + | +75 | while True: +76 | KeyError("This is an exception") # PLW0133 +77 | MyError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +78 | MySubError("This is an exception") # PLW0133 +79 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +74 | def func(): +75 | while True: +76 | KeyError("This is an exception") # PLW0133 + - MyError("This is an exception") # PLW0133 +77 + raise MyError("This is an exception") # PLW0133 +78 | MySubError("This is an exception") # PLW0133 +79 | MyValueError("This is an exception") # PLW0133 +80 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:78:9 + | +76 | KeyError("This is an exception") # PLW0133 +77 | MyError("This is an exception") # PLW0133 +78 | MySubError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +79 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +75 | while True: +76 | KeyError("This is an exception") # PLW0133 +77 | MyError("This is an exception") # PLW0133 + - MySubError("This is an exception") # PLW0133 +78 + raise MySubError("This is an exception") # PLW0133 +79 | MyValueError("This is an exception") # PLW0133 +80 | +81 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:79:9 + | +77 | MyError("This is an exception") # PLW0133 +78 | MySubError("This is an exception") # PLW0133 +79 | MyValueError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: Add `raise` keyword +76 | KeyError("This is an exception") # PLW0133 +77 | MyError("This is an exception") # PLW0133 +78 | MySubError("This is an exception") # PLW0133 + - MyValueError("This is an exception") # PLW0133 +79 + raise MyValueError("This is an exception") # PLW0133 +80 | +81 | +82 | # Test case 7: Useless exception statement in abstract class +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:88:13 + | +86 | def method(self): +87 | NotImplementedError("This is an exception") # PLW0133 +88 | MyError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +89 | MySubError("This is an exception") # PLW0133 +90 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +85 | @abstractmethod +86 | def method(self): +87 | NotImplementedError("This is an exception") # PLW0133 + - MyError("This is an exception") # PLW0133 +88 + raise MyError("This is an exception") # PLW0133 +89 | MySubError("This is an exception") # PLW0133 +90 | MyValueError("This is an exception") # PLW0133 +91 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:89:13 + | +87 | NotImplementedError("This is an exception") # PLW0133 +88 | MyError("This is an exception") # PLW0133 +89 | MySubError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +90 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +86 | def method(self): +87 | NotImplementedError("This is an exception") # PLW0133 +88 | MyError("This is an exception") # PLW0133 + - MySubError("This is an exception") # PLW0133 +89 + raise MySubError("This is an exception") # PLW0133 +90 | MyValueError("This is an exception") # PLW0133 +91 | +92 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:90:13 + | +88 | MyError("This is an exception") # PLW0133 +89 | MySubError("This is an exception") # PLW0133 +90 | MyValueError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: Add `raise` keyword +87 | NotImplementedError("This is an exception") # PLW0133 +88 | MyError("This is an exception") # PLW0133 +89 | MySubError("This is an exception") # PLW0133 + - MyValueError("This is an exception") # PLW0133 +90 + raise MyValueError("This is an exception") # PLW0133 +91 | +92 | +93 | # Test case 8: Useless exception statement inside context manager +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:97:9 + | +95 | with suppress(Exception): +96 | AttributeError("This is an exception") # PLW0133 +97 | MyError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +98 | MySubError("This is an exception") # PLW0133 +99 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +94 | def func(): +95 | with suppress(Exception): +96 | AttributeError("This is an exception") # PLW0133 + - MyError("This is an exception") # PLW0133 +97 + raise MyError("This is an exception") # PLW0133 +98 | MySubError("This is an exception") # PLW0133 +99 | MyValueError("This is an exception") # PLW0133 +100 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:98:9 + | +96 | AttributeError("This is an exception") # PLW0133 +97 | MyError("This is an exception") # PLW0133 +98 | MySubError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +99 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +95 | with suppress(Exception): +96 | AttributeError("This is an exception") # PLW0133 +97 | MyError("This is an exception") # PLW0133 + - MySubError("This is an exception") # PLW0133 +98 + raise MySubError("This is an exception") # PLW0133 +99 | MyValueError("This is an exception") # PLW0133 +100 | +101 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:99:9 + | +97 | MyError("This is an exception") # PLW0133 +98 | MySubError("This is an exception") # PLW0133 +99 | MyValueError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: Add `raise` keyword +96 | AttributeError("This is an exception") # PLW0133 +97 | MyError("This is an exception") # PLW0133 +98 | MySubError("This is an exception") # PLW0133 + - MyValueError("This is an exception") # PLW0133 +99 + raise MyValueError("This is an exception") # PLW0133 +100 | +101 | +102 | # Test case 9: Useless exception statement in parentheses +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:105:5 + | +103 | def func(): +104 | (RuntimeError("This is an exception")) # PLW0133 +105 | (MyError("This is an exception")) # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +106 | (MySubError("This is an exception")) # PLW0133 +107 | (MyValueError("This is an exception")) # PLW0133 + | +help: Add `raise` keyword +102 | # Test case 9: Useless exception statement in parentheses +103 | def func(): +104 | (RuntimeError("This is an exception")) # PLW0133 + - (MyError("This is an exception")) # PLW0133 +105 + raise (MyError("This is an exception")) # PLW0133 +106 | (MySubError("This is an exception")) # PLW0133 +107 | (MyValueError("This is an exception")) # PLW0133 +108 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:106:5 + | +104 | (RuntimeError("This is an exception")) # PLW0133 +105 | (MyError("This is an exception")) # PLW0133 +106 | (MySubError("This is an exception")) # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +107 | (MyValueError("This is an exception")) # PLW0133 + | +help: Add `raise` keyword +103 | def func(): +104 | (RuntimeError("This is an exception")) # PLW0133 +105 | (MyError("This is an exception")) # PLW0133 + - (MySubError("This is an exception")) # PLW0133 +106 + raise (MySubError("This is an exception")) # PLW0133 +107 | (MyValueError("This is an exception")) # PLW0133 +108 | +109 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:107:5 + | +105 | (MyError("This is an exception")) # PLW0133 +106 | (MySubError("This is an exception")) # PLW0133 +107 | (MyValueError("This is an exception")) # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: Add `raise` keyword +104 | (RuntimeError("This is an exception")) # PLW0133 +105 | (MyError("This is an exception")) # PLW0133 +106 | (MySubError("This is an exception")) # PLW0133 + - (MyValueError("This is an exception")) # PLW0133 +107 + raise (MyValueError("This is an exception")) # PLW0133 +108 | +109 | +110 | # Test case 10: Useless exception statement in continuation +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:113:12 + | +111 | def func(): +112 | x = 1; (RuntimeError("This is an exception")); y = 2 # PLW0133 +113 | x = 1; (MyError("This is an exception")); y = 2 # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +114 | x = 1; (MySubError("This is an exception")); y = 2 # PLW0133 +115 | x = 1; (MyValueError("This is an exception")); y = 2 # PLW0133 + | +help: Add `raise` keyword +110 | # Test case 10: Useless exception statement in continuation +111 | def func(): +112 | x = 1; (RuntimeError("This is an exception")); y = 2 # PLW0133 + - x = 1; (MyError("This is an exception")); y = 2 # PLW0133 +113 + x = 1; raise (MyError("This is an exception")); y = 2 # PLW0133 +114 | x = 1; (MySubError("This is an exception")); y = 2 # PLW0133 +115 | x = 1; (MyValueError("This is an exception")); y = 2 # PLW0133 +116 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:114:12 + | +112 | x = 1; (RuntimeError("This is an exception")); y = 2 # PLW0133 +113 | x = 1; (MyError("This is an exception")); y = 2 # PLW0133 +114 | x = 1; (MySubError("This is an exception")); y = 2 # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +115 | x = 1; (MyValueError("This is an exception")); y = 2 # PLW0133 + | +help: Add `raise` keyword +111 | def func(): +112 | x = 1; (RuntimeError("This is an exception")); y = 2 # PLW0133 +113 | x = 1; (MyError("This is an exception")); y = 2 # PLW0133 + - x = 1; (MySubError("This is an exception")); y = 2 # PLW0133 +114 + x = 1; raise (MySubError("This is an exception")); y = 2 # PLW0133 +115 | x = 1; (MyValueError("This is an exception")); y = 2 # PLW0133 +116 | +117 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:115:12 + | +113 | x = 1; (MyError("This is an exception")); y = 2 # PLW0133 +114 | x = 1; (MySubError("This is an exception")); y = 2 # PLW0133 +115 | x = 1; (MyValueError("This is an exception")); y = 2 # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: Add `raise` keyword +112 | x = 1; (RuntimeError("This is an exception")); y = 2 # PLW0133 +113 | x = 1; (MyError("This is an exception")); y = 2 # PLW0133 +114 | x = 1; (MySubError("This is an exception")); y = 2 # PLW0133 + - x = 1; (MyValueError("This is an exception")); y = 2 # PLW0133 +115 + x = 1; raise (MyValueError("This is an exception")); y = 2 # PLW0133 +116 | +117 | +118 | # Test case 11: Useless warning statement +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:121:5 + | +119 | def func(): +120 | UserWarning("This is a user warning") # PLW0133 +121 | MyUserWarning("This is a custom user warning") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: Add `raise` keyword +118 | # Test case 11: Useless warning statement +119 | def func(): +120 | UserWarning("This is a user warning") # PLW0133 + - MyUserWarning("This is a custom user warning") # PLW0133 +121 + raise MyUserWarning("This is a custom user warning") # PLW0133 +122 | +123 | +124 | # Test case 12: Useless exception statement at module level +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:131:1 + | +129 | PythonFinalizationError("Added in Python 3.13") # PLW0133 +130 | +131 | MyError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +132 | +133 | MySubError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +128 | +129 | PythonFinalizationError("Added in Python 3.13") # PLW0133 +130 | + - MyError("This is an exception") # PLW0133 +131 + raise MyError("This is an exception") # PLW0133 +132 | +133 | MySubError("This is an exception") # PLW0133 +134 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:133:1 + | +131 | MyError("This is an exception") # PLW0133 +132 | +133 | MySubError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +134 | +135 | MyValueError("This is an exception") # PLW0133 + | +help: Add `raise` keyword +130 | +131 | MyError("This is an exception") # PLW0133 +132 | + - MySubError("This is an exception") # PLW0133 +133 + raise MySubError("This is an exception") # PLW0133 +134 | +135 | MyValueError("This is an exception") # PLW0133 +136 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:135:1 + | +133 | MySubError("This is an exception") # PLW0133 +134 | +135 | MyValueError("This is an exception") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +136 | +137 | UserWarning("This is a user warning") # PLW0133 + | +help: Add `raise` keyword +132 | +133 | MySubError("This is an exception") # PLW0133 +134 | + - MyValueError("This is an exception") # PLW0133 +135 + raise MyValueError("This is an exception") # PLW0133 +136 | +137 | UserWarning("This is a user warning") # PLW0133 +138 | +note: This is an unsafe fix and may change runtime behavior + + +PLW0133 [*] Missing `raise` statement on exception + --> useless_exception_statement.py:139:1 + | +137 | UserWarning("This is a user warning") # PLW0133 +138 | +139 | MyUserWarning("This is a custom user warning") # PLW0133 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: Add `raise` keyword +136 | +137 | UserWarning("This is a user warning") # PLW0133 +138 | + - MyUserWarning("This is a custom user warning") # PLW0133 +139 + raise MyUserWarning("This is a custom user warning") # PLW0133 +140 | +141 | +142 | # Non-violation test cases: PLW0133 +note: This is an unsafe fix and may change runtime behavior From 0bec5c0362b553047506bdd9e70b0c45420ef059 Mon Sep 17 00:00:00 2001 From: Brent Westbrook <36778786+ntBre@users.noreply.github.com> Date: Tue, 9 Dec 2025 14:07:48 -0500 Subject: [PATCH 65/65] Fix comment placement in lambda parameters (#21868) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary -- This PR makes two changes to comment placement in lambda parameters. First, we now insert a line break if the first parameter has a leading comment: ```py # input ( lambda * # comment 2 x: x ) # main ( lambda # comment 2 *x: x ) # this PR ( lambda # comment 2 *x: x ) ``` Note the missing space in the output from main. This case is currently unstable on main. Also note that the new formatting is more consistent with our stable formatting in cases where the lambda has its own dangling comment: ```py # input ( lambda # comment 1 * # comment 2 x: x ) # output ( lambda # comment 1 # comment 2 *x: x ) ``` and when a parameter without a comment precedes the split `*x`: ```py # input ( lambda y, * # comment 2 x: x ) # output ( lambda y, # comment 2 *x: x ) ``` This does change the stable formatting, but I think such cases are rare (expecting zero hits in the ecosystem report), this fixes an existing instability, and it should not change any code we've previously formatted. Second, this PR modifies the comment placement such that `# comment 2` in these outputs is still a leading comment on the parameter. This is also not the case on main, where it becomes a [dangling lambda comment](https://play.ruff.rs/3b29bb7e-70e4-4365-88e0-e60fe1857a35?secondary=Comments). This doesn't cause any instability that I'm aware of on main, but it does cause problems when trying to adjust the placement of dangling lambda comments in #21385. Changing the placement in this way should not affect any formatting here. Test Plan -- New lambda tests, plus existing tests covering the cases above with multiple comments around the parameters (see lambda.py 122-143, and 122-205 or so more broadly) I also checked manually that the comments are now leading on the parameter: ```shell ❯ cargo run --bin ruff_python_formatter -- --emit stdout --target-version 3.10 --print-comments <( source: &str, ) -> CommentPlacement<'a> { if let Some(parameters) = lambda.parameters.as_deref() { - // Comments between the `lambda` and the parameters are dangling on the lambda: + // End-of-line comments between the `lambda` and the parameters are dangling on the lambda: // ```python // ( // lambda # comment @@ -1824,8 +1824,24 @@ fn handle_lambda_comment<'a>( // y // ) // ``` + // + // But own-line comments are leading on the first parameter, if it exists: + // ```python + // ( + // lambda + // # comment + // x: + // y + // ) + // ``` if comment.start() < parameters.start() { - return CommentPlacement::dangling(comment.enclosing_node(), comment); + return if let Some(first) = parameters.iter().next() + && comment.line_position().is_own_line() + { + CommentPlacement::leading(first.as_parameter(), comment) + } else { + CommentPlacement::dangling(comment.enclosing_node(), comment) + }; } // Comments between the parameters and the body are dangling on the lambda: diff --git a/crates/ruff_python_formatter/src/expression/expr_lambda.rs b/crates/ruff_python_formatter/src/expression/expr_lambda.rs index c5890fba24..335f112323 100644 --- a/crates/ruff_python_formatter/src/expression/expr_lambda.rs +++ b/crates/ruff_python_formatter/src/expression/expr_lambda.rs @@ -32,7 +32,69 @@ impl FormatNodeRule for FormatExprLambda { .split_at(dangling.partition_point(|comment| comment.end() < parameters.start())); if dangling_before_parameters.is_empty() { - write!(f, [space()])?; + // If the first parameter has a leading comment, insert a hard line break. This + // comment is associated as a leading comment on the first parameter: + // + // ```py + // ( + // lambda + // * # comment + // x: + // x + // ) + // ``` + // + // so a hard line break is needed to avoid formatting it like: + // + // ```py + // ( + // lambda # comment + // *x: x + // ) + // ``` + // + // which is unstable because it's missing the second space before the comment. + // + // Inserting the line break causes it to format like: + // + // ```py + // ( + // lambda + // # comment + // *x :x + // ) + // ``` + // + // which is also consistent with the formatting in the presence of an actual + // dangling comment on the lambda: + // + // ```py + // ( + // lambda # comment 1 + // * # comment 2 + // x: + // x + // ) + // ``` + // + // formats to: + // + // ```py + // ( + // lambda # comment 1 + // # comment 2 + // *x: x + // ) + // ``` + if parameters + .iter() + .next() + .is_some_and(|parameter| comments.has_leading(parameter.as_parameter())) + { + hard_line_break().fmt(f)?; + } else { + write!(f, [space()])?; + } } else { write!(f, [dangling_comments(dangling_before_parameters)])?; } diff --git a/crates/ruff_python_formatter/tests/snapshots/format@expression__lambda.py.snap b/crates/ruff_python_formatter/tests/snapshots/format@expression__lambda.py.snap index 03332c6f92..3009dfaefc 100644 --- a/crates/ruff_python_formatter/tests/snapshots/format@expression__lambda.py.snap +++ b/crates/ruff_python_formatter/tests/snapshots/format@expression__lambda.py.snap @@ -1,7 +1,6 @@ --- source: crates/ruff_python_formatter/tests/fixtures.rs input_file: crates/ruff_python_formatter/resources/test/fixtures/ruff/expression/lambda.py -snapshot_kind: text --- ## Input ```python @@ -235,6 +234,27 @@ def a(): g = 10 ) +( + lambda + * # comment 2 + x: + x +) + +( + lambda # comment 1 + * # comment 2 + x: + x +) + +( + lambda # comment 1 + y, + * # comment 2 + x: + x +) ``` ## Output @@ -473,4 +493,24 @@ def a(): g=2: d, g=10, ) + + +( + lambda + # comment 2 + *x: x +) + +( + lambda # comment 1 + # comment 2 + *x: x +) + +( + lambda # comment 1 + y, + # comment 2 + *x: x +) ```