PyJSONCanvas
PyJSONCanvas is a Python library for working with JSON Canvas (previously known as Obsidian Canvas) files. It provides a simple and intuitive API for creating, editing, and manipulating canvas objects, nodes, and edges.
Features
- Create, load, and save canvas files in JSON format
- Add, remove, and modify nodes (text, file, link, group)
- Add, remove, and modify edges with various styles and colors
- Validate canvas, nodes, and edges for integrity
- Get connections and adjacent nodes for a given node
- Extensive error handling and helpful exception messages
Installation
You can install PyJSONCanvas using pip:
pip install PyJSONCanvas
Usage
Here's a basic example of how to use PyJSONCanvas:
from pyjsoncanvas import (
Canvas,
TextNode,
FileNode,
LinkNode,
GroupNode,
GroupNodeBackgroundStyle,
Edge,
Color,
)
# Create a new canvas
canvas = Canvas(nodes=[], edges=[])
# Add some nodes
text_node = TextNode(x=100, y=100, width=200, height=100, text="Hello, world!")
canvas.add_node(text_node)
file_node = FileNode(x=300, y=100, width=100, height=100, file="/path/to/file.png")
canvas.add_node(file_node)
# Add an edge
edge = Edge(
fromNode=text_node.id,
fromSide="bottom",
toNode=file_node.id,
toSide="top",
color=Color("#FF0000"),
label="Edge 1",
)
canvas.add_edge(edge)
# Save the canvas as JSON
json_str = canvas.to_json()
# Load the canvas from JSON
loaded_canvas = Canvas.from_json(json_str)
# Get a node
node = loaded_canvas.get_node(text_node.id)
# Get connections for a node
connections = loaded_canvas.get_connections(text_node.id)
Documentation
The PyJSONCanvas library is well-documented, and you can find detailed information about all the available classes, methods, and exceptions in the docstrings and code comments.
Contributing
We welcome contributions to PyJSONCanvas! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request on the GitHub repository.
License
PyJSONCanvas is released under the MIT License.
Support
If you have any questions or need further assistance, please open an issue on the GitHub repository or contact the maintainers.
Metadata
Release files for PyJSONCanvas 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| PyJSONCanvas-1.0.2.tar.gz | 6.6 kB | Without provenance | Details for PyJSONCanvas-1.0.2.tar.gz |
Release files / PyJSONCanvas-1.0.2.tar.gz
| Download URL | PyJSONCanvas-1.0.2.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3bf3d12b8d3c758a21e103a4c2939f1d79b4b21b3159abf9fb936242ca902b12
|
|
BLAKE2b-256 checksum How to use checksums |
489f75b7ceff30965eb3b37c4a5add339b755af2abf172362506d818fa90e6c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.9.6 readme-renderer/40.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/1.26.16 tqdm/4.66.1 importlib-metadata/6.8.0 keyring/24.2.0 rfc3986/1.5.0 colorama/0.4.6 CPython/3.10.14
|
Security for PyJSONCanvas 1.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.