You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: use nac-yaml typ=safe to return plain dict/list (#788) (#796)
* fix: strip ruamel types at merge boundary to prevent Jinja2 attr collisions (#788)
Convert CommentedMap/CommentedSeq to plain dict/list via recursive
_to_builtin_types() in DataMerger.merge_data_files(), so Jinja2 templates
never see ruamel-internal attributes (tag, anchor, ca, etc.) via dot-notation.
This replaces the KeyFirstEnvironment approach from #789 with a simpler
solution — no blocklists, no custom Jinja2 Environment, no edge cases.
- Add _to_builtin_types() in data_merger.py (single-pass, no JSON overhead)
- Revert robot_writer.py to standard jinja2.Environment
- Add unit tests enforcing the no-ruamel-types contract
- Add integration test fixtures for attr collision regression
* fix: use nac-yaml typ=safe to return plain types, remove _to_builtin_types
Leverage nac-yaml's new typ='safe' parameter in load_yaml_files() to get
plain dict/list directly from the YAML parser, removing the need for
_to_builtin_types() post-processing in DataMerger.
- Pin nac-yaml to oboehmer/nac-yaml@load-typ branch with typ support
- Remove _to_builtin_types() and its unit tests from data_merger
- Keep contract tests and integration tests as regression guard
* build: allow direct references in hatch for nac-yaml git dep
* remove redundant method test
* change Any -> object typing
* update nac-yaml==2.0.0b2
0 commit comments