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
numberandselectplatforms.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
@settingdecorator creates a correspondingSettingDescriptorobject depending on the input parameters:min_valueormax_valueis defined, aNumberSettingDescriptoris created.EnumSettingDescriptoris created.The created
SettingDescriptorobjects 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.pyto rename previously used variablesettingsto_settingsand its exposed getter tocooker_settings(@syssi).