Reconstruct concrete nested subtypes using their actual dataclass owner - #17
Merged
Merged
Conversation
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.
A concrete nested dataclass subtype was flattened using its actual fields but reconstructed using its base annotation. In OpenHCS,
ObjectStaterejected an authoredVolumeSourceSpatialDomainat the compilation boundary withSourceSpatialDomain.__init__() got an unexpected keyword argument source_depth.The existing parameter type index now records the actual dataclass owner for concrete subtypes as well as lazy overlays. Raw, live and saved reconstruction consequently use the schema that was flattened. This removes the old annotation-first/lazy-only branch; no additional owner or fallback is introduced.
Validation: 41 lifecycle, restore and lazy controls passed, including raw/live/saved volume reconstruction, live edits with independent saved state, and base→subtype→base replacement topology. Both new controls reproduced the failure before the fix. The actual original 31-step 3D CellProfiler pipeline now survives import, public source roundtrip and ObjectState saved configuration with all three source bindings and intrinsic volume type retained (jointly qualified with the independent pycodify nominal-default fix).
Joint production qualification: the full original 31-step 3D pipeline passes public source decoding, orchestrator initialization using its actual 180-reference source index, and compilation to
CompiledExecutionBundleon OpenHCS2b9bb5649. No pipeline execution or performance result is claimed.Closes #16