AlgebraicJulia/Catlab.jl

Methods missing for drawing schemas

Open

#934 aberto em 24 de ago. de 2024

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)Julia (68 forks)batch import
good first issuegraphics

Métricas do repositório

Stars
 (706 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

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.

Guia do colaborador