Skip to content

Commit 9291316

Browse files
baggepinnenclaude
andcommitted
make use of explicit rather than implicit imports of symbols
To prevent future breakage from name clashes introduced by modules we import exporting new names. Symbol lists derived from ExplicitImports.print_explicit_imports. Also drops stale explicit imports flagged by ExplicitImports: - BlasFloat (top-level ControlSystems) - PartitionedStateSpace (top-level timeresp) - issiso (top-level ControlSystems) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 2e102ad commit 9291316

3 files changed

Lines changed: 32 additions & 21 deletions

File tree

lib/ControlSystemsBase/src/ControlSystemsBase.jl

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -131,26 +131,36 @@ export LTISystem,
131131
add_output
132132

133133

134-
using RecipesBase, LinearAlgebra
135134
import Polynomials
136-
import Polynomials: Polynomial, coeffs
135+
import Polynomials: Polynomial, coeffs, conv # TODO: replace this internal function with something public
137136
import Base: +, -, *, /, (==), (!=), isapprox, convert, promote_op
138137
import Base: getproperty, getindex
139138
import Base: exp # for exp(-s)
140139
import LinearAlgebra: BlasFloat
141140
import Hungarian
141+
import MatrixPencils
142+
import Printf
143+
import Printf: @printf, @sprintf
142144

143145
export lyap # Make sure LinearAlgebra.lyap is available
144146
export plyap
145-
import Printf
146-
import Printf: @printf, @sprintf
147-
import Polynomials: conv # TODO: replace this internal function with something public
148-
using ForwardDiff
149-
import MatrixPencils
150-
using MacroTools
151-
using MatrixEquations
152-
using UUIDs # to load Plots in gangoffourplot
153-
using StaticArraysCore
147+
148+
# Explicit imports — only the symbols actually used in this module.
149+
# Prevents future breakage from upstream packages exporting new names.
150+
# Derived from `ExplicitImports.print_explicit_imports(ControlSystemsBase)`.
151+
using ForwardDiff: ForwardDiff
152+
using LinearAlgebra: LinearAlgebra, Adjoint, ColumnNorm, Diagonal, I, LAPACK,
153+
Symmetric, UniformScaling, UpperHessenberg, cholesky,
154+
cond, diag, diagind, diagm, eigen, eigvals, eigvals!,
155+
factorize, hessenberg, isdiag, ishermitian, isposdef,
156+
issuccess, ldiv!, lmul!, lu, lu!, lyap, mul!, norm,
157+
opnorm, pinv, qr, rank, rdiv!, schur, schur!, svd!,
158+
svdvals, svdvals!, tr
159+
using MacroTools: MacroTools
160+
using MatrixEquations: MatrixEquations, arec, ared, lyapc, lyapd
161+
using RecipesBase: RecipesBase, @recipe, @series, @userplot
162+
using StaticArraysCore: StaticArraysCore, SArray, SMatrix, SVector, SizedArray
163+
using UUIDs: UUIDs, UUID # to load Plots in gangoffourplot
154164

155165
abstract type AbstractSystem end
156166

src/ControlSystems.jl

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
module ControlSystems
22

3-
using Reexport
3+
using Reexport: Reexport, @reexport
44
@reexport using ControlSystemsBase
5-
using ControlSystemsBase: issiso, ninputs, noutputs, nstates, numeric_type
5+
# Explicit imports — only the symbols actually used in this module.
6+
# Derived from `ExplicitImports.print_explicit_imports(ControlSystems)`.
7+
using ControlSystemsBase: ControlSystemsBase, AbstractStateSpace, Continuous,
8+
c2d, iscontinuous, ninputs, noutputs, nstates, numeric_type
69
import DiffEqBase
710

8-
9-
using LinearAlgebra
11+
using LinearAlgebra: LinearAlgebra, diagind, mul!
1012
import OrdinaryDiffEq
11-
import LinearAlgebra: BlasFloat
1213
import DiffEqCallbacks: SavingCallback, SavedValues
1314
import DelayDiffEq
14-
using SparseArrays
15-
using StaticArrays
16-
using RecipesBase
17-
using Printf
15+
using SparseArrays: SparseArrays
16+
using StaticArrays: StaticArrays
17+
using RecipesBase: RecipesBase
18+
using Printf: Printf
1819

1920
export Simulator
2021

src/timeresp.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import OrdinaryDiffEq: ODEProblem, Tsit5, solve
22
import OrdinaryDiffEqLowOrderRK: BS3
3-
import ControlSystemsBase: lsim, step, impulse, HammersteinWienerSystem, DelayLtiSystem, PartitionedStateSpace, SimResult
3+
import ControlSystemsBase: lsim, step, impulse, HammersteinWienerSystem, DelayLtiSystem, SimResult
44
import DelayDiffEq: MethodOfSteps
55
# Function for DifferentialEquations lsim
66
"""

0 commit comments

Comments
 (0)