Skip to content

Commit c4762dc

Browse files
authored
Merge pull request #783 from SciML/add_reaction_system_metadata
Add reaction system metadata
2 parents 315bc3c + 8579987 commit c4762dc

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/reactionsystem.jl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -508,14 +508,18 @@ struct ReactionSystem{V <: NetworkProperties} <:
508508
"""
509509
discrete_events::Vector{MT.SymbolicDiscreteCallback}
510510
"""
511+
Metadata for the system, to be used by downstream packages.
512+
"""
513+
metadata::Any
514+
"""
511515
complete: if a model `sys` is complete, then `sys.x` no longer performs namespacing.
512516
"""
513517
complete::Bool
514518

515519
# inner constructor is considered private and may change between non-breaking releases.
516520
function ReactionSystem(eqs, rxs, iv, sivs, states, spcs, ps, var_to_name, observed,
517521
name, systems, defaults, connection_type, nps, cls, cevs, devs,
518-
complete::Bool = false; checks::Bool = true)
522+
metadata = nothing, complete::Bool = false; checks::Bool = true)
519523

520524
# unit checks are for ODEs and Reactions only currently
521525
nonrx_eqs = Equation[eq for eq in eqs if eq isa Equation]
@@ -534,7 +538,7 @@ struct ReactionSystem{V <: NetworkProperties} <:
534538

535539
rs = new{typeof(nps)}(eqs, rxs, iv, sivs, states, spcs, ps, var_to_name, observed,
536540
name, systems, defaults, connection_type, nps, cls, cevs,
537-
devs, complete)
541+
devs, metadata, complete)
538542
checks && validate(rs)
539543
rs
540544
end

test/reactionsystem_structure/reactionsystem.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,3 +763,9 @@ let
763763
@test !isspecies(Y)
764764
@test isspecies(Catalyst.tospecies(Y))
765765
end
766+
767+
# Tests metadata.
768+
let
769+
@test isnothing(ModelingToolkit.get_metadata(rs))
770+
end
771+

0 commit comments

Comments
 (0)