A python implementation of the JsonCanvas format: https://github.com/obsidianmd/jsoncanvas/blob/main/spec/1.0.md
Project description
JsonCanvas Python Implementation
This project provides a Python implementation of the JsonCanvas format, designed to facilitate the creation, manipulation, and visualization of a structured canvas using objects and relations. It leverages Python's pydantic library to ensure data validation and management, supporting a range of node and edge types for comprehensive canvas construction.
Features
- Robust model definitions for canvas elements (Nodes and Edges) with comprehensive validation and default settings via
pydantic. - Dynamic addition and manipulation of various node types including Text, File, Link, Group, and Edge elements.
- Enhanced canvas operations allowing easy addition of nodes and edges with automated type handling.
- Serialize canvas structures to standard Python dictionaries for easy integration with other systems.
Installation
pip install openjsoncanvas
Usage
Creating a Canvas
Instantiate and manipulate a canvas with various nodes and edges:
from openjsoncanvas import Canvas
canvas = Canvas()
canvas.create_text_node(id='1', x=0, y=0, width=100, height=100, text='Hello, World!')
canvas.create_file_node(id='2', x=100, y=100, width=100, height=100, file='example.md')
canvas.create_link_node(id='3', x=200, y=200, width=100, height=100, url='https://example.com')
canvas.create_group_node(id='4', x=300, y=300, width=100, height=100)
canvas.create_edge(id='5', fromNode='1', toNode='2', fromEnd='arrow', toEnd='arrow', color='red', label='Edge')
# you can save and load the canvas to/from a file
canvas.to_file('my_canvas.canvas')
canvas = Canvas.from_file('my_canvas.canvas')
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openjsoncanvas-3.0.0.tar.gz.
File metadata
- Download URL: openjsoncanvas-3.0.0.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90d4cedc3a2eb4c87426e3b4522cbf9e1535879ca999adbad3f3d8b329b69b45
|
|
| MD5 |
3b42f4a3ee51e2a7ca8a7b46f6b69e6e
|
|
| BLAKE2b-256 |
f52a18bb1ae0f4ace3326acc726f04f423c8dfc2ae3b55adf3235c063c121821
|
File details
Details for the file openjsoncanvas-3.0.0-py2.py3-none-any.whl.
File metadata
- Download URL: openjsoncanvas-3.0.0-py2.py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbe7feb5d241586cab24fe51343c18d558d2fe62042bdfcff73b642cfc31b62c
|
|
| MD5 |
41d521321af35d44a4cc24bc083e6f69
|
|
| BLAKE2b-256 |
d144f0fccb73d59f94b7723e7f96612c4c36c70b6e70d293dfe03c7eea5d6fc2
|