Implement introspectable settings #1500
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Continuing the work to make the library introspectable (#1495), this PR adds introspectable settings exposed in homeassitstant using
number
andselect
platforms.If you want to develop or test this, the homeassistant fork supporting these features is currently available at rytilahti/home-assistant@xiaomi_miio/feat/entities_from_upstream
The
@setting
decorator creates a correspondingSettingDescriptor
object depending on the input parameters:min_value
ormax_value
is defined, aNumberSettingDescriptor
is created.EnumSettingDescriptor
is created.The created
SettingDescriptor
objects are exposed to downstream users using theDevice.settings()
method.This also converts the descriptors to use attrs as kw_args is only available from python 3.10 onwards,
and using it is a prerequisite to allow sane inheritance on data classes.
Breaking change
This commit also touches
cooker.py
to rename previously used variablesettings
to_settings
and its exposed getter tocooker_settings
(@syssi).