You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Import public API from its owning module, not a re-exporter (#4880)
`ExplicitImports.check_all_explicit_imports_via_owners` and
`check_all_qualified_accesses_via_owners` both failed on `ModelingToolkit`
because ten bindings were reached through a package that merely forwards them:
- `@add_kwonly`, `NullParameters`, `value` via `DiffEqBase` (owner `SciMLBase`)
- `Operator`, `Term`, `_iszero`, `_isone` via `Symbolics` (owner `SymbolicUtils`)
- `getname` via `Symbolics` (owner `SymbolicIndexingInterface`)
- `maketerm`, `metadata` via `SymbolicUtils` (owner `TermInterface`)
- `topological_sort`, `value`, `var_from_nested_derivative`, `schedule` via
`ModelingToolkitBase` in the `StructuralTransformations` submodule
(owners `Graphs`, `Symbolics`, `Symbolics`, `Base`)
Each name is now imported from the module that declares it. Every relocated
binding was checked to be `===` to the one previously used, so this is a pure
import-site change with no behaviour difference. `schedule` was unused and is
dropped rather than re-pointed.
Four of the moved names (`@add_kwonly`, `NullParameters`, `value`, `getname`)
plus `maketerm`/`metadata` are `public` at their owner but not at the
re-exporter, so this also drops the `*_are_public` findings from 57/91 to
53/89.
`TermInterface` becomes a direct dependency; it was already in the manifest
through `SymbolicUtils`.
Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>
0 commit comments