Repository navigation
0.7.1: require ObjectState 3 - #28
Merged
Merged
Conversation
…ource ObjectState 3.0.0 removes build_context_stack(ancestor_objects=...). The value-update path no longer builds its own context stack: an unset field's placeholder is the state's resolved read of the field (WidgetService.show_resolved_value_as_placeholder), shared with the two refresh paths in ParameterOpsService. Provenance navigation reads get_provenance once per action. A value supplied by another config of the same object is found in the widget's own state, so it also works for a state without a scope id, which ObjectState 3 reports as (None, source_type). AbstractManagerWidget no longer builds an unused LiveContextResolver. Tests declare group abbreviations with @abbreviation and no longer assign the removed atomic-block attributes. CI installs ObjectState and formbridge at their branch heads until objectstate 3.0.0 and formbridge 0.1.2 are on PyPI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Caller update for ObjectState 3.0.0 (OpenHCSDev/ObjectState#50), with formbridge 0.1.2 (OpenHCSDev/formbridge#9). Not tagged or released.
Version: 0.7.1
No public name of pyqt-reactive is removed, so this is a patch release. What goes away is private:
AbstractManagerWidget._live_context_resolver(never called), the positional shape ofProvenanceNavigationMixin._compute_target_path, and the inline code ofWidgetService._apply_context_behavior.Sites changed (the 10 in the 3.0.0 caller ledger, plus the two it marked for review)
Each read of a config value now names which read it is: raw (what was set on the object), resolved (after inheritance), or preview (the resolved value with its source, while the field's own value stays unset).
services/widget_service.py:build_context_stack(..., ancestor_objects=...)raisesTypeErrorin ObjectState 3. The site did not need a context stack at all. It was a second resolver for a preview: it rebuilt the stack by hand, asked for placeholder text, then read the attribute again for the value, and used the default prefix instead of the form's. It now showsstate.get_resolved_value(path)through one method,WidgetService.show_resolved_value_as_placeholder, and the two refresh paths inParameterOpsService(which each repeated resolve-and-format) call the same method.widgets/shared/clickable_help_components.py(ledger: review):get_provenancecan return(None, source_type)for a state without a scope id. The ledger expected the same-window branch to handle it; it did not, because the target path was computed first fromObjectStateRegistry.get_by_scope(None), which is the global state. The source state is now the widget's own state whenever the source scope is the state's own scope. The source is read once per action (_provenance_source), without re-checking the tuple's shape.widgets/shared/abstract_manager_widget.py(ledger: review): the unusedLiveContextResolverinstance is deleted.pyproject.toml:objectstate>=3.0,<4,formbridge>=0.1.2,<0.2.requirements-ci.txt: ObjectState atabe763cand formbridge at1e73e6cuntil both are on PyPI.tests/test_preview_formatters.py: declares abbreviations with@abbreviationinstead of writing to the removedGROUP_ABBREVIATIONS_REGISTRY. The line that gave a lazy class a different abbreviation is gone: that state cannot exist in ObjectState 3.tests/test_function_list_editor_tokens.py: no longer assigns the removed_atomic_*attributes.tests/test_provenance_navigation.py: a value supplied by a sibling config scrolls the same window to the sibling field, with and without a scope id.No hits in this repo for the other removed names (cache-clear functions,
resolve_field_inheritance,legacy_entries, the tuple-shaped layer stack); checked again with one grep oversrc,tests,docs,examplesandscripts.Left as found, for the owner:
formbridge.forms.parameter_form_service.ParameterFormService.get_placeholder_texthas no caller after this change.Checks run locally (CPython 3.12, ObjectState
abe763c, formbridge1e73e6c)pytest tests -n 2: 593 passed, 1 failed. The failure istest_release_dependency_declarations.py::test_published_runtime_is_not_overridden_by_a_source_candidate, which compares the installedzmqruntimewith the declared bound; it fails the same way at 0.7.0 with ObjectState 2.1.1 in this environment (run there too).ruff check src/ --select E9,F63,F7,F822,F823: clean.scripts/check_ruff_added_lines.py --base origin/main --head HEAD: no diagnostics on added lines.Release order
ObjectState 3.0.0, formbridge 0.1.2, then this (empty
requirements-ci.txtfirst), then OpenHCS.🤖 Generated with Claude Code