AlgebraicJulia/Catlab.jl

Methods missing for drawing schemas

Aperta

#934 aperta il 24 ago 2024

 (0 commenti) (0 reazioni) (0 assegnatari)Julia (68 fork)batch import
good first issuegraphics

Metriche repository

Star
 (706 stelle)
Metriche merge PR
 (Merge medio 17g 19h) (2 PR mergiate in 30 g)

Descrizione

If you try to draw a TypedSchema with to_graphviz, you get a MethodError.

julia> Presentation(SchNamedDecapode)
ERROR: MethodError: no method matching Presentation(::TypedSchema{Symbol, InterType})

Closest candidates are:
  Presentation(::BasicSchema{Symbol})
   @ Catlab ~/.julia/packages/Catlab/5M12F/src/categorical_algebra/ACSetsGATsInterop.jl:69
  Presentation(::Module)
   @ GATlab ~/.julia/packages/GATlab/UL4sq/src/models/Presentations.jl:47
  Presentation(::Type{S}) where S<:(TypeLevelBasicSchema{Symbol})
   @ Catlab ~/.julia/packages/Catlab/5M12F/src/categorical_algebra/ACSetsGATsInterop.jl:52
  ...

Stacktrace:
 [1] top-level scope
   @ REPL[8]:1

This can be fixed with the following method Catlab.to_graphviz(s::TypedSchema) = to_graphviz(Presentation(s.schema)). It would be nice to also extend Presentation to accept a typed schema so that you could draw it with concrete types Presentation(s::TypedSchema). But this 1 liner is a quick fix that would get you 90% of the way there.

Guida contributor