@@ -2995,13 +2995,14 @@ end
2995
2995
"""
2996
2996
$(TYPEDSIGNATURES)
2997
2997
2998
- Extend the `basesys` with `sys`, the resulting system would inherit `sys`'s name
2999
- by default.
2998
+ Extend `basesys` with `sys`.
2999
+ By default, the resulting system inherits `sys`'s name and description .
3000
3000
3001
3001
See also [`compose`](@ref).
3002
3002
"""
3003
- function extend (sys:: AbstractSystem , basesys:: AbstractSystem ; name:: Symbol = nameof (sys),
3004
- gui_metadata = get_gui_metadata (sys))
3003
+ function extend (sys:: AbstractSystem , basesys:: AbstractSystem ;
3004
+ name:: Symbol = nameof (sys), description = description (sys),
3005
+ gui_metadata = get_gui_metadata (sys))
3005
3006
T = SciMLBase. parameterless_type (basesys)
3006
3007
ivs = independent_variables (basesys)
3007
3008
if ! (sys isa T)
@@ -3023,13 +3024,12 @@ function extend(sys::AbstractSystem, basesys::AbstractSystem; name::Symbol = nam
3023
3024
cevs = union (get_continuous_events (basesys), get_continuous_events (sys))
3024
3025
devs = union (get_discrete_events (basesys), get_discrete_events (sys))
3025
3026
defs = merge (get_defaults (basesys), get_defaults (sys)) # prefer `sys`
3026
- desc = join (filter (desc -> ! isempty (desc), description .([sys, basesys])), " " ) # concatenate non-empty descriptions with space
3027
3027
meta = union_nothing (get_metadata (basesys), get_metadata (sys))
3028
3028
syss = union (get_systems (basesys), get_systems (sys))
3029
3029
args = length (ivs) == 0 ? (eqs, sts, ps) : (eqs, ivs[1 ], sts, ps)
3030
3030
kwargs = (parameter_dependencies = dep_ps, observed = obs, continuous_events = cevs,
3031
3031
discrete_events = devs, defaults = defs, systems = syss, metadata = meta,
3032
- name = name, description = desc , gui_metadata = gui_metadata)
3032
+ name = name, description = description , gui_metadata = gui_metadata)
3033
3033
3034
3034
# collect fields specific to some system types
3035
3035
if basesys isa ODESystem
@@ -3041,8 +3041,8 @@ function extend(sys::AbstractSystem, basesys::AbstractSystem; name::Symbol = nam
3041
3041
return T (args... ; kwargs... )
3042
3042
end
3043
3043
3044
- function Base.:(& )(sys:: AbstractSystem , basesys:: AbstractSystem ; name :: Symbol = nameof (sys) )
3045
- extend (sys, basesys; name = name )
3044
+ function Base.:(& )(sys:: AbstractSystem , basesys:: AbstractSystem ; kwargs ... )
3045
+ extend (sys, basesys; kwargs ... )
3046
3046
end
3047
3047
3048
3048
"""
0 commit comments