Commit eb60564
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
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
14 | 18 | | |
15 | 19 | | |
16 | 20 | | |
| |||
0 commit comments