Skip to main content

sPyTial: Spatial Python visualization with declarative constraints

Project description

sPyTial: Lightweight Diagrams for Structured Python Data

PyPI version Python versions License: MIT CI Docs

pip install spytial-diagramming

Docs: https://sidprasad.github.io/spytial/ — start with Getting Started for install, badges, and your first diagram.


Sometimes you just want to see your data.

You're working with a tree, a graph, a recursive object — maybe an AST, a neural network, or a symbolic term. You don't need an interactive dashboard or a production-grade visualization system. You just need a diagram that lays it out clearly so you can understand what's going on.

That's what sPyTial is for. It is designed for developers, educators, and researchers who work with structured data and need to make that structure visible — to themselves or to others — with minimal effort.

Why spatial layout

Spatial arrangement helps people understand structure: when elements are grouped, aligned, and oriented meaningfully, patterns and errors become easier to see. sPyTial gives you that layout by default — the diagram reflects how the parts are connected, not how they happen to be stored.

You get:

  • a box-and-arrow diagram that shows the shape of your data
  • a layout driven by declarative constraints (orientation, align, cyclic, group)
  • a tool that flags when a constraint can't be satisfied

Quick start

import spytial

data = {
    "name": "root",
    "children": [
        {"value": 1},
        {"value": 2},
        {"value": 3},
    ],
}

# Opens in a browser tab, or inline in a Jupyter notebook.
spytial.diagram(data)

# Or save to a file:
spytial.diagram(data, method="file")

Not sure where to start with a class of your own? from spytial.suggest import suggest then suggest(MyClass) reads the class and scaffolds a starting set of layout directives you can edit — see Suggesting Specs.

For stepping through sequences of states, custom relationalizers, and annotation-driven layouts, see the docs.

Related projects

  • spytial-clrs — a Jupyter notebook collection that implements the data structures from the CLRS algorithms textbook (Cormen, Leiserson, Rivest, Stein) using sPyTial: heaps, linked lists, hash tables, BST / red-black / B / van Emde Boas trees, disjoint-set forests, graphs with MST and SCC views, and more. The best place to see sPyTial on realistic structures.
  • spytial-core — the browser-side rendering engine sPyTial uses under the hood. Shared across all sPyTial language hosts (Python, Rust, Pyret, Lean).

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spytial_diagramming-1.7.0.tar.gz (509.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spytial_diagramming-1.7.0-py3-none-any.whl (328.2 kB view details)

Uploaded Python 3

File details

Details for the file spytial_diagramming-1.7.0.tar.gz.

File metadata

  • Download URL: spytial_diagramming-1.7.0.tar.gz
  • Upload date:
  • Size: 509.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spytial_diagramming-1.7.0.tar.gz
Algorithm Hash digest
SHA256 4e8bbeb89b2d5a919762556c9e9c28d3f9d3aaef5eb65c95e86cc154b0f62692
MD5 5de2e6bb5a7ffa585f0ef326c058567b
BLAKE2b-256 bcd788110d128857c37d8459c67ad004f36806eaef28f0c9d1f52dfa97c8dd76

See more details on using hashes here.

File details

Details for the file spytial_diagramming-1.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for spytial_diagramming-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a49b1a668337b7b5c8215320335b5f48fe8ef9d31b922c09257a2d957e7777a
MD5 a219eb7157817cfb8f38fc98191a4a9d
BLAKE2b-256 0a9d4bce4bb80d225a1240eea81fe939e9e282523349a51914ede423e71af308

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page