Skip to content
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

Use init_subclass for Config Entries #26059

Merged
merged 2 commits into from Aug 20, 2019

Conversation

@balloob
Copy link
Member

commented Aug 19, 2019

Description:

I learned something new today and it looks like it can make our code slightly more readable.

I learned about init_subclass, a callback called when a class is inherited: https://docs.python.org/3/reference/datamodel.html#customizing-class-creation

This callback can receive keyword arguments by passing them to the inheritance part. This allows us to register config flows without decorating them!

class MetFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):

For this PR I updated Hue and Met to use this new approach.

Docs: home-assistant/developers.home-assistant#305

Checklist:

  • The code change is tested and works locally.
  • Local tests pass with tox. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist

If the code does not interact with devices:

  • Tests have been added to verify that the new code works.

@balloob balloob requested review from Danielhiversen and home-assistant/core as code owners Aug 19, 2019

@project-bot project-bot bot added this to Needs review in Dev Aug 19, 2019

@Danielhiversen
Copy link
Member

left a comment

Cool

Dev automation moved this from Needs review to Reviewer approved Aug 19, 2019

@Kane610
Copy link
Contributor

left a comment

Looks good to me!

@balloob balloob referenced this pull request Aug 20, 2019

@balloob balloob merged commit cf2d927 into dev Aug 20, 2019

11 checks passed

CI Build #20190820.4 succeeded
Details
CI (FullCheck Mypy) FullCheck Mypy succeeded
Details
CI (FullCheck Pylint) FullCheck Pylint succeeded
Details
CI (Overview CheckFormat) Overview CheckFormat succeeded
Details
CI (Overview Lint) Overview Lint succeeded
Details
CI (Overview Validate) Overview Validate succeeded
Details
CI (Tests PyTest Python36) Tests PyTest Python36 succeeded
Details
CI (Tests PyTest Python37) Tests PyTest Python37 succeeded
Details
cla-bot Everyone involved has signed the CLA
codecov/patch 100% of diff hit (target 94.02%)
Details
codecov/project 94% (target 90%)
Details

Dev automation moved this from Reviewer approved to Done Aug 20, 2019

@delete-merged-branch delete-merged-branch bot deleted the config-entries-init-subclass branch Aug 20, 2019

@lock lock bot locked and limited conversation to collaborators Aug 21, 2019

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
4 participants
You can’t perform that action at this time.