From 319ef38d346ed5ce87b7f8b11054a8c484597e7f Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Tue, 28 Jun 2022 10:02:57 +0200 Subject: [PATCH] Add AlarmControlPanelEntity to pylint checks (#74091) --- pylint/plugins/hass_enforce_type_hints.py | 87 +++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/pylint/plugins/hass_enforce_type_hints.py b/pylint/plugins/hass_enforce_type_hints.py index 711f40b26ef..5c1a35c757a 100644 --- a/pylint/plugins/hass_enforce_type_hints.py +++ b/pylint/plugins/hass_enforce_type_hints.py @@ -572,6 +572,93 @@ _TOGGLE_ENTITY_MATCH: list[TypeHintMatch] = [ ), ] _INHERITANCE_MATCH: dict[str, list[ClassTypeHintMatch]] = { + "alarm_control_panel": [ + ClassTypeHintMatch( + base_class="Entity", + matches=_ENTITY_MATCH, + ), + ClassTypeHintMatch( + base_class="AlarmControlPanelEntity", + matches=[ + TypeHintMatch( + function_name="device_class", + return_type=["str", None], + ), + TypeHintMatch( + function_name="code_format", + return_type=["CodeFormat", None], + ), + TypeHintMatch( + function_name="changed_by", + return_type=["str", None], + ), + TypeHintMatch( + function_name="code_arm_required", + return_type="bool", + ), + TypeHintMatch( + function_name="supported_features", + return_type="int", + ), + TypeHintMatch( + function_name="alarm_disarm", + named_arg_types={ + "code": "str | None", + }, + return_type=None, + has_async_counterpart=True, + ), + TypeHintMatch( + function_name="alarm_arm_home", + named_arg_types={ + "code": "str | None", + }, + return_type=None, + has_async_counterpart=True, + ), + TypeHintMatch( + function_name="alarm_arm_away", + named_arg_types={ + "code": "str | None", + }, + return_type=None, + has_async_counterpart=True, + ), + TypeHintMatch( + function_name="alarm_arm_night", + named_arg_types={ + "code": "str | None", + }, + return_type=None, + has_async_counterpart=True, + ), + TypeHintMatch( + function_name="alarm_arm_vacation", + named_arg_types={ + "code": "str | None", + }, + return_type=None, + has_async_counterpart=True, + ), + TypeHintMatch( + function_name="alarm_trigger", + named_arg_types={ + "code": "str | None", + }, + return_type=None, + has_async_counterpart=True, + ), + TypeHintMatch( + function_name="alarm_arm_custom_bypass", + named_arg_types={ + "code": "str | None", + }, + return_type=None, + has_async_counterpart=True, + ), + ], + ), + ], "cover": [ ClassTypeHintMatch( base_class="Entity",