Skip to content

Commit eb60564

Browse files
jtdubclaude
andauthored
Rebase next against master (#242)
* Add CODEOWNERS file Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Add Literal type constraint for cisco_style_text() style parameter (#189) (#240) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Drop v2 migration utilities, rename to load_driver_rules/load_tag_rules, and reorganize tests (#221) Remove v2-to-v3 platform mapping functions and constants. Rename load_hconfig_v2_options to load_driver_rules and load_hconfig_v2_tags to load_tag_rules, preserving dict-based driver extension for Nautobot Golden Config compatibility. Reorganize test suite into unit/, integration/, and benchmarks/ directories mirroring the source code structure. Split the 2079-line test_hier_config.py into focused files by module (test_root.py, test_child.py, test_children.py). Separate driver remediation scenario tests into integration/ and unit tests into unit/platforms/. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Fix load_tag_rules: use _collect_match_rules and correct return type Replace inline match-rule collection with existing _collect_match_rules helper for consistency. Simplify return type from tuple[TagRule] | tuple[TagRule, ...] to tuple[TagRule, ...]. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * update gha to test against the next branch * Fix __hash__/__eq__ inconsistency in HConfigChild (#185) (#236) * Fix __hash__/__eq__ inconsistency in HConfigChild (#185) __hash__ included new_in_config and order_weight but __eq__ intentionally excluded them, violating the Python invariant that a == b implies hash(a) == hash(b). __eq__ also checked tags but __hash__ did not include them. Align __hash__ to use the same fields as __eq__: text, tags, and children. Add five tests covering each dimension of the inconsistency and its practical impact on set deduplication and dict key lookup. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Fix pre-existing lint errors in next branch - test_benchmarks.py: replace append loops with extend (PERF401), add @staticmethod to methods that don't use self (PLR6301), suppress intentional print calls with noqa: T201 - test_child.py: suppress pylint too-many-lines (C0302) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * Move Huawei VRP tests to integration test directory Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Rename inconsistent public APIs (#216) - tags_add()/tags_remove() → add_tags()/remove_tags() - cisco_style_text() → indented_text() - dump_simple() → to_lines() - config_to_get_to() → remediation() - depth() method → depth property - Rename private helpers _config_to_get_to/_left/_right accordingly Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Add custom exception hierarchy (#219) (#239) Add HierConfigError as the base exception with DriverNotFoundError, InvalidConfigError, IncompatibleDriverError, and reparent DuplicateChildError under it. Replace generic ValueError/TypeError raises in constructors and workflows with specific exception types. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Add Literal type constraint for indented_text() style parameter (#189) (#241) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent aefb3b8 commit eb60564

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
### Added
1313

14+
- `TextStyle` type alias (`Literal["without_comments", "merged", "with_comments"]`) for
15+
the `style` parameter on `HConfigChild.cisco_style_text()` and
16+
`RemediationReporter.to_text()`, replacing the unconstrained `str` type (#189).
17+
1418
- Performance benchmarks for parsing, remediation, and iteration (#202).
1519
Skipped by default; run with `poetry run pytest -m benchmark -v -s`.
1620

0 commit comments

Comments
 (0)