AlgebraicJulia/Catlab.jl

Methods missing for drawing schemas

Open

#934 创建于 2024年8月24日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)Julia (68 fork)batch import
good first issuegraphics

仓库指标

Star
 (706 star)
PR 合并指标
 (30 天内没有已合并 PR)

描述

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.

贡献者指南