Do not mistake a bracketed object name for a replacemsg placeholder - #910
Open
ggiesen wants to merge 1 commit into
Open
Do not mistake a bracketed object name for a replacemsg placeholder#910ggiesen wants to merge 1 commit into
ggiesen wants to merge 1 commit into
Conversation
_parse_out_offending moves a config system replacemsg buffer aside and leaves a ["<name>"] placeholder, which _build_nested_config restores. The restore was guarded by the presence of a bracket alone, so any line containing one was taken for a placeholder, and a lookup miss raised ValueError out of __init__ and lost the whole configuration. _build_nested_config receives the first indented line of a top-level block, so an object name with a bracket there was enough to trigger it. The guard now also requires the quoted key to be one that _get_uncommon_lines produced, and leaves the line alone otherwise. Fixes networktocode#908
ggiesen
requested review from
itdependsnetworks and
jeffkala
as code owners
September 10, 2026 17:33
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.
Fixes #908.
_parse_out_offending()moves aconfig system replacemsgbuffer aside and leaves a["<name>"]placeholder, which_build_nested_config()restores. The restore was guarded by the presence of a bracket alone, so any line containing one was taken for a placeholder, and a lookup miss raisedValueError: Input line is malformed.out of__init__, losing the whole config._build_nested_config()receives the first indented line of a top-level block, so an object name with a bracket there is enough to trigger it:The guard now also requires the quoted key to be one that
_get_uncommon_lines()produced, and leaves the line alone otherwise.Tests cover both the bracketed name and a genuine placeholder still being restored. 823 passed, 6 skipped; ruff, pylint and mypy clean.