Skip to content

fix: model ordinary Tree containers for static consumers - #20

Closed
acecchini wants to merge 2 commits into
codex/checker-conformancefrom
codex/static-tree-containers
Closed

acecchini wants to merge 2 commits into
codex/checker-conformancefrom
codex/static-tree-containers

Conversation

@acecchini

@acecchini acecchini commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

The nominal static Tree stub rejected ordinary lists, dictionaries and leaves. A shared static-only model now accepts existing typed containers while retaining leaf information, including nested NumPy dtypes. Both optree and JAX use it without changing runtime traversal or structure binding.

The implementation follows counterexample-driven prototypes for mutable variance and self-iterating strings. Consumer fixtures cover mixed nesting, named tuples, empty inputs, None, arrays, and fourteen deliberate wrong-leaf calls per checker. A registered custom JAX node uses the existing conditional-alias pattern with its concrete static class; a runtime regression rejects an incorrect leaf dtype. The optree default-registry boundary is documented explicitly.

Validation: all four engines pass on Python 3.10–3.14 and maintained floor lanes. Exact beartype 0.23.0rc0 tree tests pass on both Python endpoints: 108 each. Locked dev tox: 1,044 passed, five expected platform/backend skips, 91.24% coverage. Hooks pass.

The plan/evidence is plans/2026-09-08-static-tree-containers.md. This PR is stacked on checker harness #17, independent of Like typing #19. User validation is required before merge.

Integration record: this reviewed head is preserved in main through PR #31, merge commit df81f00. The owner approved merging this work. This dependent PR is closed as integrated; its commits were not squashed or discarded.

@acecchini
acecchini force-pushed the codex/static-tree-containers branch from 96987b7 to 2513af4 Compare September 8, 2026 10:00
@acecchini
acecchini marked this pull request as ready for review September 8, 2026 10:11
@acecchini acecchini closed this Sep 8, 2026
@acecchini
acecchini deleted the codex/static-tree-containers branch September 8, 2026 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant