Skip to content

refactor(view): remove the analytic binder (RS-W2-3 PR-B) - #553

Merged
dwolfson merged 1 commit into
odpi:mainfrom
dwolfson:feat/rs-w2-3-pr-b-binder-removal
Nov 8, 2026
Merged

dwolfson merged 1 commit into
odpi:mainfrom
dwolfson:feat/rs-w2-3-pr-b-binder-removal

Conversation

@dwolfson

@dwolfson dwolfson commented Nov 8, 2026

Copy link
Copy Markdown
Member

RS-W2-3 PR-B: remove the analytic binder

PR-A (#552) made analytic_binders redundant. A routine's non-JSON arguments (clients, readers, the viewer) are now its declared inputs, and the environment's role supply provides them: PlainSupply in plain pyegeria, PortalSupply in the Portal, and RE's own supply. This PR deletes the binder mechanism.

Changes

  • Deleted _apply_analytic_binders, its call in _run_analytic_function, ActionParameter.analytic_binders, and the resolver's binder checks.
  • Compatibility shim for one release. ActionParameter still accepts the analytic_binders key and ignores it:
    • An empty key is ignored silently. The 274 empty keys in md_processing/data/generated_format_sets.json load this way.
    • A non-empty key logs a warning and raises a DeprecationWarning that names the parameters it bound.
  • No built-in, demo or egeria-trellis-analytics 0.4.0 spec set a binder, so no spec is rewritten.
  • Read-back R4: dropped a dead getattr on func_decl.
  • Tests:
    • New tests for the deprecation shim, for a spec that carries a binder running on declared inputs alone, and for a reader input supplied by the environment.
    • These replace the ISSUE-138 binder tests.
  • docs/output-formats-and-report-specs.md and ISSUE-138 in PYEGERIA_ISSUES.md are updated.

Release-note text (for 6.2.26)

  • analytic_binders is deprecated. It is ignored from 6.2.26 and will be removed in a later release. A routine that needs a non-JSON argument declares it as an input, and the role supply provides it.
  • Check 5 (R1, carried from feat(view): executor supplies declared input roles (RS-W2-3 PR-A) #552). A config-tier, entry-point or runtime-registered routine is now refused, with an explanation, at load and at run, if it takes mgr/ce/expert/client but declares no inputs. The fix is to declare its inputs.

Verification

  • Coordinator gate, full micro-suite on Python 3.13: 2257 tests, 0 failed, 0 errors, 3 skipped.
  • Architect read-back, PASS (READBACK-RS-W2-3-PR-B-and-portal-2026-11-08.md):
    • 2255 / 0 failed without the library, and 2380 / 0 failed with egeria-trellis-analytics 0.4.0.
    • Census: 438 specs, 2 unrunnable (unchanged).
    • In code, analytic_binders appears only in the shim.
  • Builder: the 46 demo outputs are byte-identical to 6.2.25.

🤖 Generated with Claude Code

PR-A made analytic_binders redundant: a routine's non-JSON arguments are
its declared inputs, provided by the environment's role supply.

- Delete _apply_analytic_binders, its call in _run_analytic_function,
  ActionParameter.analytic_binders and the resolver's binder checks.
- ActionParameter accepts the key for one release and ignores it:
  silently when empty (older generated specs), with a DeprecationWarning
  and a logged warning naming the parameters when not.
- No built-in, demo or trellis-analytics 0.4.0 spec set it, so no spec
  is rewritten.
- Read-back R4: drop the dead getattr on func_decl.
- Tests: deprecation shim, a binder-carrying spec running on declared
  inputs alone, and a reader input supplied by the environment (replaces
  the ISSUE-138 binder tests). Docs and ISSUE-138 updated.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
@dwolfson
dwolfson merged commit aef1913 into odpi:main Nov 8, 2026
6 checks passed
dwolfson added a commit that referenced this pull request Nov 8, 2026
Ships #552 (RS-W2-3 PR-A: executor supplies declared input roles) and
#553 (RS-W2-3 PR-B: analytic binder removed; analytic_binders ignored
with a DeprecationWarning for one release).

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
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