Skip to content
This repository was archived by the owner on May 15, 2025. It is now read-only.

Commit 8407682

Browse files
committed
Add explicit imports
1 parent 0916acf commit 8407682

File tree

6 files changed

+69
-47
lines changed

6 files changed

+69
-47
lines changed

Project.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ ChainRulesCore = "1.22"
4545
ConcreteStructs = "0.2.3"
4646
DiffEqBase = "6.149"
4747
DiffResults = "1.1"
48+
ExplicitImports = "1.5.0"
4849
FastClosures = "0.3.2"
4950
FiniteDiff = "2.22"
5051
ForwardDiff = "0.10.36"
@@ -73,6 +74,7 @@ AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a"
7374
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
7475
CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba"
7576
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
77+
ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7"
7678
FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41"
7779
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
7880
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
@@ -91,4 +93,4 @@ Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
9193
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"
9294

9395
[targets]
94-
test = ["Aqua", "AllocCheck", "DiffEqBase", "ForwardDiff", "LinearAlgebra", "LinearSolve", "NonlinearProblemLibrary", "Pkg", "Random", "ReTestItems", "SciMLSensitivity", "StaticArrays", "Zygote", "CUDA", "PolyesterForwardDiff", "Reexport", "Test", "FiniteDiff", "ReverseDiff", "Tracker"]
96+
test = ["AllocCheck", "Aqua", "CUDA", "DiffEqBase", "ExplicitImports", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "NonlinearProblemLibrary", "Pkg", "PolyesterForwardDiff", "Random", "ReTestItems", "Reexport", "ReverseDiff", "SciMLSensitivity", "StaticArrays", "Test", "Tracker", "Zygote"]

ext/SimpleNonlinearSolveReverseDiffExt.jl

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,65 +5,61 @@ using DiffEqBase: DiffEqBase
55
using ReverseDiff: ReverseDiff, TrackedArray, TrackedReal
66
using SciMLBase: ReverseDiffOriginator, NonlinearProblem, NonlinearLeastSquaresProblem
77
using SimpleNonlinearSolve: SimpleNonlinearSolve
8+
import SimpleNonlinearSolve: __internal_solve_up
89

