From 2c344b614cdeaaaad8115b6f30ceb18af8da5c23 Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Sun, 5 Oct 2025 15:27:22 +0200 Subject: [PATCH 1/2] feat: improve error handling for Plots.jl integration - Add RecipesBase as a dependency for better Plots.jl integration - Re-export plot function from RecipesBase for easier access - Export additional CTBase exceptions for better error handling - Bump version to 1.1.4 --- Project.toml | 4 +++- src/OptimalControl.jl | 28 ++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/Project.toml b/Project.toml index 0f6a5ee6b..18f40956d 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "OptimalControl" uuid = "5f98b655-cc9a-415a-b60e-744165666948" authors = ["Olivier Cots "] -version = "1.1.3" +version = "1.1.4" [deps] ADNLPModels = "54578032-b7ea-4c30-94aa-7cbd1cce6c9a" @@ -13,6 +13,7 @@ CTParser = "32681960-a1b1-40db-9bff-a1ca817385d1" CommonSolve = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" ExaModels = "1037b233-b668-4ce9-9b63-f9f681f55dd2" +RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" [compat] ADNLPModels = "0.8" @@ -24,4 +25,5 @@ CTParser = "0.7" CommonSolve = "0.2" DocStringExtensions = "0.9" ExaModels = "0.9" +RecipesBase = "1" julia = "1.10" diff --git a/src/OptimalControl.jl b/src/OptimalControl.jl index 41681e226..060a96af3 100644 --- a/src/OptimalControl.jl +++ b/src/OptimalControl.jl @@ -10,8 +10,28 @@ module OptimalControl using DocStringExtensions # CTBase -import CTBase: CTBase, ParsingError -export ParsingError +import CTBase: + CTBase, + ParsingError, + CTException, + AmbiguousDescription, + IncorrectArgument, + IncorrectMethod, + IncorrectOutput, + NotImplemented, + UnauthorizedCall, + ExtensionError, + doc_app +export ParsingError, + CTException, + AmbiguousDescription, + IncorrectArgument, + IncorrectMethod, + IncorrectOutput, + NotImplemented, + UnauthorizedCall, + ExtensionError, + doc_app # CTParser import CTParser: CTParser, @def @@ -23,6 +43,10 @@ function __init__() CTParser.e_prefix!(:OptimalControl) end +# RecipesBase.plot +import RecipesBase: RecipesBase, plot +export plot + # CTModels import CTModels: CTModels, From 77f81e18ba2d9356a5efc42aa74374cf6aece44e Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Sun, 5 Oct 2025 17:14:36 +0200 Subject: [PATCH 2/2] fix --- docs/src/api-optimalcontrol-user.md | 8 ++++++++ docs/src/assets/Manifest.toml | 4 ++-- src/OptimalControl.jl | 6 ++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/src/api-optimalcontrol-user.md b/docs/src/api-optimalcontrol-user.md index 7241ea58b..7f34e196c 100644 --- a/docs/src/api-optimalcontrol-user.md +++ b/docs/src/api-optimalcontrol-user.md @@ -32,18 +32,26 @@ Private = false ```@docs; canonical=true *(::CTFlowsODE.AbstractFlow) +AmbiguousDescription +CTException +ExtensionError Flow Hamiltonian HamiltonianLift HamiltonianVectorField +IncorrectArgument +IncorrectMethod +IncorrectOutput @Lie Lie Lift Model +NotImplemented ParsingError Poisson Solution VectorField +UnauthorizedCall available_methods build_OCP_solution constraint(::Model, ::Symbol) diff --git a/docs/src/assets/Manifest.toml b/docs/src/assets/Manifest.toml index 5b99b6804..9867d270e 100644 --- a/docs/src/assets/Manifest.toml +++ b/docs/src/assets/Manifest.toml @@ -1674,10 +1674,10 @@ uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.6+0" [[deps.OptimalControl]] -deps = ["ADNLPModels", "CTBase", "CTDirect", "CTFlows", "CTModels", "CTParser", "CommonSolve", "DocStringExtensions", "ExaModels"] +deps = ["ADNLPModels", "CTBase", "CTDirect", "CTFlows", "CTModels", "CTParser", "CommonSolve", "DocStringExtensions", "ExaModels", "RecipesBase"] path = "/Users/ocots/Research/logiciels/dev/control-toolbox/OptimalControl" uuid = "5f98b655-cc9a-415a-b60e-744165666948" -version = "1.1.3" +version = "1.1.4" [[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] diff --git a/src/OptimalControl.jl b/src/OptimalControl.jl index 060a96af3..0ef2643d4 100644 --- a/src/OptimalControl.jl +++ b/src/OptimalControl.jl @@ -20,8 +20,7 @@ import CTBase: IncorrectOutput, NotImplemented, UnauthorizedCall, - ExtensionError, - doc_app + ExtensionError export ParsingError, CTException, AmbiguousDescription, @@ -30,8 +29,7 @@ export ParsingError, IncorrectOutput, NotImplemented, UnauthorizedCall, - ExtensionError, - doc_app + ExtensionError # CTParser import CTParser: CTParser, @def