AlgebraicJulia / StockFlow.jl

https://algebraicjulia.github.io/StockFlow.jl/
MIT License
65 stars 6 forks source link

Open fails when given no feet #84

Open neonWhiteout opened 1 year ago

neonWhiteout commented 1 year ago
julia> OpenStockAndFlowF{Symbol, Symbol, Int8}(StockAndFlowF())
ERROR: Empty list of legs but no apex given
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] Multicospan(legs::StaticArraysCore.SVector{0, Union{}})
   @ Catlab.CategoricalAlgebra.FreeDiagrams ~/.julia/packages/Catlab/rJ36m/src/categorical_algebra/FreeDiagrams.jl:175
 [3] (SMulticospan{0, Ob, Hom, <:StaticArraysCore.StaticArray{Tuple{0}, Hom, 1}} where {Ob, Hom})()
   @ Catlab.CategoricalAlgebra.FreeDiagrams ~/.julia/packages/Catlab/rJ36m/src/categorical_algebra/FreeDiagrams.jl:185
 [4] (StructuredMulticospan{Catlab.CategoricalAlgebra.StructuredCospans.DiscreteACSet{StockAndFlow0, StockAndFlowF}})(::StockAndFlowF)
   @ Catlab.CategoricalAlgebra.StructuredCospans ~/.julia/packages/Catlab/rJ36m/src/categorical_algebra/StructuredCospans.jl:267
 [5] top-level scope
   @ REPL[25]:1
neonWhiteout commented 1 year ago

(same error when doing Open(StockAndFlowF()) )

neonWhiteout commented 1 year ago

Trying to deal with cases where you're composing StockFlows with an empty list of feet.

Could provide feet with no stocks and flows to every sf, though that doesn't seem like a good solution.

jpfairbanks commented 1 year ago

I think you specify the empty interfaces as the empty list [] as opposed to a missing argument.