This PR fixes the Arduino-style config imports (boards.txt, etc) only allow a maximum depth of 3 keys, and now allows for an infinite depth of keys.
For instance, previously you could only import a maximum depth such as:
KeyOne.KeyTwo.KeyThree=MyValue
Deeper key/value pairs would previous be discarded and appear incomplete when requested as a setting. For example, this was not possible, and now is:
KeyOne.KeyTwo.KeyThree.KeyFour.KeyFive.KeySix=MyValue
Also added a bugfix which allows the load_arduino_style_settings function to correctly import settings values that contain the = character. Previously anything between the two = characters would be omitted.
The index of keys for each collection, previously SETTINGS and SUBSETTINGS, has been standardised to just SETTINGS.
print_settings() has also been modified for compatibility, using recursion to walk any specified settings tree.
Technically, it can also report on any variable that is requested, not just collections (bug? improvement? whoops?)
This PR fixes the Arduino-style config imports (boards.txt, etc) only allow a maximum depth of 3 keys, and now allows for an infinite depth of keys.
For instance, previously you could only import a maximum depth such as:
KeyOne.KeyTwo.KeyThree=MyValue
Deeper key/value pairs would previous be discarded and appear incomplete when requested as a setting. For example, this was not possible, and now is:KeyOne.KeyTwo.KeyThree.KeyFour.KeyFive.KeySix=MyValue
Also added a bugfix which allows the load_arduino_style_settings function to correctly import settings values that contain the
=
character. Previously anything between the two=
characters would be omitted.The index of keys for each collection, previously
SETTINGS
andSUBSETTINGS
, has been standardised to justSETTINGS
.print_settings()
has also been modified for compatibility, using recursion to walk any specified settings tree. Technically, it can also report on any variable that is requested, not just collections (bug? improvement? whoops?)