lib.config: allow attributes to be recursively applied to struct items#763
Merged
Morg42 merged 5 commits intosmarthomeNG:developfrom Feb 24, 2026
Merged
lib.config: allow attributes to be recursively applied to struct items#763Morg42 merged 5 commits intosmarthomeNG:developfrom
Morg42 merged 5 commits intosmarthomeNG:developfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
closes #723
You can insert item structs into items:
or
If you want to recursively add attributes (e.g.
enforce_updates: trueordatabase: initorvisu_acl: ro...) to all items imported from a struct, you would have to explicitly and manually define every item.With this PR, you can do this as follows:
Note that:
:to make this a dict in yaml. Omitting the colon will prevent shng from being able to parse the yaml file.You can add multiple struct (in the usual list format), and you can add multiple attributes (also in list format as shown). And of course you can add different attributes each time you include the same dict...
Adding nested dict structs is possible, but might lead to unforeseen consequences, as nested attributes introduce subitems to all items...
would add item
subitemwith value 1 (and implicit typefoo) to every item in the struct...