Skip to content

Update DeviceScanner to ScannerEntity in tomato #143102

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

Draft
wants to merge 3 commits into
base: dev
Choose a base branch
from

Conversation

sheldonip
Copy link
Contributor

Proposed change

SSIA.

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)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

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
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format 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.

To help with the load of incoming pull requests:

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR updates the Tomato component to replace the deprecated DeviceScanner with the new ScannerEntity.

  • Updates the import statement to use ScannerEntity instead of DeviceScanner.
  • Changes the class inheritance from DeviceScanner to ScannerEntity.
Comments suppressed due to low confidence (1)

homeassistant/components/tomato/device_tracker.py:52

  • [nitpick] Consider reviewing the class name and its docstring to ensure they accurately reflect the updated inheritance and new ScannerEntity functionality.
class TomatoDeviceScanner(ScannerEntity):

Copy link
Member

@joostlek joostlek left a comment

Choose a reason for hiding this comment

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

Pylint is failing, can you take a look?

@home-assistant home-assistant bot marked this pull request as draft April 16, 2025 20:30
@home-assistant
Copy link

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@sheldonip
Copy link
Contributor Author

Pylint is checking the return type should be DeviceScanner. Should I update the checking to allow DeviceScanner? But it would change the checking on all components.

@sheldonip sheldonip marked this pull request as ready for review April 28, 2025 22:29
@sheldonip sheldonip requested a review from a team as a code owner April 28, 2025 22:29
@home-assistant home-assistant bot requested a review from joostlek April 28, 2025 22:29
@@ -428,7 +428,7 @@ class ClassTypeHintMatch:
0: "HomeAssistant",
1: "ConfigType",
},
return_type=["DeviceScanner", None],
return_type=["DeviceScanner", "ScannerEntity", None],
Copy link
Member

Choose a reason for hiding this comment

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

This is not correct. ScannerEntity should only be used by integrations that support config entries. Refactor the tomato integration to use config entries when switching to use ScannerEntity.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That means rebuilding the integration to support config flow as well?

Copy link
Member

Choose a reason for hiding this comment

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

Yes, that's right.

@home-assistant home-assistant bot marked this pull request as draft April 29, 2025 04:57
Copy link

There hasn't been any activity on this pull request recently. This pull request has been automatically marked as stale because of that and will be closed if no further activity occurs within 7 days.
If you are the author of this PR, please leave a comment if you want to keep it open. Also, please rebase your PR onto the latest dev branch to ensure that it's up to date with the latest changes.
Thank you for your contribution!

@github-actions github-actions bot added the stale label Jun 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Migrate tomato from DeviceScanner to ScannerEntity
3 participants