Problem Resolved
The op_engine provider currently reads mixing kernels from the system via getattr(system, "mixing_kernels", {}).
Update (Apr 8): The engine provider code already uses system.option("mixing_kernels", None) — the getattr pattern described originally was already replaced. The system-side fix (op_system populating self.options) landed in op_system PR #56 (merged Apr 8).
Remaining work
The only remaining introspection in the engine provider is:
stepper: SystemProtocol = system._stepper # noqa: SLF001
This should be replaced with system.bind() now that flepimop2 PR #182 has merged (Apr 8). This is tracked in #49.
Scope
Related
ProblemResolvedThe op_engine provider currently reads mixing kernels from the system viagetattr(system, "mixing_kernels", {}).Update (Apr 8): The engine provider code already uses
system.option("mixing_kernels", None)— thegetattrpattern described originally was already replaced. The system-side fix (op_system populatingself.options) landed in op_system PR #56 (merged Apr 8).Remaining work
The only remaining introspection in the engine provider is:
This should be replaced with
system.bind()now that flepimop2 PR #182 has merged (Apr 8). This is tracked in #49.Scope
system._stepperaccess with public bind API #49 (one-line change)Blocked by op_system update flepimop2 provider pacakge #12Unblocked — op_system PR Updatepyproject.tomlmetadata, closes #38 #56 wiredmixing_kernelsintoself.optionsBlocked by flepimop2 #131No longer relevant —ModuleABC.options+option()is the standard mechanismRelated
pyproject.tomlmetadata, closes #38 #56 (merged) — wiredmixing_kernelsintoself.optionssystem._stepperaccess with public bind API #49 — replacesystem._stepperwithsystem.bind()validate_system()in flepimop2 provider #41 — extendvalidate_system()to also usesystem.option()