:house_with_garden: Open source home automation that puts local control and privacy first.
This report summarizes scanner evidence for home-assistant/core, a Python project with 91,358 GitHub stars. SynthScan examined 4,165,827 lines of code across 23778 source files, recording 51765 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 15.8 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 44146 finding(s).
Are imports declared and package/API names verified? 1691 finding(s).
Are wrappers, guards, and repeated structures necessary? 48143 finding(s).
Which changes need focused human review? 51765 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 51765 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ins/pylint_home_assistant/checkers/test_determinism.py | 47 | def _condition_references_parameter(node: nodes.If, param_names: set[str]) -> bool: | CODE |
| LOW | …t_home_assistant/checkers/redundant_translation_key.py | 78 | def _code_reads_translation_key(integration_dir: Path) -> bool: | CODE |
| LOW | …nt/plugins/pylint_home_assistant/checkers/decorator.py | 37 | def _get_pytest_fixture_node_keyword( | CODE |
| LOW | …nt_home_assistant/checkers/coordinator_config_entry.py | 84 | def _config_entry_passed_to_super(init: nodes.FunctionDef) -> nodes.NodeNG | None: | CODE |
| LOW | …plugins/pylint_home_assistant/checkers/runtime_data.py | 118 | def _is_hass_data_domain_access(node: nodes.Subscript) -> bool: | CODE |
| LOW | …plugins/pylint_home_assistant/checkers/runtime_data.py | 129 | def _is_hass_data_domain_call(node: nodes.Call) -> bool: | CODE |
| LOW | …lint_home_assistant/checkers/unnecessary_format_mac.py | 24 | def _is_connection_network_mac(node: nodes.NodeNG) -> bool: | CODE |
| LOW | …lint_home_assistant/checkers/unnecessary_format_mac.py | 46 | def _is_inside_connections_kwarg(node: nodes.NodeNG) -> bool: | CODE |
| LOW | …gins/pylint_home_assistant/checkers/domain_constant.py | 38 | def _check_call_node_domain_arguments(node: nodes.Call) -> nodes.NodeNG | None: | CODE |
| LOW | …gins/pylint_home_assistant/checkers/domain_constant.py | 58 | def _check_call_node_domain_argument( | CODE |
| LOW | …lint/plugins/pylint_home_assistant/checkers/imports.py | 248 | def _visit_importfrom_relative( | CODE |
| LOW | …lint/plugins/pylint_home_assistant/checkers/imports.py | 273 | def _check_for_constant_alias( | CODE |
| LOW | …lint/plugins/pylint_home_assistant/checkers/imports.py | 308 | def _check_for_component_root_import( | CODE |
| LOW | …lint/plugins/pylint_home_assistant/checkers/imports.py | 335 | def _check_for_relative_import( | CODE |
| LOW | …int_home_assistant/checkers/entity_unique_id_format.py | 79 | def _joined_str_approximation(node: nodes.JoinedStr) -> str: | CODE |
| LOW | …int_home_assistant/checkers/entity_unique_id_format.py | 157 | def _value_references_platform( | CODE |
| LOW | …istant/checkers/quality_scale/test_before_configure.py | 52 | def _is_surfacing_errors_value(value: nodes.NodeNG) -> bool: | CODE |
| LOW | …istant/checkers/quality_scale/test_before_configure.py | 83 | def _module_surfaces_failures(module: nodes.Module) -> bool: | CODE |
| LOW | …istant/checkers/quality_scale/test_before_configure.py | 141 | def _ancestor_module_surfaces(self, module: nodes.Module) -> bool: | CODE |
| LOW | …e_assistant/checkers/quality_scale/entity_unique_id.py | 88 | def _class_body_sets_attr_non_none(class_node: nodes.ClassDef) -> bool: | CODE |
| LOW | …e_assistant/checkers/quality_scale/entity_unique_id.py | 111 | def _class_body_nullifies_attr(class_node: nodes.ClassDef) -> bool: | CODE |
| LOW | …e_assistant/checkers/quality_scale/entity_unique_id.py | 159 | def _stmts_contain_terminator(stmts: list[nodes.NodeNG]) -> bool: | CODE |
| LOW | …e_assistant/checkers/quality_scale/entity_unique_id.py | 172 | def _body_guarantees_target_assign(stmts: list[nodes.NodeNG]) -> bool: | CODE |
| LOW | …e_assistant/checkers/quality_scale/entity_unique_id.py | 209 | def _method_unconditionally_sets_attr(class_node: nodes.ClassDef) -> bool: | CODE |
| LOW | …e_assistant/checkers/quality_scale/entity_unique_id.py | 218 | def _class_defines_unique_id_method(class_node: nodes.ClassDef) -> bool: | CODE |
| LOW | …e_assistant/checkers/quality_scale/entity_unique_id.py | 259 | def _class_body_static_string_node( | CODE |
| LOW | …me_assistant/checkers/quality_scale/has_entity_name.py | 67 | def _class_body_sets_attr_true(class_node: nodes.ClassDef, attr_name: str) -> bool: | CODE |
| LOW | …me_assistant/checkers/quality_scale/has_entity_name.py | 96 | def _method_unconditionally_sets_attr_true(class_node: nodes.ClassDef) -> bool: | CODE |
| LOW | …me_assistant/checkers/quality_scale/has_entity_name.py | 154 | def _description_sets_has_entity_name(description_class: nodes.ClassDef) -> bool: | CODE |
| LOW | …me_assistant/checkers/quality_scale/has_entity_name.py | 164 | def _entity_description_annotation_satisfies(class_node: nodes.ClassDef) -> bool: | CODE |
| LOW | …home_assistant/checkers/config_flow/unique_id_no_ip.py | 100 | def _check_subscript_or_call_ip(node: nodes.NodeNG) -> str | None: | CODE |
| LOW | …nt_home_assistant/checkers/tests/direct_async_setup.py | 27 | def _is_integration_async_setup(call: nodes.Call) -> bool: | CODE |
| LOW | …home_assistant/checkers/tests/config_flow_unique_id.py | 49 | def _config_flow_sets_unique_id(integration_dir: Path) -> bool: | CODE |
| LOW | …home_assistant/checkers/tests/config_flow_unique_id.py | 58 | def _create_entry_result_name(node: nodes.Compare) -> str | None: | CODE |
| LOW | …home_assistant/checkers/tests/redundant_usefixtures.py | 23 | def _is_pytest_mark_usefixtures(node: nodes.Call) -> bool: | CODE |
| LOW | …home_assistant/checkers/tests/redundant_usefixtures.py | 35 | def _extract_usefixtures_names(node: nodes.NodeNG) -> set[str]: | CODE |
| LOW | …home_assistant/checkers/tests/redundant_usefixtures.py | 48 | def _collect_module_usefixtures(module: nodes.Module) -> set[str]: | CODE |
| LOW | …home_assistant/checkers/tests/redundant_usefixtures.py | 86 | def _collect_autouse_fixtures(module: nodes.Module) -> set[str]: | CODE |
| LOW | …home_assistant/checkers/tests/redundant_usefixtures.py | 116 | def _collect_conftest_fixtures(module: nodes.Module) -> set[str]: | CODE |
| LOW | …assistant/checkers/tests/direct_async_migrate_entry.py | 23 | def _is_integration_async_migrate_entry(call: nodes.Call) -> bool: | CODE |
| LOW | …_assistant/checkers/tests/direct_async_unload_entry.py | 23 | def _is_integration_async_unload_entry(call: nodes.Call) -> bool: | CODE |
| LOW | …e_assistant/checkers/tests/direct_async_setup_entry.py | 35 | def _resolve_integration_async_setup_entry(call: nodes.Call) -> _SetupKind | None: | CODE |
| LOW | …ome_assistant/checkers/actions/service_registration.py | 52 | def _find_service_registrations( | CODE |
| LOW | …/plugins/pylint_home_assistant/helpers/translations.py | 23 | def _load_translations_from_dir(integration_dir: Path) -> dict | None: | CODE |
| LOW | …/plugins/pylint_home_assistant/helpers/translations.py | 61 | def load_translations_for_domain(module: nodes.Module, domain: str) -> dict | None: | CODE |
| LOW⚡ | …/plugins/pylint_home_assistant/helpers/translations.py | 82 | def get_exception_translations(module: nodes.Module) -> dict[str, dict]: | CODE |
| LOW⚡ | …/plugins/pylint_home_assistant/helpers/translations.py | 87 | def get_exception_translations_for_domain( | CODE |
| LOW⚡ | …/plugins/pylint_home_assistant/helpers/translations.py | 94 | def _get_exceptions_from_data(data: dict | None) -> dict[str, dict]: | CODE |
| LOW | …/plugins/pylint_home_assistant/helpers/translations.py | 165 | def resolve_translation_reference(message: str, components_dir: Path | None) -> str: | CODE |
| LOW | …t/plugins/pylint_home_assistant/helpers/integration.py | 42 | def get_tested_integration_dir(module: nodes.Module) -> Path | None: | CODE |
| LOW | …/plugins/pylint_home_assistant/helpers/entity_class.py | 18 | def inherits_from_light_entity(class_node: nodes.ClassDef) -> bool: | CODE |
| LOW | …/plugins/pylint_home_assistant/helpers/entity_class.py | 36 | def resolve_entity_description_class(call: nodes.Call) -> nodes.ClassDef | None: | CODE |
| LOW | …/plugins/pylint_home_assistant/helpers/entity_class.py | 47 | def collect_same_module_ancestor_qnames(module: nodes.Module) -> set[str]: | CODE |
| LOW | …plugins/pylint_home_assistant/helpers/quality_scale.py | 14 | def clear_quality_scale_cache() -> None: | CODE |
| LOW | …plugins/pylint_home_assistant/helpers/quality_scale.py | 54 | def quality_scale_rule_is_done(module: nodes.Module, rule: str) -> bool: | CODE |
| LOW | …plugins/pylint_home_assistant/helpers/quality_scale.py | 62 | def quality_scale_rule_is_done_or_exempt(module: nodes.Module, rule: str) -> bool: | CODE |
| LOW | homeassistant/bootstrap.py | 444 | def _init_blocking_io_modules_in_executor() -> None: | CODE |
| LOW | homeassistant/bootstrap.py | 461 | async def async_load_base_functionality(hass: core.HomeAssistant) -> bool: | CODE |
| LOW | homeassistant/bootstrap.py | 685 | def _log_file_disabled_reason() -> str | None: | CODE |
| LOW | homeassistant/bootstrap.py | 763 | async def _async_resolve_domains_and_preload( | CODE |
| 42086 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …nt_home_assistant/checkers/tests/direct_async_setup.py | 0 | record whether the current module is a test module. | STRING |
| HIGH | …assistant/checkers/tests/direct_async_migrate_entry.py | 0 | record whether the current module is a test module. | STRING |
| HIGH | …_assistant/checkers/tests/direct_async_unload_entry.py | 0 | record whether the current module is a test module. | STRING |
| HIGH | …e_assistant/checkers/tests/direct_async_setup_entry.py | 0 | record whether the current module is a test module. | STRING |
| HIGH | homeassistant/config_entries.py | 0 | return the underlying values to avoid __iter__ overhead. | STRING |
| HIGH | homeassistant/core.py | 0 | return the underlying values to avoid __iter__ overhead. | STRING |
| HIGH | homeassistant/helpers/registry.py | 0 | return the underlying values to avoid __iter__ overhead. | STRING |
| HIGH | homeassistant/auth/mfa_modules/totp.py | 0 | return a data entry flow handler for setup module. mfa module should extend setupflow | STRING |
| HIGH | homeassistant/auth/mfa_modules/__init__.py | 0 | return a data entry flow handler for setup module. mfa module should extend setupflow | STRING |
| HIGH | homeassistant/auth/mfa_modules/notify.py | 0 | return a data entry flow handler for setup module. mfa module should extend setupflow | STRING |
| HIGH | homeassistant/auth/mfa_modules/insecure_example.py | 0 | return a data entry flow handler for setup module. mfa module should extend setupflow | STRING |
| HIGH | …sistant/components/tesla_wall_connector/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/intellifire/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/opengarage/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/system_bridge/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/rympro/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | …nents/google_generative_ai_conversation/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/mutesync/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/suez_water/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/fibaro/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | …ssistant/components/devolo_home_network/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/bosch_alarm/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/teltonika/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/centriconnect/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/ptdevices/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/prusalink/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/airobot/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/anthropic/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/saunum/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | …ssistant/components/openai_conversation/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | …meassistant/components/evil_genius_labs/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | …ssistant/components/azure_data_explorer/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/tractive/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | …ffold/templates/config_flow/integration/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/powerwall/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/somfy_mylink/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/foscam/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/huisbaasje/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/flume/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/nws/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/canary/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/srp_energy/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/elkm1/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/airnow/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/monoprice/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | …ssistant/components/aurora_abb_powerone/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | …meassistant/components/ruckus_unleashed/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/harmony/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/cloudflare/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | …tant/components/hunterdouglas_powerview/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/sense/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/isy994/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/vilfo/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/nuheat/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/triggercmd/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/ipp/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | …eassistant/components/smart_meter_texas/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/roomba/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | …assistant/components/moehlenhoff_alpha2/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| HIGH | homeassistant/components/lidarr/config_flow.py | 0 | validate the user input allows us to connect. data has the keys from _base_schema with values provided by the user. | STRING |
| 3229 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …home_assistant/checkers/entity_description_defaults.py | 72 | def _update_defaults(defaults: dict[str, object], class_node: nodes.ClassDef) -> None: | CODE |
| LOW | homeassistant/config_entries.py | 1732 | def _set_pending_import_done(self, flow: ConfigFlow) -> None: | CODE |
| LOW | homeassistant/config_entries.py | 2153 | def update_unique_id(self, entry: ConfigEntry, new_unique_id: str | None) -> None: | CODE |
| LOW | homeassistant/core.py | 465 | def set_state(self, state: CoreState) -> None: | CODE |
| LOW | homeassistant/util/dt.py | 82 | def set_default_time_zone(time_zone: dt.tzinfo) -> None: | CODE |
| LOW | homeassistant/util/resource.py | 14 | def set_open_file_descriptor_limit() -> None: | CODE |
| LOW | homeassistant/util/ulid.py | 13 | __all__ = [ | CODE |
| LOW | homeassistant/util/yaml/__init__.py | 9 | __all__ = [ | CODE |
| LOW | homeassistant/util/yaml/dumper.py | 5 | __all__ = ["add_representer", "dump", "represent_odict", "save_yaml"] | CODE |
| LOW | homeassistant/util/yaml/loader.py | 23 | __all__ = [ | CODE |
| LOW | homeassistant/util/yaml/input.py | 7 | __all__ = ["Input", "UndefinedSubstitution", "extract_inputs", "substitute"] | CODE |
| LOW | homeassistant/util/yaml/objects.py | 5 | __all__ = ["Input", "NodeDictClass", "NodeListClass", "NodeStrClass"] | CODE |
| LOW | homeassistant/auth/jwt_wrapper.py | 142 | __all__ = [ | CODE |
| LOW | homeassistant/auth/auth_store.py | 596 | def _set_defaults(self) -> None: | CODE |
| LOW | homeassistant/auth/permissions/__init__.py | 20 | __all__ = [ | CODE |
| LOW | homeassistant/components/buienradar/util.py | 39 | __all__ = ["BrData"] | CODE |
| LOW | homeassistant/components/smlight/update.py | 205 | def _update_progress(self, progress: MessageEvent) -> None: | CODE |
| LOW | homeassistant/components/smlight/update.py | 212 | def _update_done(self) -> None: | CODE |
| LOW | homeassistant/components/smlight/update.py | 225 | def _update_finished(self, event: MessageEvent) -> None: | CODE |
| LOW | homeassistant/components/smlight/update.py | 231 | def _update_failed(self, event: MessageEvent) -> None: | CODE |
| LOW | homeassistant/components/smlight/coordinator.py | 174 | def update_setting(self, setting: Settings, value: bool | int) -> None: | CODE |
| LOW | homeassistant/components/smlight/coordinator.py | 182 | def update_ambilight(self, changes: dict) -> None: | CODE |
| LOW | homeassistant/components/smlight/switch.py | 107 | async def set_smlight(self, state: bool) -> None: | CODE |
| LOW | homeassistant/components/blink/sensor.py | 103 | def _update_attr(self) -> None: | CODE |
| LOW | homeassistant/components/blink/alarm_control_panel.py | 76 | def _update_attr(self) -> None: | CODE |
| LOW | homeassistant/components/blink/binary_sensor.py | 98 | def _update_attrs(self) -> None: | CODE |
| LOW | homeassistant/components/demo/fan.py | 160 | def set_percentage(self, percentage: int) -> None: | CODE |
| LOW | homeassistant/components/demo/fan.py | 179 | def set_preset_mode(self, preset_mode: str) -> None: | CODE |
| LOW | homeassistant/components/demo/fan.py | 208 | def set_direction(self, direction: str) -> None: | CODE |
| LOW | homeassistant/components/demo/media_player.py | 144 | def set_volume_level(self, volume: float) -> None: | CODE |
| LOW | homeassistant/components/demo/media_player.py | 168 | def set_shuffle(self, shuffle: bool) -> None: | CODE |
| LOW | homeassistant/components/demo/media_player.py | 334 | def set_repeat(self, repeat: RepeatMode) -> None: | CODE |
| LOW | homeassistant/components/demo/weather.py | 177 | async def update_forecasts(_: datetime) -> None: | CODE |
| LOW | homeassistant/components/demo/vacuum.py | 162 | def set_fan_speed(self, fan_speed: str, **kwargs: Any) -> None: | CODE |
| LOW | homeassistant/components/demo/water_heater.py | 93 | def set_temperature(self, **kwargs: Any) -> None: | CODE |
| LOW | homeassistant/components/demo/water_heater.py | 99 | def set_operation_mode(self, operation_mode: str) -> None: | CODE |
| LOW | homeassistant/components/deconz/hub/__init__.py | 6 | __all__ = ["DeconzHub", "get_deconz_api"] | CODE |
| LOW | homeassistant/components/statistics/sensor.py | 1090 | def _update_extra_state_attributes(self) -> None: | CODE |
| LOW | homeassistant/components/statistics/sensor.py | 1106 | def _update_value(self) -> None: | CODE |
| LOW | homeassistant/components/statistics/__init__.py | 23 | def set_source_entity_id_or_uuid(source_entity_id: str) -> None: | CODE |
| LOW | homeassistant/components/soundtouch/media_player.py | 158 | def set_volume_level(self, volume: float) -> None: | CODE |
| LOW | homeassistant/components/no_ip/__init__.py | 78 | async def update_domain_interval(now: datetime) -> None: | CODE |
| LOW | homeassistant/components/min_max/sensor.py | 355 | def _update_device_class(self) -> None: | CODE |
| LOW | homeassistant/components/nextcloud/coordinator.py | 76 | def _update_data() -> None: | CODE |
| LOW | homeassistant/components/ambient_station/sensor.py | 777 | def update_from_latest_data(self) -> None: | CODE |
| LOW | homeassistant/components/ambient_station/entity.py | 71 | def update_from_latest_data(self) -> None: | CODE |
| LOW | …eassistant/components/ambient_station/binary_sensor.py | 404 | def update_from_latest_data(self) -> None: | CODE |
| LOW | homeassistant/components/vibration/__init__.py | 10 | __all__ = [] | CODE |
| LOW | …meassistant/components/geonetnz_quakes/geo_location.py | 125 | def _update_callback(self) -> None: | CODE |
| LOW | …meassistant/components/geonetnz_quakes/geo_location.py | 136 | def _update_from_feed(self, feed_entry: GeonetnzQuakesFeedEntry) -> None: | CODE |
| LOW | homeassistant/components/power/__init__.py | 10 | __all__ = [] | CODE |
| LOW | homeassistant/components/omie/coordinator.py | 55 | def _set_update_interval(self) -> None: | CODE |
| LOW | homeassistant/components/ads/cover.py | 159 | def set_cover_position(self, **kwargs: Any) -> None: | CODE |
| LOW | homeassistant/components/labs/__init__.py | 38 | __all__ = [ | CODE |
| LOW | …meassistant/components/geo_json_events/geo_location.py | 88 | def _update_callback(self) -> None: | CODE |
| LOW | …meassistant/components/geo_json_events/geo_location.py | 99 | def _update_from_feed(self, feed_entry: GenericFeedEntry) -> None: | CODE |
| LOW | homeassistant/components/geo_json_events/manager.py | 100 | async def _update_entity(self, external_id: str) -> None: | CODE |
| LOW | homeassistant/components/hydrawise/sensor.py | 217 | def _update_attrs(self) -> None: | CODE |
| LOW | homeassistant/components/hydrawise/switch.py | 109 | def _update_attrs(self) -> None: | CODE |
| LOW | homeassistant/components/hydrawise/entity.py | 80 | def _update_attrs(self) -> None: | CODE |
| 1391 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | homeassistant/components/deconz/cover.py | 96 | await self.hub.api.lights.covers.set_state( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/cover.py | 105 | await self.hub.api.lights.covers.set_state( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/cover.py | 114 | await self.hub.api.lights.covers.set_state( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/cover.py | 123 | await self.hub.api.lights.covers.set_state( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/cover.py | 141 | await self.hub.api.lights.covers.set_state( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/cover.py | 150 | await self.hub.api.lights.covers.set_state( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/cover.py | 159 | await self.hub.api.lights.covers.set_state( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/cover.py | 168 | await self.hub.api.lights.covers.set_state( | CODE |
| CRITICAL | homeassistant/components/deconz/fan.py | 105 | await self.hub.api.lights.lights.set_state( | CODE |
| CRITICAL | homeassistant/components/deconz/fan.py | 123 | await self.hub.api.lights.lights.set_state( | CODE |
| CRITICAL | homeassistant/components/deconz/fan.py | 131 | await self.hub.api.lights.lights.set_state( | CODE |
| CRITICAL | homeassistant/components/deconz/switch.py | 57 | await self.hub.api.lights.lights.set_state( | CODE |
| CRITICAL | homeassistant/components/deconz/switch.py | 65 | await self.hub.api.lights.lights.set_state( | CODE |
| CRITICAL | homeassistant/components/deconz/button.py | 128 | await self.hub.api.sensors.presence.set_config( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/lock.py | 65 | await self.hub.api.sensors.door_lock.set_config( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/lock.py | 70 | await self.hub.api.lights.locks.set_state( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/lock.py | 79 | await self.hub.api.sensors.door_lock.set_config( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/lock.py | 84 | await self.hub.api.lights.locks.set_state( | CODE |
| CRITICAL | homeassistant/components/deconz/select.py | 98 | await self.hub.api.sensors.air_purifier.set_config( | CODE |
| CRITICAL | homeassistant/components/deconz/select.py | 130 | await self.hub.api.sensors.presence.set_config( | CODE |
| CRITICAL | homeassistant/components/deconz/select.py | 159 | await self.hub.api.sensors.presence.set_config( | CODE |
| CRITICAL | homeassistant/components/deconz/select.py | 192 | await self.hub.api.sensors.presence.set_config( | CODE |
| CRITICAL | homeassistant/components/deconz/climate.py | 151 | await self.hub.api.sensors.thermostat.set_config( | CODE |
| CRITICAL | homeassistant/components/deconz/climate.py | 171 | await self.hub.api.sensors.thermostat.set_config( | CODE |
| CRITICAL | homeassistant/components/deconz/climate.py | 176 | await self.hub.api.sensors.thermostat.set_config( | CODE |
| CRITICAL⚡ | homeassistant/components/deconz/climate.py | 213 | await self.hub.api.sensors.thermostat.set_config( | CODE |
| CRITICAL | homeassistant/components/deconz/climate.py | 245 | await self.hub.api.sensors.thermostat.set_config( | CODE |
| CRITICAL | homeassistant/components/deconz/climate.py | 250 | await self.hub.api.sensors.thermostat.set_config( | CODE |
| CRITICAL | homeassistant/components/deconz/siren.py | 63 | await self.hub.api.lights.sirens.set_state( | CODE |
| CRITICAL | homeassistant/components/deconz/siren.py | 72 | await self.hub.api.lights.sirens.set_state( | CODE |
| CRITICAL | homeassistant/components/hydrawise/sensor.py | 121 | sensor.zone.scheduled_runs.current_run.remaining_time.total_seconds() | CODE |
| CRITICAL | homeassistant/components/indi_allsky/sensor.py | 390 | return self.coordinator.data.sensor.sensors.get(self._sensor_key) | CODE |
| CRITICAL | homeassistant/components/meteo_france/__init__.py | 110 | department = entry.runtime_data.forecast_coordinator.data.position.get("dept") | CODE |
| CRITICAL⚡ | homeassistant/components/adguard/services.py | 70 | await entry.runtime_data.client.filtering.blocklists.add( | CODE |
| CRITICAL⚡ | homeassistant/components/adguard/services.py | 80 | await entry.runtime_data.client.filtering.blocklists.remove( | CODE |
| CRITICAL⚡ | homeassistant/components/adguard/services.py | 90 | await entry.runtime_data.client.filtering.blocklists.enable( | CODE |
| CRITICAL⚡ | homeassistant/components/adguard/services.py | 100 | await entry.runtime_data.client.filtering.blocklists.disable( | CODE |
| CRITICAL | homeassistant/components/adguard/services.py | 112 | await entry.runtime_data.client.filtering.blocklists.refresh() | CODE |
| CRITICAL | homeassistant/components/xbox/diagnostics.py | 32 | for person in config_entry.runtime_data.presence.data.presence.values() | CODE |
| CRITICAL | homeassistant/components/xbox/diagnostics.py | 49 | for title in config_entry.runtime_data.presence.data.title_info.values() | CODE |
| CRITICAL | homeassistant/components/wled/select.py | 196 | if (segment := self.coordinator.data.state.segments.get(self._segment)) is None: | CODE |
| CRITICAL | homeassistant/components/sendgrid/notify.py | 76 | response = self._sg.client.mail.send.post(request_body=data) | CODE |
| CRITICAL | homeassistant/components/wattwaechter/sensor.py | 476 | obis = self.coordinator.data.meter.values.get(self._obis_code) | CODE |
| CRITICAL | homeassistant/components/wattwaechter/sensor.py | 514 | obis = self.coordinator.data.meter.values.get(self._obis_code) | CODE |
| CRITICAL | homeassistant/components/tolo/entity.py | 24 | model=self.coordinator.data.status.model.name.capitalize(), | CODE |
| CRITICAL | homeassistant/components/isy994/event.py | 152 | self._change_handler = self._node.isy.nodes.status_events.subscribe( | CODE |
| CRITICAL | homeassistant/components/isy994/sensor.py | 381 | self._availability_handler = self._node.isy.nodes.status_events.subscribe( | CODE |
| CRITICAL | homeassistant/components/isy994/number.py | 273 | self._memory_change_handler = self._node.isy.nodes.status_events.subscribe( | CODE |
| CRITICAL | homeassistant/components/isy994/switch.py | 169 | self._change_handler = self._node.isy.nodes.status_events.subscribe( | CODE |
| CRITICAL | homeassistant/components/isy994/button.py | 122 | self._availability_handler = self._node.isy.nodes.status_events.subscribe( | CODE |
| CRITICAL | homeassistant/components/isy994/entity.py | 258 | self._availability_handler = self._node.isy.nodes.status_events.subscribe( | CODE |
| CRITICAL | homeassistant/components/isy994/select.py | 184 | self._memory_change_handler = self._node.isy.nodes.status_events.subscribe( | CODE |
| CRITICAL | homeassistant/components/awair/config_flow.py | 128 | self.hass.config_entries.flow._handler_progress_index.get(DOMAIN) or set(), # noqa: SLF001 | CODE |
| CRITICAL | homeassistant/components/flow_it/sensor.py | 108 | value_fn=lambda data: data.data.filter.hepa.status.name.lower(), | CODE |
| CRITICAL | homeassistant/components/flow_it/sensor.py | 116 | value_fn=lambda data: data.data.filter.g4.status.name.lower(), | CODE |
| CRITICAL⚡ | homeassistant/components/squeezebox/media_player.py | 306 | self.coordinator.config_entry.runtime_data.known_player_ids.discard( | CODE |
| CRITICAL⚡ | homeassistant/components/squeezebox/media_player.py | 310 | self.coordinator.config_entry.runtime_data.player_coordinators.pop( | CODE |
| CRITICAL | homeassistant/components/volvo/button.py | 105 | result = await self.entry.runtime_data.context.api.async_execute_command( | CODE |
| CRITICAL | homeassistant/components/knx/climate.py | 523 | return self._device.mode.operation_mode.name.lower() | CODE |
| CRITICAL⚡ | homeassistant/components/knx/climate.py | 627 | self._device.mode.xknx.devices.async_add(self._device.mode) | CODE |
| 59 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | homeassistant/config_entries.py | 1463 | # Create an issue, there's no need to hold the lock when doing that | COMMENT |
| MEDIUM | homeassistant/config.py | 480 | # This function is an alternative to the stringification done by | COMMENT |
| MEDIUM | homeassistant/config.py | 1326 | # Create a copy of the configuration with all config for current | COMMENT |
| MEDIUM | homeassistant/util/frozen_dataclass_compat.py | 89 | # This class is a real dataclass, optionally inject the parent's annotations | COMMENT |
| MEDIUM | homeassistant/components/huisbaasje/__init__.py | 17 | # Create the EnergyFlip client | COMMENT |
| MEDIUM | homeassistant/components/huisbaasje/__init__.py | 43 | # Create a coordinator for polling updates | COMMENT |
| MEDIUM | homeassistant/components/izone/climate.py | 123 | # Create the zones | COMMENT |
| MEDIUM | homeassistant/components/pooldose/__init__.py | 62 | # Create the PoolDose API client and connect | COMMENT |
| MEDIUM | homeassistant/components/pglab/discovery.py | 204 | # Create a PGLab device and add entities. | COMMENT |
| MEDIUM | homeassistant/components/pglab/discovery.py | 223 | # Create a new device. | COMMENT |
| MEDIUM | homeassistant/components/pglab/__init__.py | 65 | # Create an MQTT client for PGLab used for PGLab python module. | COMMENT |
| MEDIUM | homeassistant/components/imeon_inverter/__init__.py | 16 | # Create the corresponding HUB | COMMENT |
| MEDIUM | homeassistant/components/imeon_inverter/config_flow.py | 73 | # Create a new configuration entry if login succeeds | COMMENT |
| MEDIUM | homeassistant/components/liebherr/__init__.py | 59 | # Create a coordinator for each device (may be empty if no devices) | COMMENT |
| MEDIUM | homeassistant/components/intellifire/__init__.py | 83 | # Create a Cloud Interface | COMMENT |
| MEDIUM | homeassistant/components/intellifire/config_flow.py | 97 | # Define a cloud api interface we can use | COMMENT |
| MEDIUM | …assistant/components/rituals_perfume_genie/__init__.py | 59 | # Create a coordinator for each diffuser | COMMENT |
| MEDIUM | homeassistant/components/iotawatt/coordinator.py | 54 | # This method is called from each sensor upon their state being restored. | COMMENT |
| MEDIUM | homeassistant/components/telegram_bot/__init__.py | 197 | # Create the bot device before the platforms are set up, so the per-chat devices can | COMMENT |
| MEDIUM | homeassistant/components/homeassistant/services.py | 110 | # Create a new dict for this call | COMMENT |
| MEDIUM | homeassistant/components/homeassistant/triggers/time.py | 210 | # Create a temporary datetime object to get an offset. | COMMENT |
| MEDIUM | homeassistant/components/waqi/__init__.py | 42 | # Create a coordinator for each station subentry | COMMENT |
| MEDIUM | homeassistant/components/assist_pipeline/runtime.py | 47 | # Create a temporary list in case the list is modified while we iterate | COMMENT |
| MEDIUM | …sistant/components/assist_pipeline/default_pipeline.py | 408 | # Create a background task to prepare the conversation agent | COMMENT |
| MEDIUM | homeassistant/components/config/floor_registry.py | 64 | # Create a set for the aliases without: | COMMENT |
| MEDIUM | homeassistant/components/config/floor_registry.py | 122 | # Create a set for the aliases without: | COMMENT |
| MEDIUM | homeassistant/components/config/area_registry.py | 68 | # Create a set for the aliases without: | COMMENT |
| MEDIUM | homeassistant/components/config/area_registry.py | 138 | # Create a set for the aliases without: | COMMENT |
| MEDIUM | homeassistant/components/energy/sensor.py | 286 | # Create a config wrapper that maps the sell price fields to standard names | COMMENT |
| MEDIUM | homeassistant/components/energy/validate.py | 752 | # Create a list of validation checks | COMMENT |
| MEDIUM | homeassistant/components/auth/__init__.py | 97 | ## Create a long-lived access token | STRING |
| MEDIUM | homeassistant/components/local_calendar/calendar.py | 213 | # This function is called with new events created in the local timezone, | COMMENT |
| MEDIUM | homeassistant/components/rehlko/binary_sensor.py | 146 | # Create a synthetic entity description for this loadshed parameter | COMMENT |
| MEDIUM⚡ | homeassistant/components/yale/util.py | 24 | # Create an aiohttp session instead of using the default one since the | COMMENT |
| MEDIUM | homeassistant/components/yale/camera.py | 30 | # Create an aiohttp session instead of using the default one since the | COMMENT |
| MEDIUM | homeassistant/components/google/calendar.py | 163 | # Create a separate calendar for birthdays | COMMENT |
| MEDIUM | homeassistant/components/google/calendar.py | 175 | # Create an optional disabled by default entity for Work Location | COMMENT |
| MEDIUM | homeassistant/components/vegehub/config_flow.py | 81 | # Create a VegeHub object to interact with the device | COMMENT |
| MEDIUM | homeassistant/components/vegehub/config_flow.py | 169 | # Create the config entry for the new device | COMMENT |
| MEDIUM | homeassistant/components/sftp_storage/config_flow.py | 140 | # Create a session using your credentials | COMMENT |
| MEDIUM | homeassistant/components/stream/worker.py | 212 | # Create a fragment every TARGET_PART_DURATION. The data from | COMMENT |
| MEDIUM | homeassistant/components/motionmount/entity.py | 37 | # Create a base unique id | COMMENT |
| MEDIUM | homeassistant/components/zhong_hong/__init__.py | 75 | # Creating the device registers it with the hub, which is what routes the | COMMENT |
| MEDIUM | homeassistant/components/go2rtc/server.py | 32 | _GO2RTC_CONFIG_FORMAT = r"""# This file is managed by Home Assistant | CODE |
| MEDIUM | homeassistant/components/signal_messenger/notify.py | 111 | # Creating the client queries the REST API, which may not be up yet | COMMENT |
| MEDIUM⚡ | homeassistant/components/template/coordinator.py | 140 | # Create a context referring to the trigger context. | COMMENT |
| MEDIUM⚡ | homeassistant/components/template/coordinator.py | 144 | # This method is only called if there's a script | COMMENT |
| MEDIUM | homeassistant/components/template/config.py | 458 | # Create a copy of the configuration with all config for current | COMMENT |
| MEDIUM | homeassistant/components/hp_ilo/sensor.py | 90 | # Create a data fetcher to support all of the configured sensors. Then make | COMMENT |
| MEDIUM | homeassistant/components/sense/__init__.py | 56 | # Creating the AsyncSenseable object loads | COMMENT |
| MEDIUM | homeassistant/components/sense/config_flow.py | 52 | # Creating the AsyncSenseable object loads | COMMENT |
| MEDIUM | homeassistant/components/touchline_sl/__init__.py | 85 | # Create a new Device for each coorodinator to represent each module | COMMENT |
| MEDIUM | homeassistant/components/scrape/__init__.py | 159 | # Create a new sub config entry per sensor | COMMENT |
| MEDIUM | homeassistant/components/cielo_home/coordinator.py | 109 | # Define the ConfigEntry type here to avoid circular imports | COMMENT |
| MEDIUM | homeassistant/components/citybikes/sensor.py | 121 | # Create a single instance of CityBikesNetworks. | COMMENT |
| MEDIUM | homeassistant/components/gtfs/sensor.py | 645 | # Define the state as a UTC timestamp with ISO 8601 format | COMMENT |
| MEDIUM | homeassistant/components/generic_thermostat/climate.py | 677 | # Create a child context for the switch service call so we can | COMMENT |
| MEDIUM | homeassistant/components/generic_thermostat/climate.py | 706 | # Create a child context for the switch service call so we can | COMMENT |
| MEDIUM | homeassistant/components/script/config.py | 306 | # Create a copy of the configuration with all config for current | COMMENT |
| MEDIUM⚡ | homeassistant/components/notion/coordinator.py | 62 | # Define a dict of bridges, indexed by bridge ID (an integer): | COMMENT |
| 297 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | homeassistant/bootstrap.py | 22 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 40 | CODE | |
| LOW | homeassistant/bootstrap.py | 64 | CODE | |
| LOW | homeassistant/bootstrap.py | 116 | CODE | |
| LOW | homeassistant/bootstrap.py | 121 | CODE | |
| LOW | homeassistant/setup.py | 16 | CODE | |
| LOW | homeassistant/util/percentage.py | 3 | CODE | |
| LOW | homeassistant/util/percentage.py | 3 | CODE | |
| LOW | homeassistant/util/ulid.py | 3 | CODE | |
| LOW | homeassistant/util/ulid.py | 3 | CODE | |
| LOW | homeassistant/util/ulid.py | 3 | CODE | |
| LOW | homeassistant/util/ulid.py | 3 | CODE | |
| LOW | homeassistant/util/ulid.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 4 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 4 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 4 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 6 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 6 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 7 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 7 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 7 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 7 | CODE | |
| LOW | homeassistant/util/yaml/__init__.py | 7 | CODE | |
| LOW | homeassistant/util/yaml/dumper.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/dumper.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/dumper.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/dumper.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/loader.py | 8 | CODE | |
| LOW | homeassistant/util/yaml/loader.py | 8 | CODE | |
| LOW | homeassistant/util/yaml/input.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/input.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/input.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/input.py | 5 | CODE | |
| LOW | homeassistant/util/yaml/objects.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/objects.py | 3 | CODE | |
| LOW | homeassistant/util/yaml/objects.py | 3 | CODE | |
| 1166 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …int_home_assistant/checkers/tests/registry_fixtures.py | 71 | except Exception: # noqa: BLE001 - defensive: lookup can raise on odd ASTs | CODE |
| LOW | …ome_assistant/checkers/actions/swallowed_exceptions.py | 208 | except Exception: # noqa: BLE001 | CODE |
| LOW | homeassistant/data_entry_flow.py | 473 | except Exception: | CODE |
| LOW | homeassistant/config_entries.py | 1151 | except Exception as exc: | CODE |
| LOW | homeassistant/config_entries.py | 1206 | except Exception: | CODE |
| LOW | homeassistant/config_entries.py | 1397 | except Exception: | CODE |
| LOW | homeassistant/config.py | 599 | except Exception: | CODE |
| LOW | homeassistant/config.py | 1106 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | homeassistant/config.py | 1190 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | homeassistant/config.py | 1217 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | homeassistant/config.py | 1254 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | homeassistant/core_config.py | 899 | except Exception: | CODE |
| LOW | homeassistant/core.py | 1247 | except Exception: | CODE |
| LOW | homeassistant/core.py | 1672 | except Exception: | CODE |
| LOW | homeassistant/core.py | 1687 | except Exception: | CODE |
| LOW | homeassistant/core.py | 3000 | except Exception: | CODE |
| LOW | homeassistant/setup.py | 620 | except Exception: | CODE |
| LOW | homeassistant/requirements.py | 240 | except Exception as ex: # noqa: BLE001 | CODE |
| LOW⚡ | homeassistant/loader.py | 1405 | except Exception: | CODE |
| LOW | homeassistant/loader.py | 1152 | except Exception as err: | CODE |
| LOW | homeassistant/loader.py | 1357 | except Exception as err: | CODE |
| LOW | homeassistant/loader.py | 1598 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | homeassistant/loader.py | 1690 | except Exception as exc: | CODE |
| LOW | homeassistant/backup_restore.py | 203 | except Exception as err: | CODE |
| LOW | homeassistant/util/logging.py | 178 | except Exception: # noqa: BLE001 | CODE |
| LOW | homeassistant/util/logging.py | 188 | except Exception: # noqa: BLE001 | CODE |
| LOW | homeassistant/util/logging.py | 199 | except Exception: # noqa: BLE001 | CODE |
| LOW | homeassistant/util/logging.py | 251 | except Exception: # noqa: BLE001 | CODE |
| LOW | homeassistant/util/thread.py | 34 | except Exception as err: # noqa: BLE001 | CODE |
| LOW | homeassistant/util/async_.py | 78 | except Exception as exc: | CODE |
| LOW | …stant/components/nederlandse_spoorwegen/config_flow.py | 54 | except Exception: | CODE |
| LOW | …sistant/components/tesla_wall_connector/config_flow.py | 158 | except Exception: | CODE |
| LOW | homeassistant/components/syncthing/config_flow.py | 38 | except Exception as error: | CODE |
| LOW | homeassistant/components/blink/coordinator.py | 55 | except Exception as ex: | CODE |
| LOW | homeassistant/components/blink/config_flow.py | 82 | except Exception: | CODE |
| LOW | homeassistant/components/blink/config_flow.py | 111 | except Exception: | CODE |
| LOW | homeassistant/components/blink/config_flow.py | 147 | except Exception: | CODE |
| LOW | homeassistant/components/blink/config_flow.py | 181 | except Exception: | CODE |
| LOW | homeassistant/components/intelliclima/config_flow.py | 56 | except Exception: # noqa: BLE001 | CODE |
| LOW | homeassistant/components/webhook/__init__.py | 213 | except Exception: | CODE |
| LOW | homeassistant/components/aseko_pool_live/config_flow.py | 57 | except Exception: | CODE |
| LOW | homeassistant/components/aseko_pool_live/config_flow.py | 115 | except Exception: | CODE |
| LOW | homeassistant/components/zeversolar/config_flow.py | 50 | except Exception: | CODE |
| LOW | homeassistant/components/firefly_iii/config_flow.py | 76 | except Exception: | CODE |
| LOW | homeassistant/components/firefly_iii/config_flow.py | 115 | except Exception: | CODE |
| LOW | homeassistant/components/firefly_iii/config_flow.py | 154 | except Exception: | CODE |
| LOW | homeassistant/components/labs/websocket_api.py | 91 | except Exception as err: # noqa: BLE001 - websocket handlers can catch broad exceptions | CODE |
| LOW | homeassistant/components/powerwall/config_flow.py | 219 | except Exception as ex: | CODE |
| LOW | homeassistant/components/flipr/config_flow.py | 49 | except Exception: | CODE |
| LOW | homeassistant/components/anglian_water/config_flow.py | 61 | except Exception: | CODE |
| LOW | homeassistant/components/anglian_water/config_flow.py | 127 | except Exception: | CODE |
| LOW | homeassistant/components/anglian_water/config_flow.py | 141 | except Exception: | CODE |
| LOW | homeassistant/components/hydrawise/config_flow.py | 123 | except Exception: # noqa: BLE001 | CODE |
| LOW | homeassistant/components/foscam/config_flow.py | 118 | except Exception: # noqa: BLE001 | CODE |
| LOW | homeassistant/components/fully_kiosk/config_flow.py | 51 | except Exception as error: | CODE |
| LOW | homeassistant/components/renault/config_flow.py | 68 | except Exception: | CODE |
| LOW | homeassistant/components/notify/legacy.py | 122 | except Exception: # noqa: BLE001 | CODE |
| LOW | homeassistant/components/indi_allsky/config_flow.py | 85 | except Exception as err: | CODE |
| LOW | homeassistant/components/indi_allsky/config_flow.py | 117 | except Exception: | CODE |
| LOW | homeassistant/components/huisbaasje/config_flow.py | 50 | except Exception: | CODE |
| 918 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ins/pylint_home_assistant/checkers/greek_micro_char.py | 39 | CODE | |
| LOW | …ns/pylint_home_assistant/checkers/flow_translations.py | 92 | CODE | |
| LOW | …ns/pylint_home_assistant/checkers/flow_translations.py | 291 | CODE | |
| LOW | …ns/pylint_home_assistant/checkers/flow_translations.py | 407 | CODE | |
| LOW | …ns/pylint_home_assistant/checkers/flow_translations.py | 443 | CODE | |
| LOW | …nt_home_assistant/checkers/sequential_executor_jobs.py | 72 | CODE | |
| LOW | …lint/plugins/pylint_home_assistant/checkers/imports.py | 335 | CODE | |
| LOW | …lint/plugins/pylint_home_assistant/checkers/imports.py | 363 | CODE | |
| LOW | …lint_home_assistant/checkers/exception_translations.py | 56 | CODE | |
| LOW | …gins/pylint_home_assistant/checkers/duplicate_const.py | 19 | CODE | |
| LOW | …me_assistant/checkers/quality_scale/has_entity_name.py | 96 | CODE | |
| LOW | …home_assistant/checkers/config_flow/unique_id_no_ip.py | 127 | CODE | |
| LOW | …home_assistant/checkers/config_flow/unique_id_no_ip.py | 51 | CODE | |
| LOW | …home_assistant/checkers/tests/redundant_usefixtures.py | 48 | CODE | |
| LOW | …home_assistant/checkers/tests/redundant_usefixtures.py | 86 | CODE | |
| LOW | …ome_assistant/checkers/actions/swallowed_exceptions.py | 93 | CODE | |
| LOW | …ome_assistant/checkers/actions/service_registration.py | 52 | CODE | |
| LOW | …gins/pylint_home_assistant/checkers/actions/helpers.py | 33 | CODE | |
| LOW | …ylint_home_assistant/checkers/type_hints/validators.py | 157 | CODE | |
| LOW | …/pylint_home_assistant/checkers/type_hints/__init__.py | 116 | CODE | |
| LOW | pylint/plugins/pylint_home_assistant/helpers/icons.py | 43 | CODE | |
| LOW | …/plugins/pylint_home_assistant/helpers/translations.py | 23 | CODE | |
| LOW | …/plugins/pylint_home_assistant/helpers/translations.py | 138 | CODE | |
| LOW | homeassistant/bootstrap.py | 311 | CODE | |
| LOW | homeassistant/bootstrap.py | 577 | CODE | |
| LOW | homeassistant/data_entry_flow.py | 345 | CODE | |
| LOW | homeassistant/runner.py | 79 | CODE | |
| LOW | homeassistant/setup.py | 276 | CODE | |
| LOW | homeassistant/requirements.py | 246 | CODE | |
| LOW | homeassistant/loader.py | 1439 | CODE | |
| LOW | homeassistant/loader.py | 1181 | CODE | |
| LOW | homeassistant/backup_restore.py | 96 | CODE | |
| LOW | homeassistant/util/color.py | 313 | CODE | |
| LOW | homeassistant/auth/auth_store.py | 312 | CODE | |
| LOW | homeassistant/components/buienradar/sensor.py | 786 | CODE | |
| LOW | homeassistant/components/smlight/update.py | 182 | CODE | |
| LOW | homeassistant/components/smlight/update.py | 243 | CODE | |
| LOW | homeassistant/components/smlight/config_flow.py | 75 | CODE | |
| LOW | homeassistant/components/smlight/config_flow.py | 103 | CODE | |
| LOW | homeassistant/components/smlight/config_flow.py | 165 | CODE | |
| LOW | homeassistant/components/deconz/sensor.py | 423 | CODE | |
| LOW | homeassistant/components/deconz/deconz_event.py | 56 | CODE | |
| LOW | homeassistant/components/deconz/deconz_event.py | 60 | CODE | |
| LOW | homeassistant/components/statistics/sensor.py | 842 | CODE | |
| LOW | homeassistant/components/soundtouch/services.py | 43 | CODE | |
| LOW | homeassistant/components/wiim/media_player.py | 507 | CODE | |
| LOW | homeassistant/components/wiim/media_player.py | 767 | CODE | |
| LOW | homeassistant/components/ads/cover.py | 88 | CODE | |
| LOW | …meassistant/components/here_travel_time/coordinator.py | 374 | CODE | |
| LOW | homeassistant/components/powerwall/config_flow.py | 140 | CODE | |
| LOW | homeassistant/components/anglian_water/coordinator.py | 98 | CODE | |
| LOW | homeassistant/components/hydrawise/coordinator.py | 129 | CODE | |
| LOW | homeassistant/components/notify/legacy.py | 66 | CODE | |
| LOW | homeassistant/components/notify/legacy.py | 73 | CODE | |
| LOW | homeassistant/components/izone/diagnostics.py | 20 | CODE | |
| LOW | homeassistant/components/izone/__init__.py | 135 | CODE | |
| LOW | homeassistant/components/control4/cover.py | 44 | CODE | |
| LOW | homeassistant/components/control4/light.py | 34 | CODE | |
| LOW | homeassistant/components/control4/media_player.py | 75 | CODE | |
| LOW | homeassistant/components/smartthings/sensor.py | 1327 | CODE | |
| 921 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | homeassistant/components/auth/login_flow.py | 10 | "id": null, | STRING |
| HIGH | homeassistant/components/auth/login_flow.py | 32 | "handler": ["local_provider", null], | STRING |
| HIGH | homeassistant/components/auth/login_flow.py | 49 | "handler": ["insecure_example", null], | STRING |
| HIGH | homeassistant/components/auth/login_flow.py | 64 | "handler": ["insecure_example", null], | STRING |
| HIGH | homeassistant/components/rainmachine/sensor.py | 343 | # Timestamp may return 0 instead of null, explicitly set to None | COMMENT |
| HIGH | homeassistant/components/matter/models.py | 154 | # for example to filter out invalid values (such as empty string instead of null) | COMMENT |
| HIGH⚡ | homeassistant/components/maxcube/climate.py | 146 | Both parameters are optional. When mode is undefined, it keeps | STRING |
| HIGH⚡ | homeassistant/components/maxcube/climate.py | 147 | the previous mode. When temp is undefined, it fetches the | STRING |
| HIGH | homeassistant/components/nut/__init__.py | 342 | # a driver formatting a missing C string reports the literal (null) | COMMENT |
| HIGH | homeassistant/components/nut/__init__.py | 343 | return {key: value for key, value in status.items() if value != "(null)"} | CODE |
| HIGH | tests/test_core.py | 1116 | b'"context":{"id":"01H0D6K3RFJAYAV2093ZW30PCW","parent_id":null,"user_id":null}}' | CODE |
| HIGH | tests/components/template/test_light.py | 1018 | (None, "[{{(360)}},{{null}}]", ColorMode.HS), | CODE |
| HIGH | tests/components/matter/test_sensor.py | 927 | # Test setting to 0 (invalid/null) - should result in unknown state | COMMENT |
| HIGH | tests/components/matter/test_number.py | 82 | # Set a concrete value (not null) | COMMENT |
| HIGH | tests/components/matter/test_number.py | 547 | # (null) on the device. | COMMENT |
| HIGH | tests/components/pvpc_hourly_pricing/conftest.py | 77 | '"values_updated_at":null,"values":[]}}' | CODE |
| HIGH⚡ | tests/components/tasmota/test_config_flow.py | 37 | '"fn":["Tasmota",null,null,null,null,' | CODE |
| HIGH⚡ | tests/components/tasmota/test_config_flow.py | 38 | 'null,null,null],"hn":"tasmota_0848A2",' | CODE |
| HIGH⚡ | tests/components/tasmota/test_config_flow.py | 43 | '"swn":[null,null,null,null,null,null,null,null],"btn":[0,0,0,0,0,0,0,0],' | CODE |
| HIGH⚡ | tests/components/tasmota/test_config_flow.py | 76 | '"fn":["Tasmota",null,null,null,null,' | CODE |
| HIGH⚡ | tests/components/tasmota/test_config_flow.py | 77 | 'null,null,null],"hn":"tasmota_0848A2",' | CODE |
| HIGH⚡ | tests/components/tasmota/test_config_flow.py | 82 | '"swn":[null,null,null,null,null,null,null,null],"btn":[0,0,0,0,0,0,0,0],' | CODE |
| HIGH⚡ | tests/components/tasmota/test_config_flow.py | 103 | '"fn":["Tasmota",null,null,null,null,' | CODE |
| HIGH⚡ | tests/components/tasmota/test_config_flow.py | 104 | 'null,null,null],"hn":"tasmota_0848A2",' | CODE |
| HIGH⚡ | tests/components/tasmota/test_config_flow.py | 109 | '"swn":[null,null,null,null,null,null,null,null],"btn":[0,0,0,0,0,0,0,0],' | CODE |
| HIGH | tests/components/victron_gx/test_time.py | 106 | '{"value": null}', | CODE |
| HIGH | tests/components/victron_gx/test_number.py | 128 | await inject_message(victron_hub, topic, '{"value": null}') | CODE |
| HIGH | tests/components/roborock/mock_data.py | 161 | '{"max": 100, "min": 0, "step": 1, "unit": null, "scale": 1}' | CODE |
| HIGH | tests/components/roborock/mock_data.py | 172 | '{"max": 100, "min": 0, "step": 1, "unit": null, "scale": 1}' | CODE |
| HIGH | tests/components/roborock/mock_data.py | 183 | '{"max": 100, "min": 0, "step": 1, "unit": null, "scale": 1}' | CODE |
| HIGH | tests/components/nightscout/__init__.py | 24 | '{"status":"ok","name":"nightscout","version":"13.0.1","serverTime":"2020-08-05T18:14:02.032Z","serverTimeEpoch" | CODE |
| HIGH | tests/components/nightscout/__init__.py | 73 | '{"advanced":true,"days":1}},"authorized":null}' | CODE |
| HIGH | tests/components/intent_script/test_init.py | 188 | "reprompt": {"text": "{{ null }}"}, | CODE |
| HIGH | tests/components/mqtt/test_device_tracker.py | 482 | hass, "attributes-topic", '{"longitude": -117.22743, "latitude":null}' | CODE |
| HIGH | tests/components/mqtt/test_device_tracker.py | 524 | '{"latitude": null,"longitude": "-117.22743",' | CODE |
| HIGH | tests/components/mqtt/test_device_tracker.py | 780 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH | tests/components/mqtt/test_water_heater.py | 1269 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH | tests/components/mqtt/test_time.py | 589 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH | tests/components/mqtt/test_light_template.py | 1551 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH | tests/components/mqtt/test_light_template.py | 1582 | async_fire_mqtt_message(hass, "test-topic", '{"r": 255, "g": 255, "b": null }') | CODE |
| HIGH | tests/components/mqtt/test_select.py | 163 | async_fire_mqtt_message(hass, "test/select_stat", '{"val": null}') | CODE |
| HIGH | tests/components/mqtt/test_select.py | 862 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH | tests/components/mqtt/test_siren.py | 195 | async_fire_mqtt_message(hass, "state-topic", '{"val": null }') | CODE |
| HIGH | tests/components/mqtt/test_siren.py | 1138 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH | tests/components/mqtt/test_light_json.py | 441 | async_fire_mqtt_message(hass, "test_light_rgb", '{"state": null}') | CODE |
| HIGH | tests/components/mqtt/test_light_json.py | 757 | '"color":null,' | CODE |
| HIGH | tests/components/mqtt/test_light_json.py | 2365 | '{"state":"ON", "color": null, "color_temp": 100, "color_mode": "color_temp"}', | CODE |
| HIGH | tests/components/mqtt/test_valve.py | 203 | ('{"position":null}', STATE_UNKNOWN), | CODE |
| HIGH | tests/components/mqtt/test_valve.py | 327 | ('{"position": 100, "state": null}', ValveState.OPEN, 100), | CODE |
| HIGH | tests/components/mqtt/test_valve.py | 1492 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH | tests/components/mqtt/test_image.py | 829 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH | tests/components/mqtt/test_lawn_mower.py | 237 | async_fire_mqtt_message(hass, "test/lawn_mower_stat", '{"val": null}') | CODE |
| HIGH | tests/components/mqtt/test_lawn_mower.py | 1025 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH | tests/components/mqtt/test_alarm_control_panel.py | 1467 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH | tests/components/mqtt/test_fan.py | 407 | async_fire_mqtt_message(hass, "state-topic", '{"val": null}') | CODE |
| HIGH | tests/components/mqtt/test_fan.py | 2432 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH | tests/components/mqtt/test_humidifier.py | 414 | async_fire_mqtt_message(hass, "state-topic", '{"val": null}') | CODE |
| HIGH | tests/components/mqtt/test_humidifier.py | 431 | async_fire_mqtt_message(hass, "action-topic", '{"val": null}') | CODE |
| HIGH | tests/components/mqtt/test_humidifier.py | 1630 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| HIGH⚡ | tests/components/mqtt/test_update.py | 946 | async_fire_mqtt_message(hass, "test-topic", '{"some_var": null }') | CODE |
| 42 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ns/pylint_home_assistant/checkers/flow_translations.py | 119 | # Check if the value is a section(...) call | COMMENT |
| LOW | homeassistant/config_entries.py | 1859 | # Check if config entry exists with unique ID. Unload it. | COMMENT |
| LOW | homeassistant/config.py | 1149 | # Check if the integration has a custom config validator | COMMENT |
| LOW | homeassistant/core_config.py | 366 | # Check if we need to raise an issue for imperial unit system | COMMENT |
| LOW | homeassistant/__main__.py | 189 | # Check if another instance is already running | COMMENT |
| LOW | homeassistant/util/color.py | 248 | # Check if the given xy value is within the color-reach of the lamp. | COMMENT |
| LOW | homeassistant/util/color.py | 725 | # Check if the three points of the supplied gamut are not on the same line. | COMMENT |
| LOW | homeassistant/util/color.py | 730 | # Check if all six coordinates of the gamut lie between 0 and 1. | COMMENT |
| LOW | homeassistant/util/dt.py | 576 | # Check if we can round trip to UTC | COMMENT |
| LOW | homeassistant/util/__init__.py | 192 | # Check if method is never called or no_throttle is given | COMMENT |
| LOW | homeassistant/components/buienradar/sensor.py | 788 | # Check if we have a new measurement, | COMMENT |
| LOW | …stant/components/nederlandse_spoorwegen/config_flow.py | 110 | # Check if this API key is already used by another entry | COMMENT |
| LOW | homeassistant/components/soundtouch/config_flow.py | 88 | # Check if already configured | COMMENT |
| LOW | homeassistant/components/powerwall/__init__.py | 99 | # Check if we had an error before | COMMENT |
| LOW | homeassistant/components/brother/config_flow.py | 169 | # Check if already configured | COMMENT |
| LOW | homeassistant/components/meteo_france/config_flow.py | 77 | # Check if already configured | COMMENT |
| LOW | homeassistant/components/pooldose/__init__.py | 39 | # Check if this entry needs migration | COMMENT |
| LOW | homeassistant/components/control4/__init__.py | 131 | # Check if OS version is 3 or higher to get UI configuration | COMMENT |
| LOW | homeassistant/components/pglab/discovery.py | 136 | # Check if the discovery message is in valid json format. | COMMENT |
| LOW | homeassistant/components/pglab/discovery.py | 146 | # Check if the key id is present in the payload. It must always be present. | COMMENT |
| LOW | homeassistant/components/meteoclimatic/config_flow.py | 64 | # Check if already configured | COMMENT |
| LOW | homeassistant/components/imeon_inverter/config_flow.py | 69 | # Check if entry already exists | COMMENT |
| LOW | …meassistant/components/onedrive_for_business/backup.py | 272 | # Check if corresponding backup file exists | COMMENT |
| LOW | homeassistant/components/schedule/__init__.py | 69 | # Check if the start time of the next event is before | COMMENT |
| LOW | homeassistant/components/schedule/__init__.py | 79 | # Check if the from time of the event is after the to time of the previous event | COMMENT |
| LOW | homeassistant/components/lacrosse_view/config_flow.py | 83 | # Check if we are reauthenticating | COMMENT |
| LOW | homeassistant/components/nws/sensor.py | 214 | # Set alias to unit property -> prevent unnecessary hasattr calls | COMMENT |
| LOW | homeassistant/components/mobile_app/webhook.py | 689 | # Check if disabled | COMMENT |
| LOW | homeassistant/components/switchbee/__init__.py | 45 | # Check if websocket version | COMMENT |
| LOW | homeassistant/components/slide/__init__.py | 98 | # Check if we have pos (OK) or code (NOK) | COMMENT |
| LOW | homeassistant/components/elgato/config_flow.py | 172 | # Check if already configured | COMMENT |
| LOW | homeassistant/components/homeassistant/triggers/time.py | 124 | # Check if current weekday matches the configuration | COMMENT |
| LOW | homeassistant/components/aquacell/coordinator.py | 70 | # Check if the refresh token is expired | COMMENT |
| LOW | …sistant/components/assist_pipeline/default_pipeline.py | 817 | # Check if all targeted entities were in the same area as | COMMENT |
| LOW | homeassistant/components/system_bridge/config_flow.py | 142 | # Check if already configured | COMMENT |
| LOW | homeassistant/components/system_bridge/config_flow.py | 199 | # Check if already configured | COMMENT |
| LOW | …meassistant/components/lutron_caseta/device_trigger.py | 425 | # Check if device is a valid keypad. Return empty if not. | COMMENT |
| LOW | homeassistant/components/wmspro/config_flow.py | 45 | try: # Check if current host is a valid IP address | CODE |
| LOW | homeassistant/components/energyid/__init__.py | 336 | # Check if entity is already mapped | COMMENT |
| LOW | homeassistant/components/energyid/config_flow.py | 207 | # Check if device has been claimed | COMMENT |
| LOW | …nt/components/energyid/energyid_sensor_mapping_flow.py | 79 | # Check if entity exists | COMMENT |
| LOW | …nt/components/energyid/energyid_sensor_mapping_flow.py | 85 | # Check if entity is already mapped (by UUID) | COMMENT |
| LOW | homeassistant/components/xiaomi_tv/media_player.py | 47 | # Check if there's a valid TV at the IP address. | COMMENT |
| LOW | homeassistant/components/lyric/climate.py | 447 | # Set auto_changeover_active to True if the mode being passed is Auto | COMMENT |
| LOW | homeassistant/components/lektrico/config_flow.py | 121 | # Check if already configured | COMMENT |
| LOW | homeassistant/components/onedrive/backup.py | 284 | # Check if corresponding backup file exists | COMMENT |
| LOW | …istant/components/device_sun_light_trigger/__init__.py | 269 | # Check if any light is on | COMMENT |
| LOW | homeassistant/components/electrasmart/config_flow.py | 85 | # Check if already configured | COMMENT |
| LOW | homeassistant/components/coinbase/__init__.py | 60 | # Check if user is using deprecated v2 API credentials | COMMENT |
| LOW | homeassistant/components/ps4/config_flow.py | 65 | # Check if able to bind to ports: UDP 987, TCP 997. | COMMENT |
| LOW | homeassistant/components/wiz/config_flow.py | 145 | # Check if there is at least one device | COMMENT |
| LOW | homeassistant/components/vegehub/config_flow.py | 94 | # Check if this device already exists | COMMENT |
| LOW | homeassistant/components/vegehub/config_flow.py | 156 | # Check if this device already exists | COMMENT |
| LOW | homeassistant/components/portainer/coordinator.py | 377 | # Check if container belongs to a stack via docker compose label | COMMENT |
| LOW | homeassistant/components/spotify/browse_media.py | 196 | # Check if caller is requesting the root nodes | COMMENT |
| LOW | homeassistant/components/stream/worker.py | 255 | # Check if audio is requested | COMMENT |
| LOW | homeassistant/components/flux_led/config_flow.py | 286 | # Check if there is at least one device | COMMENT |
| LOW | …assistant/components/ziggo_mediabox_xl/media_player.py | 62 | # Check if a connection can be established to the device. | COMMENT |
| LOW | homeassistant/components/xiaomi_aqara/config_flow.py | 185 | # Check if the discovered device is an xiaomi aqara gateway. | COMMENT |
| LOW | homeassistant/components/template/lock.py | 240 | # Check if we need to raise for incorrect code format | COMMENT |
| 279 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ns/pylint_home_assistant/checkers/flow_translations.py | 152 | except _InferenceError: | CODE |
| HIGH | …ns/pylint_home_assistant/checkers/flow_translations.py | 242 | except _InferenceError: | CODE |
| HIGH | …ns/pylint_home_assistant/checkers/flow_translations.py | 285 | except _InferenceError: | CODE |
| HIGH | …ns/pylint_home_assistant/checkers/flow_translations.py | 144 | except astroid.exceptions.NameInferenceError: | CODE |
| HIGH | …ns/pylint_home_assistant/checkers/flow_translations.py | 111 | except _InferenceError: | CODE |
| HIGH | …lugins/pylint_home_assistant/checkers/log_and_raise.py | 42 | except astroid.exceptions.InferenceError: | CODE |
| HIGH | …lint_home_assistant/checkers/exception_translations.py | 75 | except astroid.exceptions.InferenceError: | CODE |
| HIGH | …home_assistant/checkers/tests/redundant_usefixtures.py | 134 | except astroid.exceptions.AstroidSyntaxError: | CODE |
| HIGH | …ome_assistant/checkers/actions/swallowed_exceptions.py | 208 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …/plugins/pylint_home_assistant/helpers/translations.py | 119 | except _InferenceError: | CODE |
| HIGH | …/plugins/pylint_home_assistant/helpers/translations.py | 133 | except _InferenceError: | CODE |
| HIGH | …/plugins/pylint_home_assistant/helpers/translations.py | 153 | except _InferenceError: | CODE |
| HIGH | …/plugins/pylint_home_assistant/helpers/entity_class.py | 42 | except astroid.exceptions.InferenceError: | CODE |
| HIGH | homeassistant/bootstrap.py | 615 | except ImportError: | CODE |
| HIGH | homeassistant/util/language.py | 152 | except ValueError: | CODE |
| HIGH | homeassistant/auth/providers/homeassistant.py | 350 | except InvalidUser: | CODE |
| HIGH | homeassistant/components/spaceapi/__init__.py | 308 | except KeyError: | CODE |
| HIGH | homeassistant/components/spaceapi/__init__.py | 310 | except TypeError: | CODE |
| HIGH | homeassistant/components/uvc/camera.py | 181 | except OSError: | CODE |
| HIGH | homeassistant/components/uvc/camera.py | 183 | except uvc_camera.CameraConnectError: | CODE |
| HIGH | homeassistant/components/uvc/camera.py | 185 | except uvc_camera.CameraAuthError: | CODE |
| HIGH | homeassistant/components/assist_pipeline/run.py | 448 | except Empty: | CODE |
| HIGH | homeassistant/components/apple_tv/__init__.py | 243 | except asyncio.CancelledError: | CODE |
| HIGH | homeassistant/components/wled/config_flow.py | 36 | except ValueError: | CODE |
| HIGH | homeassistant/components/auth/indieauth.py | 402 | except ValueError: | CODE |
| HIGH | homeassistant/components/withings/__init__.py | 451 | except cloud.CloudNotAvailable: | CODE |
| HIGH | homeassistant/components/homekit_controller/utils.py | 35 | except ValueError: | CODE |
| HIGH | homeassistant/components/template/validators.py | 233 | except probatio.Invalid: | CODE |
| HIGH | homeassistant/components/template/validators.py | 169 | except ValueError: | CODE |
| HIGH | homeassistant/components/template/validators.py | 181 | except probatio.Invalid: | CODE |
| HIGH | homeassistant/components/template/binary_sensor.py | 272 | except TypeError: | CODE |
| HIGH | homeassistant/components/openevse/__init__.py | 45 | except MissingSerial: | CODE |
| HIGH | …eassistant/components/music_assistant/media_browser.py | 194 | except BrowseError: | CODE |
| HIGH | homeassistant/components/kodi/__init__.py | 63 | except CannotConnectError: | CODE |
| HIGH | homeassistant/components/blebox/update.py | 155 | except BleBoxConnectionError: | CODE |
| HIGH | homeassistant/components/upc_connect/device_tracker.py | 47 | except ConnectBoxError: | CODE |
| HIGH | homeassistant/components/snapcast/media_player.py | 357 | except ( | CODE |
| HIGH | homeassistant/components/snapcast/media_player.py | 433 | except ( | CODE |
| HIGH | homeassistant/components/snapcast/media_player.py | 169 | except KeyError: | CODE |
| HIGH | homeassistant/components/volvo/config_flow.py | 137 | except VolvoApiException: | CODE |
| HIGH | homeassistant/components/intent/timers.py | 335 | except asyncio.CancelledError: | CODE |
| HIGH | homeassistant/components/wyoming/assist_satellite.py | 961 | except wave.Error: | CODE |
| HIGH | homeassistant/components/wyoming/assist_satellite.py | 774 | except ConnectionError: | CODE |
| HIGH | homeassistant/components/sensor/__init__.py | 1017 | except TypeError: | CODE |
| HIGH | homeassistant/components/nanoleaf/config_flow.py | 74 | except Unauthorized: | CODE |
| HIGH | homeassistant/components/roon/media_player.py | 227 | except KeyError: | CODE |
| HIGH | homeassistant/components/roon/media_player.py | 253 | except KeyError: | CODE |
| HIGH | homeassistant/components/datadog/__init__.py | 78 | except ValueError: | CODE |
| HIGH | …eassistant/components/homeassistant_hardware/update.py | 239 | except StopIteration: | CODE |
| HIGH | homeassistant/components/homeassistant_hardware/util.py | 357 | except AddonError: | CODE |
| HIGH | homeassistant/components/emulated_hue/hue_api.py | 959 | except TimeoutError: | CODE |
| HIGH | homeassistant/components/nmap_tracker/config_flow.py | 68 | except ValueError: | CODE |
| HIGH | homeassistant/components/nmap_tracker/config_flow.py | 76 | except ValueError: | CODE |
| HIGH | homeassistant/components/mitsubishi_comfort/repairs.py | 40 | except OperationNotAllowed: | CODE |
| HIGH | homeassistant/components/zwave_js/helpers.py | 124 | except ValueError: | CODE |
| HIGH | homeassistant/components/netatmo/__init__.py | 135 | except cloud.CloudNotAvailable: | CODE |
| HIGH | homeassistant/components/tplink/config_flow.py | 223 | except AuthenticationError: | CODE |
| HIGH | homeassistant/components/google_assistant/smart_home.py | 272 | except TimeoutError: | CODE |
| HIGH | homeassistant/components/nordpool/coordinator.py | 163 | except NordPoolEmptyResponseError: | CODE |
| HIGH | homeassistant/components/eq3btsmart/climate.py | 121 | except ValueError: | CODE |
| 42 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | homeassistant/components/logbook/models.py | 98 | # --------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/teleinfo/sensor.py | 62 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | homeassistant/components/teleinfo/sensor.py | 64 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | homeassistant/components/teleinfo/sensor.py | 86 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | homeassistant/components/teleinfo/sensor.py | 88 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | homeassistant/components/teleinfo/sensor.py | 96 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | homeassistant/components/teleinfo/sensor.py | 98 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | homeassistant/components/teleinfo/sensor.py | 113 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | homeassistant/components/teleinfo/sensor.py | 115 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | homeassistant/components/teleinfo/sensor.py | 138 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | homeassistant/components/teleinfo/sensor.py | 140 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | homeassistant/components/immich/media_source.py | 180 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/immich/media_source.py | 182 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/immich/media_source.py | 198 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/immich/media_source.py | 200 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/immich/media_source.py | 220 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/immich/media_source.py | 222 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/immich/media_source.py | 304 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/immich/media_source.py | 306 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/intent/timers.py | 527 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/wyoming/assist_satellite.py | 408 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/wyoming/assist_satellite.py | 430 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/wyoming/assist_satellite.py | 517 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/voip/assist_satellite.py | 361 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/voip/assist_satellite.py | 363 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/zwave_js/binary_sensor.py | 991 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/zwave_js/binary_sensor.py | 999 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/zwave_js/binary_sensor.py | 1171 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | homeassistant/components/zwave_js/binary_sensor.py | 1324 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/components/jewish_calendar/test_calendar.py | 84 | # ─── Event Format ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/components/jewish_calendar/test_calendar.py | 53 | # ─── Entity Registration ───────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/components/jewish_calendar/test_calendar.py | 202 | # ─── Daily Events ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/components/jewish_calendar/test_calendar.py | 222 | # ─── Yearly Events: Weekly Torah Portion ────────────────────────────── | COMMENT |
| MEDIUM | tests/components/jewish_calendar/test_calendar.py | 302 | # ─── Yearly Events: Holidays ───────────────────────────────────────── | COMMENT |
| MEDIUM | tests/components/jewish_calendar/test_calendar.py | 320 | # ─── Yearly Events: Omer Count ─────────────────────────────────────── | COMMENT |
| MEDIUM | tests/components/jewish_calendar/test_calendar.py | 342 | # ─── Yearly Events: Candle Lighting & Havdalah ─────────────────────── | COMMENT |
| MEDIUM | tests/components/jewish_calendar/test_calendar.py | 399 | # ─── Learning Schedule ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/components/jewish_calendar/test_calendar.py | 420 | # ─── Custom Configuration ──────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/components/jewish_calendar/test_calendar.py | 479 | # ─── Date Range Queries ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/components/jewish_calendar/test_calendar.py | 496 | # ─── Calendar State / Event Property ───────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/components/waterfurnace/test_statistics.py | 122 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/components/waterfurnace/test_statistics.py | 124 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/components/waterfurnace/test_statistics.py | 291 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/components/waterfurnace/test_statistics.py | 293 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 736 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 738 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 792 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 794 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 843 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 845 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 904 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 906 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 961 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 963 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 1000 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 1002 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 1042 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/components/energyid/test_init.py | 1044 | # ============================================================================ | COMMENT |
| MEDIUM | tests/components/fing/test_device_tracker.py | 92 | # ---------------------------------------------------- | COMMENT |
| MEDIUM | tests/components/fing/test_device_tracker.py | 100 | # ---------------------------------------------------- | COMMENT |
| 45 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | homeassistant/components/auth/__init__.py | 83 | "name": "John Doe", | STRING |
| LOW | homeassistant/components/brands/__init__.py | 262 | use_placeholder = request.query.get("placeholder") != "no" | CODE |
| LOW | homeassistant/components/brands/__init__.py | 296 | use_placeholder = request.query.get("placeholder") != "no" | CODE |
| LOW | homeassistant/components/knx/strings.json | 1266 | "placeholder": "Add your notes here..." | CODE |
| LOW | homeassistant/helpers/selector.py | 1284 | {probatio.Optional("placeholder"): str} | CODE |
| LOW⚡ | tests/test_data_entry_flow.py | 971 | raise data_entry_flow.AbortFlow("mock-reason", {"placeholder": "yo"}) | CODE |
| LOW⚡ | tests/test_data_entry_flow.py | 976 | assert form["description_placeholders"] == {"placeholder": "yo"} | CODE |
| LOW⚡ | tests/test_data_entry_flow.py | 996 | raise data_entry_flow.AbortFlow("mock-reason", {"placeholder": "yo"}) | CODE |
| LOW⚡ | tests/test_data_entry_flow.py | 1003 | assert form["description_placeholders"] == {"placeholder": "yo"} | CODE |
| LOW | tests/test_data_entry_flow.py | 191 | "section_1": {"full_name": "John Doe"}, | CODE |
| LOW | tests/test_data_entry_flow.py | 215 | assert section_markers[0].description == {"suggested_value": "John Doe"} | CODE |
| LOW | tests/components/intelliclima/conftest.py | 182 | mock_client.auth_token = "fake-token" | CODE |
| LOW | tests/components/intelliclima/conftest.py | 183 | mock_client.user_id = "fake-user-id" | CODE |
| LOW | tests/components/zinvolt/conftest.py | 31 | title="test@test.com", | CODE |
| LOW | tests/components/zinvolt/test_config_flow.py | 31 | CONF_EMAIL: "test@test.com", | CODE |
| LOW | tests/components/zinvolt/test_config_flow.py | 37 | assert result["title"] == "test@test.com" | CODE |
| LOW | tests/components/zinvolt/test_config_flow.py | 68 | CONF_EMAIL: "test@test.com", | CODE |
| LOW | tests/components/zinvolt/test_config_flow.py | 81 | CONF_EMAIL: "test@test.com", | CODE |
| LOW | tests/components/zinvolt/test_config_flow.py | 104 | CONF_EMAIL: "test@test.com", | CODE |
| LOW | tests/components/onedrive_for_business/conftest.py | 67 | title="John Doe's OneDrive", | CODE |
| LOW | tests/components/onedrive_for_business/conftest.py | 133 | display_name="John Doe", | CODE |
| LOW | …s/components/onedrive_for_business/test_config_flow.py | 107 | assert result["title"] == "John Doe's OneDrive (john@doe.com)" | CODE |
| LOW | …s/components/onedrive_for_business/test_config_flow.py | 196 | assert result["title"] == "John Doe's OneDrive (john@doe.com)" | CODE |
| LOW | tests/components/onedrive_for_business/const.py | 28 | display_name="John Doe", | CODE |
| LOW | tests/components/litterrobot/common.py | 6 | CONFIG = {DOMAIN: {CONF_USERNAME: "user@example.com", CONF_PASSWORD: "password"}} | CODE |
| LOW⚡ | tests/components/paj_gps/test_config_flow.py | 20 | CONF_EMAIL: "user@example.com", | CODE |
| LOW⚡ | tests/components/paj_gps/test_config_flow.py | 28 | ("user@example.com", "user@example.com"), | CODE |
| LOW⚡ | tests/components/paj_gps/test_config_flow.py | 29 | (" USER@EXAMPLE.COM ", "user@example.com"), | CODE |
| LOW⚡ | tests/components/aquacell/__init__.py | 16 | CONF_EMAIL: "test@test.com", | CODE |
| LOW⚡ | tests/components/aquacell/__init__.py | 24 | CONF_EMAIL: "test@test.com", | CODE |
| LOW⚡ | tests/components/aquacell/__init__.py | 31 | CONF_EMAIL: "test@test.com", | CODE |
| LOW | tests/components/freedompro/test_init.py | 14 | ENTITY_ID = f"{DOMAIN}.fake_name" | CODE |
| LOW | tests/components/nexblue/conftest.py | 30 | CONF_USERNAME: "user@example.com", | CODE |
| LOW⚡ | tests/components/nexblue/test_config_flow.py | 79 | CONF_USERNAME: "user@example.com", | CODE |
| LOW⚡ | tests/components/nexblue/test_config_flow.py | 89 | CONF_USERNAME: "user@example.com", | CODE |
| LOW⚡ | tests/components/nexblue/test_config_flow.py | 139 | CONF_USERNAME: "user@example.com", | CODE |
| LOW⚡ | tests/components/nexblue/test_config_flow.py | 149 | CONF_USERNAME: "user@example.com", | CODE |
| LOW⚡ | tests/components/nexblue/test_config_flow.py | 181 | CONF_USERNAME: "user@example.com", | CODE |
| LOW⚡ | tests/components/nexblue/test_config_flow.py | 191 | CONF_USERNAME: "user@example.com", | CODE |
| LOW | tests/components/nexblue/test_config_flow.py | 222 | CONF_USERNAME: "user@example.com", | CODE |
| LOW | tests/components/nexblue/test_config_flow.py | 232 | CONF_USERNAME: "user@example.com", | CODE |
| LOW⚡ | tests/components/poolsense/conftest.py | 61 | title="test@test.com", | CODE |
| LOW⚡ | tests/components/poolsense/conftest.py | 62 | unique_id="test@test.com", | CODE |
| LOW⚡ | tests/components/poolsense/conftest.py | 64 | CONF_EMAIL: "test@test.com", | CODE |
| LOW⚡ | tests/components/poolsense/test_config_flow.py | 29 | user_input={CONF_EMAIL: "test@test.com", CONF_PASSWORD: "test"}, | CODE |
| LOW⚡ | tests/components/poolsense/test_config_flow.py | 33 | assert result["title"] == "test@test.com" | CODE |
| LOW⚡ | tests/components/poolsense/test_config_flow.py | 35 | CONF_EMAIL: "test@test.com", | CODE |
| LOW⚡ | tests/components/poolsense/test_config_flow.py | 38 | assert result["result"].unique_id == "test@test.com" | CODE |
| LOW | tests/components/poolsense/test_config_flow.py | 58 | user_input={CONF_EMAIL: "test@test.com", CONF_PASSWORD: "test"}, | CODE |
| LOW | tests/components/poolsense/test_config_flow.py | 68 | user_input={CONF_EMAIL: "test@test.com", CONF_PASSWORD: "test"}, | CODE |
| LOW | tests/components/poolsense/test_config_flow.py | 90 | user_input={CONF_EMAIL: "test@test.com", CONF_PASSWORD: "test"}, | CODE |
| LOW⚡ | tests/components/discovergy/conftest.py | 52 | title="user@example.org", | CODE |
| LOW⚡ | tests/components/discovergy/conftest.py | 53 | unique_id="user@example.org", | CODE |
| LOW⚡ | tests/components/discovergy/conftest.py | 54 | data={CONF_EMAIL: "user@example.org", CONF_PASSWORD: "supersecretpassword"}, | CODE |
| LOW | tests/components/discovergy/test_config_flow.py | 64 | CONF_EMAIL: "user@example.org", | CODE |
| LOW | tests/components/discovergy/test_config_flow.py | 138 | CONF_EMAIL: "user2@example.org", | CODE |
| LOW | tests/components/alexa_devices/const.py | 20 | TEST_USERNAME = "fake_email@gmail.com" | CODE |
| LOW | tests/components/onedrive/conftest.py | 68 | title="John Doe's OneDrive", | CODE |
| LOW | tests/components/onedrive/conftest.py | 115 | display_name="John Doe", | CODE |
| LOW | tests/components/onedrive/conftest.py | 154 | display_name="John Doe", | CODE |
| 183 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | homeassistant/components/control4/config_flow.py | 63 | # Step 1: Authenticate with Control4 cloud API | COMMENT |
| LOW⚡ | homeassistant/components/control4/config_flow.py | 88 | # Step 2: Connect to local Control4 Director | COMMENT |
| LOW | homeassistant/components/airos/__init__.py | 178 | # Step 1 - migrate binary_sensor entity unique_id | COMMENT |
| LOW | homeassistant/components/airos/__init__.py | 179 | # Step 2 - migrate device entity identifier | COMMENT |
| LOW⚡ | homeassistant/components/recorder/migration.py | 3306 | # Step 1 - Disable foreign keys | COMMENT |
| LOW⚡ | homeassistant/components/recorder/migration.py | 3308 | # Step 2 - create a transaction | COMMENT |
| LOW⚡ | homeassistant/components/recorder/migration.py | 3310 | # Step 3 - we know all the indexes, triggers, and | COMMENT |
| LOW⚡ | homeassistant/components/recorder/migration.py | 3317 | # Step 4 - Create temp table | COMMENT |
| LOW⚡ | homeassistant/components/recorder/migration.py | 3320 | # Step 5 - Transfer content | COMMENT |
| LOW⚡ | homeassistant/components/recorder/migration.py | 3323 | # Step 6 - Drop the original table | COMMENT |
| LOW⚡ | homeassistant/components/recorder/migration.py | 3325 | # Step 7 - Rename the temp table | COMMENT |
| LOW⚡ | homeassistant/components/recorder/migration.py | 3327 | # Step 8 - Recreate indexes | COMMENT |
| LOW⚡ | homeassistant/components/recorder/migration.py | 3330 | # Step 9 - Recreate views (there are none) | COMMENT |
| LOW⚡ | homeassistant/components/recorder/migration.py | 3331 | # Step 10 - Check foreign keys | COMMENT |
| LOW⚡ | homeassistant/components/recorder/migration.py | 3333 | # Step 11 - Commit transaction | COMMENT |
| LOW | homeassistant/components/recorder/migration.py | 3346 | # Step 12 - Re-enable foreign keys | COMMENT |
| LOW⚡ | tests/components/omie/test_sensor.py | 62 | # Step 1: 1 PM CET (before 13:30 CET publication) | COMMENT |
| LOW⚡ | tests/components/omie/test_sensor.py | 69 | # Step 2: 3 PM CET - verify listeners update with existing data, no new API calls | COMMENT |
| LOW⚡ | tests/components/omie/test_sensor.py | 129 | # Step 1: 1 PM CET (before 13:30 CET publication) - only Jan 15 data available | COMMENT |
| LOW⚡ | tests/components/omie/test_sensor.py | 135 | # Step 2: 2 PM CET (after 13:30 CET publication) - Jan 16 data now available | COMMENT |
| LOW⚡ | tests/components/omie/test_sensor.py | 144 | # Step 3: 3 PM CET - verify listeners update with existing data, no new API calls | COMMENT |
| LOW⚡ | tests/components/improv_ble/test_config_flow.py | 237 | # Step 1: Inject provisioned device advertisement (triggers discovery, aborts) | COMMENT |
| LOW⚡ | tests/components/improv_ble/test_config_flow.py | 245 | # Step 2: Inject same provisioned advertisement again | COMMENT |
| LOW⚡ | tests/components/generic_thermostat/test_climate.py | 2041 | # Step 2: The heater should have been turned on | COMMENT |
| LOW⚡ | tests/components/generic_thermostat/test_climate.py | 2051 | # Step 4: The climate entity should keep the parent (user) context, | COMMENT |
| LOW | tests/components/growatt_server/test_sensor.py | 332 | # Step 1: Midnight reset — API returns 0 (legitimate reset) | COMMENT |
| LOW | tests/components/growatt_server/test_sensor.py | 346 | # Step 2: Stale bounce — API returns yesterday's value (12.5) after reset | COMMENT |
| LOW | tests/components/growatt_server/test_sensor.py | 361 | # Step 3: Another reset arrives — still 0 (no double-counting) | COMMENT |
| LOW | tests/components/growatt_server/test_sensor.py | 375 | # Step 4: Genuine new production — small value passes through | COMMENT |
| LOW | tests/components/xiaomi_ble/test_binary_sensor.py | 122 | # WARNING: This test data is synthetic, rather than captured from a real device | COMMENT |
| LOW | tests/components/xiaomi_ble/test_sensor.py | 78 | # WARNING: This test data is synthetic, rather than captured from a real device | COMMENT |
| LOW | tests/components/xiaomi_ble/test_sensor.py | 114 | # WARNING: This test data is synthetic, rather than captured from a real device | COMMENT |
| LOW | tests/components/xiaomi_ble/test_sensor.py | 182 | # WARNING: This test data is synthetic, rather than captured from a real device | COMMENT |
| LOW | tests/components/xiaomi_ble/test_config_flow.py | 1188 | # WARNING: This test data is synthetic, rather than captured from a real device | COMMENT |
| LOW | tests/components/xiaomi_ble/test_config_flow.py | 1239 | # WARNING: This test data is synthetic, rather than captured from a real device | COMMENT |
| LOW | tests/components/xiaomi_ble/test_config_flow.py | 1298 | # WARNING: This test data is synthetic, rather than captured from a real device | COMMENT |
| LOW | tests/components/xiaomi_ble/test_config_flow.py | 1354 | # WARNING: This test data is synthetic, rather than captured from a real device | COMMENT |
| LOW | tests/components/xiaomi_ble/test_config_flow.py | 1418 | # WARNING: This test data is synthetic, rather than captured from a real device | COMMENT |
| LOW | .claude/agents/raise-pull-request.md | 14 | ## Step 1: Gather Information | COMMENT |
| LOW | .claude/agents/raise-pull-request.md | 62 | ## Step 2: Run Code Quality Checks | COMMENT |
| LOW | .claude/agents/raise-pull-request.md | 75 | ## Step 3: Stage Any Changes from Checks | COMMENT |
| LOW | .claude/agents/raise-pull-request.md | 86 | ## Step 4: Run Tests | COMMENT |
| LOW | .claude/agents/raise-pull-request.md | 103 | ## Step 5: Identify PR Metadata | COMMENT |
| LOW | .claude/agents/raise-pull-request.md | 122 | ## Step 6: Verify Development Checklist | COMMENT |
| LOW | .claude/agents/raise-pull-request.md | 139 | ## Step 7: Determine Type of Change | COMMENT |
| LOW | .claude/agents/raise-pull-request.md | 158 | ## Step 8: Determine Checkbox States | COMMENT |
| LOW | .claude/agents/raise-pull-request.md | 178 | ## Step 9: Breaking Change Section | COMMENT |
| LOW | .claude/agents/raise-pull-request.md | 187 | ## Step 10: Push Branch and Create PR | COMMENT |
| LOW | .claude/agents/raise-pull-request.md | 216 | ## Step 11: Report Result | COMMENT |
| LOW⚡ | .github/workflows/quality-scale-reviewer.md | 267 | ## Step 1: Read the rules index | COMMENT |
| LOW⚡ | .github/workflows/quality-scale-reviewer.md | 271 | ## Step 2: Read the PR diff | COMMENT |
| LOW⚡ | .github/workflows/quality-scale-reviewer.md | 276 | ## Step 3: Read the quality scale statuses | COMMENT |
| LOW⚡ | .github/workflows/quality-scale-reviewer.md | 286 | ## Step 4: Select the rules to check | COMMENT |
| LOW | .github/workflows/quality-scale-reviewer.md | 301 | ## Step 5: Check each selected rule | COMMENT |
| LOW | .github/workflows/quality-scale-reviewer.md | 333 | ## Step 6: Post findings | COMMENT |
| LOW | .github/workflows/quality-scale-reviewer.md | 359 | ## Step 7: No violations | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 141 | [tool.pylint."MESSAGES CONTROL"] | COMMENT |
| LOW | pyproject.toml | 501 | "ignore:datetime.*utcnow\\(\\) is deprecated and scheduled for removal:DeprecationWarning:miio.miioprotocol", | COMMENT |
| LOW | pyproject.toml | 541 | # https://github.com/python-telegram-bot/python-telegram-bot/blob/v22.7/src/telegram/error.py#L243 - 22.7 - 2026-03-16 | COMMENT |
| LOW | pyproject.toml | 601 | "ignore:datetime.*utcnow\\(\\) is deprecated and scheduled for removal:DeprecationWarning:directv.models", | COMMENT |
| LOW | requirements_all.txt | 581 | COMMENT | |
| LOW | homeassistant/bootstrap.py | 161 | # Ensure network config is available | COMMENT |
| LOW | homeassistant/bootstrap.py | 201 | # We need to make sure discovery integrations | COMMENT |
| LOW | homeassistant/bootstrap.py | 781 | # Additionally process integrations that are defined under base platforms | COMMENT |
| LOW | homeassistant/bootstrap.py | 861 | ) | COMMENT |
| LOW | homeassistant/config.py | 1281 | ) | COMMENT |
| LOW | homeassistant/package_constraints.txt | 81 | # Constrain pycryptodome to avoid vulnerability | COMMENT |
| LOW | homeassistant/package_constraints.txt | 201 | COMMENT | |
| LOW | homeassistant/package_constraints.txt | 241 | # aiofile 3.10.0 crashes on import due to KeyError on package metadata | COMMENT |
| LOW | homeassistant/core.py | 2461 | same_state = False | COMMENT |
| LOW | homeassistant/setup.py | 41 | _LOGGER = logging.getLogger(__name__) | COMMENT |
| LOW | homeassistant/loader.py | 61 | _LOGGER = logging.getLogger(__name__) | COMMENT |
| LOW | homeassistant/util/package.py | 181 | and not (any(var in env for var in _UV_ENV_PYTHON_VARS)) | COMMENT |
| LOW | homeassistant/util/dt.py | 521 | # with pattern "02:30", don't run on 28 mar (such a wall time does not | COMMENT |
| LOW | homeassistant/util/dt.py | 541 | # `now` and `result` are both ambiguous, so the next match happens | COMMENT |
| LOW | homeassistant/util/async_.py | 81 | else: | COMMENT |
| LOW | homeassistant/components/goodwe/sensor.py | 41 | COMMENT | |
| LOW | homeassistant/components/homekit/type_lights.py | 261 | # Handle Brightness | COMMENT |
| LOW | homeassistant/components/homekit/type_fans.py | 281 | # Handle Speed | COMMENT |
| LOW | homeassistant/components/hyperion/config_flow.py | 41 | DOMAIN, | COMMENT |
| LOW | homeassistant/components/hyperion/config_flow.py | 61 | # | Static | | COMMENT |
| LOW | homeassistant/components/hyperion/config_flow.py | 81 | # v<------------------+ | COMMENT |
| LOW | homeassistant/components/hyperion/config_flow.py | 161 | # 'ssdp_st': 'upnp:rootdevice', | COMMENT |
| LOW | homeassistant/components/hyperion/config_flow.py | 181 | # 'mimetype': 'image/png', | COMMENT |
| LOW | homeassistant/components/websocket_api/http.py | 441 | self._hass.data[DATA_CONNECTIONS] = self._hass.data.get(DATA_CONNECTIONS, 0) + 1 | COMMENT |
| LOW | homeassistant/components/websocket_api/http.py | 461 | # to the websocket writer to handle malicious clients and network issues. | COMMENT |
| LOW | homeassistant/components/apple_tv/config_flow.py | 241 | self._async_abort_entries_match({CONF_ADDRESS: host}) | COMMENT |
| LOW | homeassistant/components/apple_tv/config_flow.py | 261 | # is found. In this case, unique_id will be set to "B" which is problematic | COMMENT |
| LOW | homeassistant/components/flexit_bacnet/number.py | 41 | COMMENT | |
| LOW | …sistant/components/withings/application_credentials.py | 41 | # { | COMMENT |
| LOW | homeassistant/components/system_log/__init__.py | 81 | # | COMMENT |
| LOW | homeassistant/components/system_log/__init__.py | 101 | # We know that the logger module typically has 5 frames itself | COMMENT |
| LOW | homeassistant/components/stream/worker.py | 201 | # Only do extra fragmenting if we are using ll_hls | COMMENT |
| LOW | homeassistant/components/stream/worker.py | 221 | # the resulting fragments can have variability in their | COMMENT |
| LOW | homeassistant/components/stream/worker.py | 681 | """Return true if the packet is for the video stream.""" | COMMENT |
| LOW | homeassistant/components/motionmount/config_flow.py | 21 | COMMENT | |
| LOW | …assistant/components/homekit_controller/config_flow.py | 401 | # If async_step_pair is called with no pairing code then we do the M1 | COMMENT |
| LOW | homeassistant/components/enphase_envoy/const.py | 41 | # The Envoy occasionally reports daily energy values of 2^32 Wh offset by the | COMMENT |
| LOW | homeassistant/components/doorbird/models.py | 21 | # This integration uses a different event for | COMMENT |
| LOW | homeassistant/components/matter/models.py | 141 | allow_none_value: bool = False | COMMENT |
| LOW | homeassistant/components/ibeacon/coordinator.py | 401 | if group_id not in self._unavailable_group_ids | COMMENT |
| LOW | homeassistant/components/todoist/const.py | 61 | ID: Final = "id" | COMMENT |
| LOW | homeassistant/components/android_ip_webcam/camera.py | 61 | # and IP webcam doesn't provide MP3 audio. | COMMENT |
| LOW | homeassistant/components/elmax/config_flow.py | 481 | # If there already is a matching panel, take the chance | COMMENT |
| LOW | homeassistant/components/homematicip_cloud/__init__.py | 141 | entry.unique_id, | COMMENT |
| LOW | homeassistant/components/proximity/coordinator.py | 181 | # entity IDs), so a present, empty list genuinely means "in no zone". | COMMENT |
| LOW | homeassistant/components/recorder/statistics.py | 2961 | run_cache.set_latest_id_for_metadata_id(metadata_id, id_) | COMMENT |
| LOW | homeassistant/components/recorder/migration.py | 1201 | # since its always there on state_changed events | COMMENT |
| LOW | homeassistant/components/recorder/filters.py | 181 | # Case 4 - Domain and/or glob includes (may also have excludes) | COMMENT |
| LOW | homeassistant/components/recorder/models/database.py | 21 | version: AwesomeVersion | None | COMMENT |
| LOW | homeassistant/components/recorder/models/database.py | 41 | # https://github.com/home-assistant/core/issues/137178 | COMMENT |
| LOW | homeassistant/components/esphome/entity.py | 241 | COMMENT | |
| LOW | homeassistant/components/esphome/manager.py | 661 | # unique id is not a mac address. | COMMENT |
| LOW | homeassistant/components/zwave_js/discovery.py | 101 | # [optional] template to generate platform specific data to use in setup | COMMENT |
| LOW | homeassistant/components/zwave_js/discovery.py | 1061 | # number platform | COMMENT |
| LOW | homeassistant/components/zwave_js/binary_sensor.py | 201 | # The catch all description should not have a device class and be marked as diagnostic. | COMMENT |
| 50 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 648 | # Recorded HTTP response bodies, served verbatim by the Marketplace test harness | STRING |
| LOW | …ome_assistant/checkers/actions/swallowed_exceptions.py | 55 | # Empty body (just pass) or log-only body | COMMENT |
| MEDIUM | homeassistant/loader.py | 1749 | """Mount config dir in order to load custom_component. | STRING |
| MEDIUM | homeassistant/components/smartthings/__init__.py | 606 | # robust to any ordering of parents and children in the device list, | COMMENT |
| MEDIUM | homeassistant/components/intellifire/config_flow.py | 116 | """Authenticate against IFTAPI Cloud in order to see configured devices. | STRING |
| MEDIUM | homeassistant/components/wallbox/coordinator.py | 102 | """Check if the jwtToken is still valid in order to reuse if possible.""" | STRING |
| LOW | homeassistant/components/vizio/media_player.py | 301 | # show the combination with, otherwise just return inputs | COMMENT |
| LOW | homeassistant/components/energy/data.py | 896 | # If power_config has stat_rate (standard), just use it directly | COMMENT |
| LOW | homeassistant/components/energy/data.py | 914 | # If power_config has stat_rate (standard), just use it directly | COMMENT |
| LOW | homeassistant/components/system_log/__init__.py | 57 | # exception). In that case, just use the file where the log was made from. | COMMENT |
| LOW | homeassistant/components/alexa/handlers.py | 795 | # This workaround will simply call the volume up/Volume down the amount of | COMMENT |
| MEDIUM | homeassistant/components/cast/media_player.py | 299 | """Ensure chromecast is available, to facilitate type checking.""" | STRING |
| LOW | homeassistant/components/stream/worker.py | 527 | # For the bounds, just use the larger of the two values. If the error | COMMENT |
| LOW | homeassistant/components/deluge/sensor.py | 30 | # if key is CURRENT_STATUS, we just return whether | COMMENT |
| LOW | homeassistant/components/oralb/__init__.py | 49 | # BluetoothServiceInfoBleak is defined in HA, otherwise would just pass it | COMMENT |
| LOW | …tant/components/hunterdouglas_powerview/diagnostics.py | 52 | # otherwise just return all shade data | COMMENT |
| MEDIUM | homeassistant/components/theben_conexa/coordinator.py | 69 | # So we leverage this information to set up a scheduled poll at | COMMENT |
| LOW | homeassistant/components/matter/vacuum.py | 95 | # We simply set the RvcRunMode to the first runmode | COMMENT |
| LOW | homeassistant/components/matter/vacuum.py | 136 | # We simply set the RvcRunMode to the first runmode | COMMENT |
| LOW | homeassistant/components/growatt_server/coordinator.py | 469 | # local time in that scenario we should just return the previous value | COMMENT |
| LOW | homeassistant/components/slimproto/config_flow.py | 27 | # we have nothing to configure so simply create the entry | COMMENT |
| LOW | homeassistant/components/todoist/calendar.py | 559 | # If we have no data, we can just return right away. | COMMENT |
| LOW | homeassistant/components/geo_rss_events/sensor.py | 154 | # If no events were found due to an error then just set state to | COMMENT |
| LOW | homeassistant/components/device_automation/condition.py | 69 | # we just pass the entire config as options. | COMMENT |
| LOW | homeassistant/components/apcupsd/coordinator.py | 48 | # We had user reports that some UPS models simply return | COMMENT |
| LOW | homeassistant/components/cloud/http_api.py | 509 | # just add the domain | COMMENT |
| MEDIUM | homeassistant/components/tplink/light.py | 213 | # except when transition is defined so we leverage that for now. | COMMENT |
| LOW | homeassistant/components/peblar/number.py | 223 | # If charging is currently disabled (below 6 amps), just set the value | COMMENT |
| LOW | homeassistant/components/xiaomi_ble/__init__.py | 147 | # BluetoothServiceInfoBleak is defined in HA, otherwise would just pass it | COMMENT |
| MEDIUM | homeassistant/components/caldav/coordinator.py | 59 | """Class to utilize the calendar dav client object to get next event.""" | STRING |
| LOW | homeassistant/components/rest/notify.py | 158 | # integrations, so just return the first target in the list. | COMMENT |
| MEDIUM⚡ | homeassistant/components/zha/entity.py | 210 | # provides a more generic hook to utilize HA to do this), we directly restore | COMMENT |
| LOW | homeassistant/components/zha/config_flow.py | 350 | # Allow onboarding for new users to just create a new network automatically | COMMENT |
| MEDIUM | homeassistant/helpers/intent.py | 587 | """Match entities based on constraints in order to handle an intent.""" | STRING |
| MEDIUM | tests/components/liebherr/conftest.py | 40 | # Complete multi-zone device for comprehensive testing | COMMENT |
| MEDIUM | tests/components/tod/test_binary_sensor.py | 635 | # Essentially, the ToD sensor never turns on that day. | COMMENT |
| LOW | tests/components/intellifire/test_config_flow.py | 42 | # For a single fireplace we just create it | COMMENT |
| LOW | tests/components/intellifire/test_config_flow.py | 77 | # For a single fireplace we just create it | COMMENT |
| LOW | tests/components/intellifire/test_config_flow.py | 113 | # For a single fireplace we just create it | COMMENT |
| LOW | tests/components/google/test_calendar.py | 834 | # just use the API response which this test is not exercising) | COMMENT |
| LOW | tests/components/schlage/test_lock.py | 388 | # Should not raise an error, just return silently | COMMENT |
| LOW | tests/components/schlage/test_lock.py | 409 | # Should not raise an error, just return silently | COMMENT |
| MEDIUM | tests/components/homekit_controller/common.py | 45 | # Root device in test harness always has an accessory id of this | COMMENT |
| LOW | tests/components/music_assistant/conftest.py | 79 | # simply return a mock config for each player | COMMENT |
| MEDIUM | tests/components/generic_thermostat/test_climate.py | 1345 | # this test harness). Update the entity to OFF so the thermostat sees the | COMMENT |
| LOW⚡ | tests/components/chacon_dio/test_cover.py | 145 | # Define a method to simply call it | COMMENT |
| LOW⚡ | tests/components/chacon_dio/test_switch.py | 102 | # Define a method to simply call it | COMMENT |
| LOW | tests/components/balboa/test_fan.py | 63 | # just call turn on, pump should be at full speed | COMMENT |
| MEDIUM | tests/components/application_credentials/test_init.py | 123 | """Fixture to facilitate testing an OAuth flow.""" | STRING |
| LOW | …ts/components/eurotronic_cometblue/test_config_flow.py | 227 | # If for some reason no name can be derived, just return the default name | COMMENT |
| LOW | …ts/components/eurotronic_cometblue/test_config_flow.py | 230 | # If the name is the same as the address, just return | COMMENT |
| MEDIUM | tests/components/conversation/test_chat_log.py | 970 | """Test comprehensive chat log subscription functionality.""" | STRING |
| MEDIUM | tests/components/owntracks/test_device_tracker.py | 921 | # message. None is the state the test harness set for | COMMENT |
| MEDIUM | …affold/templates/config_flow_oauth2/integration/api.py | 11 | # TODO the following two API examples are based on our suggested best practices | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | homeassistant/auth/jwt_wrapper.py | 90 | CODE | |
| LOW | homeassistant/components/demo/update.py | 108 | CODE | |
| LOW | homeassistant/components/demo/light.py | 102 | CODE | |
| LOW | homeassistant/components/frontend/__init__.py | 368 | CODE | |
| LOW | homeassistant/components/assist_pipeline/__init__.py | 96 | CODE | |
| LOW | homeassistant/components/assist_pipeline/pipeline.py | 278 | CODE | |
| LOW | homeassistant/components/knx/storage/knx_selector.py | 396 | CODE | |
| LOW | homeassistant/components/knx/storage/knx_selector.py | 204 | CODE | |
| LOW | homeassistant/components/tado/coordinator.py | 371 | CODE | |
| LOW | homeassistant/components/tado/climate.py | 235 | CODE | |
| LOW | homeassistant/components/tado/climate.py | 635 | CODE | |
| LOW | homeassistant/components/rflink/entity.py | 43 | CODE | |
| LOW | homeassistant/components/cloud/prefs.py | 166 | CODE | |
| LOW | homeassistant/components/recorder/history/__init__.py | 146 | CODE | |
| LOW | homeassistant/components/recorder/history/__init__.py | 242 | CODE | |
| LOW | homeassistant/components/zwave_js/lock_helpers.py | 416 | CODE | |
| LOW | homeassistant/components/configurator/__init__.py | 73 | CODE | |
| LOW | homeassistant/components/configurator/__init__.py | 105 | CODE | |
| LOW | homeassistant/components/panel_custom/__init__.py | 80 | CODE | |
| LOW | homeassistant/helpers/intent.py | 99 | CODE | |
| LOW | homeassistant/helpers/intent.py | 983 | CODE | |
| LOW | homeassistant/helpers/intent.py | 1286 | CODE | |
| LOW | homeassistant/helpers/network.py | 115 | CODE | |
| LOW | homeassistant/helpers/area_registry.py | 345 | CODE | |
| LOW | homeassistant/helpers/area_registry.py | 381 | CODE | |
| LOW | homeassistant/helpers/script.py | 1515 | CODE | |
| LOW | tests/components/powerwall/mocks.py | 62 | CODE | |
| LOW | tests/components/izone/conftest.py | 34 | CODE | |
| LOW | tests/components/vera/common.py | 56 | CODE | |
| LOW | tests/components/litterrobot/conftest.py | 88 | CODE | |
| LOW | tests/components/zoneminder/conftest.py | 90 | CODE | |
| LOW | tests/components/alexa_devices/test_media_player.py | 50 | CODE | |
| LOW | tests/components/seventeentrack/conftest.py | 133 | CODE | |
| LOW | tests/components/besen/conftest.py | 51 | CODE | |
| LOW | tests/components/doorbird/conftest.py | 107 | CODE | |
| LOW | tests/components/radarr/__init__.py | 157 | CODE | |
| LOW | tests/components/device_tracker/common.py | 29 | CODE | |
| LOW | tests/components/emulated_hue/test_hue_api.py | 1352 | CODE | |
| LOW | tests/components/israel_rail/conftest.py | 66 | CODE | |
| LOW | tests/components/mitsubishi_comfort/conftest.py | 30 | CODE | |
| LOW | tests/components/esphome/test_assist_satellite.py | 2484 | CODE | |
| LOW | tests/components/transmission/conftest.py | 82 | CODE | |
| LOW | tests/components/onvif/__init__.py | 44 | CODE | |
| LOW | tests/components/onvif/__init__.py | 255 | CODE | |
| LOW | tests/components/tplink/__init__.py | 152 | CODE | |
| LOW | tests/components/tplink/__init__.py | 256 | CODE | |
| LOW | tests/components/light/common.py | 43 | CODE | |
| LOW | tests/components/light/common.py | 107 | CODE | |
| LOW | tests/components/google_assistant/__init__.py | 22 | CODE | |
| LOW | tests/components/gdacs/__init__.py | 6 | CODE | |
| LOW | …nents/nsw_rural_fire_service_feed/test_geo_location.py | 60 | CODE | |
| LOW | tests/components/tibber/conftest.py | 34 | CODE | |
| LOW | tests/components/unifiprotect/test_fob.py | 54 | CODE | |
| LOW | tests/components/unifiprotect/utils.py | 364 | CODE | |
| LOW | tests/components/unifiprotect/utils.py | 519 | CODE | |
| LOW | tests/components/unifiprotect/utils.py | 601 | CODE | |
| LOW | tests/components/shelly/conftest.py | 72 | CODE | |
| LOW | tests/components/nexia/conftest.py | 47 | CODE | |
| LOW | tests/components/nexia/conftest.py | 132 | CODE | |
| LOW | …/components/usgs_earthquakes_feed/test_geo_location.py | 65 | CODE | |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | homeassistant/components/control4/config_flow.py | 63 | # Step 1: Authenticate with Control4 cloud API | COMMENT |
| LOW⚡ | homeassistant/components/control4/config_flow.py | 88 | # Step 2: Connect to local Control4 Director | COMMENT |
| LOW | homeassistant/components/home_connect/common.py | 91 | when they are turned off, so we need to check if the entities have been added | STRING |
| LOW | homeassistant/components/onewire/sensor.py | 441 | # We need to check if there is TAI8570 plugged in | COMMENT |
| LOW⚡ | tests/components/omie/test_sensor.py | 62 | # Step 1: 1 PM CET (before 13:30 CET publication) | COMMENT |
| LOW⚡ | tests/components/omie/test_sensor.py | 69 | # Step 2: 3 PM CET - verify listeners update with existing data, no new API calls | COMMENT |
| LOW⚡ | tests/components/omie/test_sensor.py | 129 | # Step 1: 1 PM CET (before 13:30 CET publication) - only Jan 15 data available | COMMENT |
| LOW⚡ | tests/components/omie/test_sensor.py | 135 | # Step 2: 2 PM CET (after 13:30 CET publication) - Jan 16 data now available | COMMENT |
| LOW⚡ | tests/components/omie/test_sensor.py | 144 | # Step 3: 3 PM CET - verify listeners update with existing data, no new API calls | COMMENT |
| LOW⚡ | tests/components/improv_ble/test_config_flow.py | 237 | # Step 1: Inject provisioned device advertisement (triggers discovery, aborts) | COMMENT |
| LOW⚡ | tests/components/improv_ble/test_config_flow.py | 245 | # Step 2: Inject same provisioned advertisement again | COMMENT |
| LOW⚡ | tests/components/generic_thermostat/test_climate.py | 2041 | # Step 2: The heater should have been turned on | COMMENT |
| LOW⚡ | tests/components/generic_thermostat/test_climate.py | 2051 | # Step 4: The climate entity should keep the parent (user) context, | COMMENT |
| LOW | tests/components/growatt_server/test_sensor.py | 332 | # Step 1: Midnight reset — API returns 0 (legitimate reset) | COMMENT |
| LOW | tests/components/growatt_server/test_sensor.py | 346 | # Step 2: Stale bounce — API returns yesterday's value (12.5) after reset | COMMENT |
| LOW | tests/components/growatt_server/test_sensor.py | 361 | # Step 3: Another reset arrives — still 0 (no double-counting) | COMMENT |
| LOW | tests/components/growatt_server/test_sensor.py | 375 | # Step 4: Genuine new production — small value passes through | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | homeassistant/components/generic_thermostat/climate.py | 548 | # Note: If a manual interaction occurs within the 2s context window of a switch | COMMENT |
| MEDIUM | …t/components/geosphere_austria_warnings/coordinator.py | 28 | # Warnings are event driven and updated by GeoSphere Austria as needed. | COMMENT |
| MEDIUM | script/scaffold/__main__.py | 77 | # If we are calling scaffold on a non-existing integration, | COMMENT |
| MEDIUM | .github/workflows/quality-scale-reviewer-trigger.yml | 6 | # This workflow exists only to trigger stage 2 (the agentic workflow defined in | COMMENT |
| MEDIUM | .github/workflows/check-requirements-deterministic.yml | 6 | # results as an artifact. Stage 2 (the agentic workflow defined in | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | homeassistant/core_config.py | 460 | # Init whitelist external URL list - make sure to add / to every URL that doesn't | COMMENT |
| LOW | homeassistant/components/soundtouch/media_player.py | 329 | # make sure to not try to remove the master (aka current device) | COMMENT |
| MEDIUM | homeassistant/components/motionblinds_ble/strings.json | 75 | "description": "The default disconnect time is 15 seconds, adjustable using the slider below. You may want to ad | CODE |
| LOW | homeassistant/components/sftp_storage/__init__.py | 107 | # leftover files, make sure to log plain | COMMENT |
| LOW | homeassistant/components/matter/entity.py | 156 | # make sure to update the attributes once | COMMENT |
| LOW⚡ | tests/components/picnic/test_config_flow.py | 479 | # Create a mocked config entry and make sure to use the same | COMMENT |
| LOW | script/hassfest/docker.py | 12 | # Don't forget to update also Dockerfile.dev when updating this. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/components/elevenlabs/test_stt.py | 59 | CODE | |
| MEDIUM | tests/components/llama_cpp/test_config_flow.py | 363 | CODE | |
| MEDIUM | tests/components/sonos/test_services.py | 121 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | homeassistant/components/slack/notify.py | 337 | Get the Slack channel ID from the channel name. This method retrieves the channel ID for a given Slack channel | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/components/transport_nsw/test_sensor.py | 15 | "api_key": "YOUR_API_KEY", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | homeassistant/components/blue_current/__init__.py | 175 | async def run_task(self) -> None: | CODE |
| LOW | homeassistant/components/melcloud_home/common.py | 46 | async def perform_action( | CODE |
| LOW | tests/pylint/tests/test_registry_fixtures.py | 208 | def helper(hass): | STRING |
| LOW | tests/components/websocket_api/test_decorators.py | 21 | def handle_request(request, connection, msg): | CODE |