Skip to content

OUQBase: make implicit imports explicit (ExplicitImports no_implicit_imports) #32

Description

@ChrisRackauckas-Claude

Tracking the no_implicit_imports ExplicitImports check for OUQBase, currently marked ei_broken = (:no_implicit_imports,) in lib/OUQBase/test/qa/qa.jl (run_qa v1.6).

OUQBase relies on ~40 implicit imports brought in by heavy using of ModelingToolkit, Symbolics, Optimization, JuMP, SymbolicUtils, OrderedCollections, SciMLBase, CanonicalMoments/DiscreteMeasures, and Reexport. ExplicitImports.print_explicit_imports(OUQBase) lists them:

using CanonicalMoments: CanonicalMoments, DiscreteMeasure, DiscreteMeasureTransform1, DiscreteMeasures, ProductDiscreteMeasure, expectation, support, weights
using JuMP: JuMP, @constraint, @objective, @variable, set_lower_bound, set_name, set_upper_bound
using ModelingToolkit: ModelingToolkit, @named, OptimizationSystem, get_variables, getbounds, parameters, structural_simplify, unknowns
using Optimization: Optimization, AbstractADType
using OrderedCollections: OrderedCollections, OrderedDict
using Reexport: Reexport, @reexport
using SciMLBase: SciMLBase, OptimizationFunction, OptimizationProblem
using SymbolicUtils: SymbolicUtils, @rule, Rewriters, arguments, substitute
using Symbolics: Symbolics, Equation, Inequality

Making these explicit is a non-trivial refactor (name clashes such as supremum/infimum from Symbolics vs ModelingToolkit, order from CanonicalMoments vs DiscreteMeasures, @variables from JuMP vs Symbolics, simplify from SymbolicUtils vs JuMP must all be resolved by qualification), so it is deferred. When done, drop :no_implicit_imports from ei_broken in lib/OUQBase/test/qa/qa.jl.

ignore until reviewed by @ChrisRackauckas

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions