8000 Fix mypy issues in zha core modules by epenet · Pull Request #74028 · home-assistant/core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Fix mypy issues in zha core modules #74028

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jun 28, 2022

Conversation

epenet
Copy link
Contributor
@epenet epenet commented Jun 27, 2022

Proposed change

Fix mypy issues in zha device, gateway, group and helpers
Linked to #73603

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • The code has been formatted using Black (black --fast homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
  • Untested files have been added to .coveragerc.

The integration reached or maintains the following Integration Quality Scale:

  • No score or internal
  • 🥈 Silver
  • 🥇 Gold
  • 🏆 Platinum

To help with the load of incoming pull requests:

@probot-home-assistant
Copy link

Hey there @dmulcahey, @Adminiuga, mind taking a look at this pull request as it has been labeled with an integration (zha) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)

@@ -428,6 +430,7 @@ def _cleanup_group_entity_registry_entries(
]

# then we get all group entity entries tied to the coordinator
assert self.coordinator_zha_device
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

self.coordinator_zha_device.device_id would have failed if self.coordinator_zha_device was None.

ZHAGroupMember(
self, self._zha_gateway.devices.get(member_ieee), endpoint_id
)
ZHAGroupMember(self, self._zha_gateway.devices[member_ieee], endpoint_id)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a check in the list comprehension for if member_ieee in self._zha_gateway.devices so we know it is present.

@@ -78,7 +78,7 @@ def member_info(self) -> dict[str, Any]:
return member_info

@property
def associated_entities(self) -> list[GroupEntityReference]:
def associated_entities(self) -> list[dict[str, Any]]:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that _asdict() makes this a better type hint

@epenet epenet changed the title Fix mypy issues in zha gateway, group and helpers Fix mypy issues in zha device, gateway, group and helpers Jun 27, 2022
@epenet epenet changed the title Fix mypy issues in zha device, gateway, group and helpers Fix mypy issues in zha core modules Jun 27, 2022
@epenet epenet mentioned this pull request Jun 27, 2022
38 tasks
@@ -819,7 +819,7 @@ async def _async_group_binding_operation(
fmt = f"{log_msg[1]} completed: %s"
zdo.debug(fmt, *(log_msg[2] + (outcome,)))

def log(self, level: int, msg: str, *args: Any, **kwargs: dict) -> None:
def log(self, level: int, msg: str, *args: Any, **kwargs: Any) -> None:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For **kwargs type hints, we need to specify only the value type of the dict, not the dict itself.

@@ -276,7 +276,7 @@ def is_groupable(self) -> bool:
@property
def skip_configuration(self) -> bool:
"""Return true if the device should not issue configuration related commands."""
return self._zigpy_device.skip_configuration or self.is_coordinator
return self._zigpy_device.skip_configuration or bool(self.is_coordinator)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

self.is_coordinator can be None, so we need to convert falsey values to a proper boolean.

Copy link
Contributor
@Adminiuga Adminiuga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm

@frenck frenck added the smash Indicator this PR is close to finish for merging or closing label Jun 27, 2022
@frenck
Copy link
Member
frenck commented Jun 28, 2022

Needs #74079 to get the CI pass

@epenet epenet closed this Jun 28, 2022
@epenet epenet reopened this Jun 28, 2022
@MartinHjelmare MartinHjelmare merged commit fb10853 into home-assistant:dev Jun 28, 2022
@epenet epenet deleted the zha-type-hint branch June 28, 2022 06:50
@github-actions github-actions bot locked and limited conversation to collaborators Jun 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cla-signed code-quality integration: zha small-pr PRs with less than 30 lines. smash Indicator this PR is close to finish for merging or closing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants
0