π Python BindingsΒΆ
Official Pydantic v2 models for the Visualli specification. These bindings provide a strict, type-safe implementation of the JSON Schema. Use them to validate, create, and serialize valid .visualli data programmatically.
InstallationΒΆ
Install from PyPI (Python β₯ 3.11):
pip install visualli-bindings
Or, install directly from the repository:
pip install "git+https://github.com/visualli-ai/spec.git@main#subdirectory=bindings/python"
Import as:
from visualli import Meta, Layer, Node, Connection, Container, VisualliSpec011
UsageΒΆ
The models are purely for data validation and structure definition β they do not include file parsing logic.
Creating valid objectsΒΆ
from visualli import Layer, Node, Position, Data
layer = Layer(
id="layer-123",
level=0,
nodes=[
Node(
id="node-1",
position=Position(x=0, y=0),
data=Data(label="Central Idea", summary="The starting point"),
)
],
connections=[],
containers=[],
)
print(layer.model_dump_json(indent=2))
Validating raw dataΒΆ
from pydantic import ValidationError
from visualli import Meta
raw_data = {"type": "meta", "version": "0.1", "title": "My Map"}
try:
meta = Meta(**raw_data)
print("Valid:", meta.title)
except ValidationError as e:
print("Invalid:", e.errors())
Parsing a full .visualli fileΒΆ
import json
from visualli import VisualliSpec011
entities = []
with open("document.visualli") as f:
for line in f:
line = line.strip()
if not line:
continue
obj = json.loads(line)
entities.append(VisualliSpec011.model_validate(obj))
print("Parsed", len(entities), "entities")
Source: bindings/python/visualli.py