9-
function SimpleNonlinearSolve.__internal_solve_up(
10+
function __internal_solve_up(
1011
prob::Union{NonlinearProblem, NonlinearLeastSquaresProblem}, sensealg,
1112
u0::TrackedArray, u0_changed, p::TrackedArray, p_changed, alg, args...; kwargs...)
12-
return ReverseDiff.track(SimpleNonlinearSolve.__internal_solve_up, prob, sensealg,
13-
u0, u0_changed, p, p_changed, alg, args...; kwargs...)
13+
return ReverseDiff.track(__internal_solve_up, prob, sensealg, u0,
14+
u0_changed, p, p_changed, alg, args...; kwargs...)
1415
end
1516

16-
function SimpleNonlinearSolve.__internal_solve_up(
17+
function __internal_solve_up(
1718
prob::Union{NonlinearProblem, NonlinearLeastSquaresProblem}, sensealg,
1819
u0, u0_changed, p::TrackedArray, p_changed, alg, args...; kwargs...)
19-
return ReverseDiff.track(SimpleNonlinearSolve.__internal_solve_up, prob, sensealg,
20-
u0, u0_changed, p, p_changed, alg, args...; kwargs...)
20+
return ReverseDiff.track(__internal_solve_up, prob, sensealg, u0,
21+
u0_changed, p, p_changed, alg, args...; kwargs...)
2122
end
2223

23-
function SimpleNonlinearSolve.__internal_solve_up(
24+
function __internal_solve_up(
2425
prob::Union{NonlinearProblem, NonlinearLeastSquaresProblem}, sensealg,
2526
u0::TrackedArray, u0_changed, p, p_changed, alg, args...; kwargs...)
26-
return ReverseDiff.track(SimpleNonlinearSolve.__internal_solve_up, prob, sensealg,
27-
u0, u0_changed, p, p_changed, alg, args...; kwargs...)
27+
return ReverseDiff.track(__internal_solve_up, prob, sensealg, u0,
28+
u0_changed, p, p_changed, alg, args...; kwargs...)
2829
end
2930

30-
function SimpleNonlinearSolve.__internal_solve_up(
31-
prob::Union{NonlinearProblem, NonlinearLeastSquaresProblem},
31+
function __internal_solve_up(prob::Union{NonlinearProblem, NonlinearLeastSquaresProblem},
3232
sensealg, u0::AbstractArray{<:TrackedReal}, u0_changed,
3333
p::AbstractArray{<:TrackedReal}, p_changed, alg, args...; kwargs...)
34-
return SimpleNonlinearSolve.__internal_solve_up(
35-
prob, sensealg, ArrayInterface.aos_to_soa(u0), true,
34+
return __internal_solve_up(prob, sensealg, ArrayInterface.aos_to_soa(u0), true,
3635
ArrayInterface.aos_to_soa(p), true, alg, args...; kwargs...)
3736
end
3837

39-
function SimpleNonlinearSolve.__internal_solve_up(
38+
function __internal_solve_up(
4039
prob::Union{NonlinearProblem, NonlinearLeastSquaresProblem}, sensealg, u0,
4140
u0_changed, p::AbstractArray{<:TrackedReal}, p_changed, alg, args...; kwargs...)
42-
return SimpleNonlinearSolve.__internal_solve_up(
43-
prob, sensealg, u0, true, ArrayInterface.aos_to_soa(p),
41+
return __internal_solve_up(prob, sensealg, u0, true, ArrayInterface.aos_to_soa(p),
4442
true, alg, args...; kwargs...)
4543
end
4644

47-
function SimpleNonlinearSolve.__internal_solve_up(
48-
prob::Union{NonlinearProblem, NonlinearLeastSquaresProblem},
45+
function __internal_solve_up(prob::Union{NonlinearProblem, NonlinearLeastSquaresProblem},
4946
sensealg, u0::AbstractArray{<:TrackedReal},
5047
u0_changed, p, p_changed, alg, args...; kwargs...)
51-
return SimpleNonlinearSolve.__internal_solve_up(
52-
prob, sensealg, u0, true, ArrayInterface.aos_to_soa(p),
48+
return __internal_solve_up(prob, sensealg, u0, true, ArrayInterface.aos_to_soa(p),
5349
true, alg, args...; kwargs...)
5450
end
5551

56-
ReverseDiff.@grad function SimpleNonlinearSolve.__internal_solve_up(
52+
ReverseDiff.@grad function __internal_solve_up(
5753
prob::Union{NonlinearProblem, NonlinearLeastSquaresProblem},
5854
sensealg, u0, u0_changed, p, p_changed, alg, args...; kwargs...)
5955
out, ∇internal = DiffEqBase._solve_adjoint(
6056
prob, sensealg, ReverseDiff.value(u0), ReverseDiff.value(p),
6157
ReverseDiffOriginator(), alg, args...; kwargs...)
62-
functionSimpleNonlinearSolve.__internal_solve_up(_args...)
58+
function ∇__internal_solve_up(_args...)
6359
∂prob, ∂sensealg, ∂u0, ∂p, ∂originator, ∂args... = ∇internal(_args...)
6460
return (∂prob, ∂sensealg, ∂u0, nothing, ∂p, nothing, nothing, ∂args...)
6561
end
66-
return Array(out), ∇SimpleNonlinearSolve.__internal_solve_up
62+
return Array(out), ∇__internal_solve_up
6763
end
6864

6965
end

ext/SimpleNonlinearSolveTrackerExt.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Tracker.@grad function SimpleNonlinearSolve.__internal_solve_up(
3232
u0, p = Tracker.data(u0_), Tracker.data(p_)
3333
prob = remake(_prob; u0, p)
3434
out, ∇internal = DiffEqBase._solve_adjoint(
35-
prob, sensealg, u0, p, SciMLBase.TrackerOriginator(), alg, args...; kwargs...)
35+
prob, sensealg, u0, p, TrackerOriginator(), alg, args...; kwargs...)
3636

3737
function ∇__internal_solve_up(Δ)
3838
∂prob, ∂sensealg, ∂u0, ∂p, ∂originator, ∂args... = ∇internal(Δ)

src/SimpleNonlinearSolve.jl

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,31 @@
11
module SimpleNonlinearSolve
22

3-
import PrecompileTools: @compile_workload, @setup_workload, @recompile_invalidations
3+
using PrecompileTools: @compile_workload, @setup_workload, @recompile_invalidations
44

55
@recompile_invalidations begin
6-
using ADTypes, ArrayInterface, ConcreteStructs, DiffEqBase, FastClosures, FiniteDiff,
7-
ForwardDiff, Reexport, LinearAlgebra, SciMLBase
8-
9-
import DiffEqBase: AbstractNonlinearTerminationMode,
10-
AbstractSafeNonlinearTerminationMode,
11-
AbstractSafeBestNonlinearTerminationMode, NONLINEARSOLVE_DEFAULT_NORM
12-
import DiffResults
13-
import ForwardDiff: Dual
14-
import MaybeInplace: @bb, setindex_trait, CanSetindex, CannotSetindex
15-
import SciMLBase: AbstractNonlinearAlgorithm, build_solution, isinplace, _unwrap_val
16-
import StaticArraysCore: StaticArray, SVector, SMatrix, SArray, MArray, Size
6+
using ADTypes: ADTypes, AutoFiniteDiff, AutoForwardDiff, AutoPolyesterForwardDiff
7+
using ArrayInterface: ArrayInterface
8+
using ConcreteStructs: @concrete
9+
using DiffEqBase: DiffEqBase, AbstractNonlinearTerminationMode,
10+
AbstractSafeNonlinearTerminationMode,
11+
AbstractSafeBestNonlinearTerminationMode, AbsNormTerminationMode,
12+
NONLINEARSOLVE_DEFAULT_NORM
13+
using DiffResults: DiffResults
14+
using FastClosures: @closure
15+
using FiniteDiff: FiniteDiff
16+
using ForwardDiff: ForwardDiff, Dual
17+
using LinearAlgebra: LinearAlgebra, I, convert, copyto!, diagind, dot, issuccess, lu,
18+
mul!, norm, transpose
19+
using MaybeInplace: @bb, setindex_trait, CanSetindex, CannotSetindex
20+
using Reexport: @reexport
21+
using SciMLBase: SciMLBase, IntervalNonlinearProblem, NonlinearFunction,
22+
NonlinearLeastSquaresProblem, NonlinearProblem, ReturnCode, init,
23+
remake, solve, AbstractNonlinearAlgorithm, build_solution, isinplace,
24+
_unwrap_val
25+
using StaticArraysCore: StaticArray, SVector, SMatrix, SArray, MArray, Size
1726
end
1827

19-
@reexport using ADTypes, SciMLBase
28+
@reexport using SciMLBase
2029

2130
abstract type AbstractSimpleNonlinearSolveAlgorithm <: AbstractNonlinearAlgorithm end
2231
abstract type AbstractBracketingAlgorithm <: AbstractSimpleNonlinearSolveAlgorithm end
@@ -110,6 +119,7 @@ end
110119
end
111120
end
112121

122+
export AutoFiniteDiff, AutoForwardDiff, AutoPolyesterForwardDiff
113123
export SimpleBroyden, SimpleDFSane, SimpleGaussNewton, SimpleHalley, SimpleKlement,
114124
SimpleLimitedMemoryBroyden, SimpleNewtonRaphson, SimpleTrustRegion
115125
export Alefeld, Bisection, Brent, Falsi, ITP, Ridder

test/core/aqua_tests.jl

Lines changed: 0 additions & 9 deletions
This file was deleted.

test/core/qa_tests.jl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
@testitem "Aqua" tags=[:core] begin
2+
using Aqua
3+
4+
Aqua.test_all(SimpleNonlinearSolve; piracies = false, ambiguities = false)
5+
Aqua.test_piracies(SimpleNonlinearSolve;
6+
treat_as_own = [
7+
NonlinearProblem, NonlinearLeastSquaresProblem, IntervalNonlinearProblem])
8+
Aqua.test_ambiguities(SimpleNonlinearSolve; recursive = false)
9+
end
10+
11+
@testitem "Explicit Imports" tags=[:core] begin
12+
import PolyesterForwardDiff, ReverseDiff, Tracker, StaticArrays, Zygote
13+
14+
using ExplicitImports
15+
16+
@test check_no_implicit_imports(
17+
SimpleNonlinearSolve; skip = (SimpleNonlinearSolve, Base, Core, SciMLBase)) ===
18+
nothing
19+
20+
@test check_no_stale_explicit_imports(SimpleNonlinearSolve) === nothing
21+
22+
@test check_all_qualified_accesses_via_owners(SimpleNonlinearSolve) === nothing
23+
end

0 commit comments

Comments
 (0)