NyanCAD Python Library
A Python library for the NyanCAD schematic editor with anywidget integration. Provides live access to schematic data from marimo notebooks.
Installation
pip install nyancad
Usage
Basic Usage
import marimo as mo
from nyancad import SchematicBridge
# Create a schematic bridge widget
bridge = SchematicBridge()
# Display the widget (shows connection status)
bridge
# Access live schematic data
print(bridge.schematic_data)
# Send simulation data back to the editor
bridge.simulation_data = {
"results": [1.2, 3.4, 5.6],
"timestamp": "2024-01-01T00:00:00Z"
}
Integration with Marimo
The SchematicBridge widget automatically connects to the NyanCAD editor running in the same marimo session. Any changes made in the schematic editor will be immediately reflected in the Python widget.
# In a marimo cell
bridge = SchematicBridge()
bridge # This will show the connection status
# In another marimo cell - access the live data
mo.md(f"""
## Schematic Analysis
Raw schematic data: {len(bridge.schematic_data)} items
""")
# View the actual schematic data structure
bridge.schematic_data
Features
- Live Sync: Real-time synchronization with NyanCAD schematic editor via PouchDB
- Bidirectional Communication: Send simulation data back to the editor from Python
- Zero Configuration: Automatically detects and connects to the active schematic
- Raw Data Access: Direct access to the complete schematic data structure
- Marimo Integration: Seamless integration with marimo notebooks
API Reference
SchematicBridge
The main widget class that provides bidirectional communication with the Mosaic editor.
Properties
schematic_data(dict): Raw schematic data from the Mosaic editor, automatically syncedsimulation_data(dict): Simulation data to send to the Mosaic editor. Setting this will store the data with a timestamp in the editor's database
Development
This package is part of the NyanCAD project. The anywidget integration uses a ClojureScript bridge that compiles to an ESM module, allowing seamless data sharing between the schematic editor and Python environment.
License
This project is licensed under the Mozilla Public License 2.0 - see the LICENSE file for details.
Metadata
Release files for nyancad 0.18.5
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 | |
|---|---|---|---|---|
| nyancad-0.18.5.tar.gz | 40.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nyancad-0.18.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 67.1 kB
Release files / nyancad-0.18.5.tar.gz
| Download URL | nyancad-0.18.5.tar.gz |
|---|---|
| Size | 40.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a3055a704692f0061e48828afceb90583af171aa621b04a8085fb523655e0109
|
|
BLAKE2b-256 checksum How to use checksums |
40f694e92528d395b42f0c655114009612a81411cbf26fa8321c09082bda4395
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / nyancad-0.18.5-py3-none-any.whl
| Download URL | nyancad-0.18.5-py3-none-any.whl |
|---|---|
| Size | 27.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a7d46207bc4b1d5621608a117a55275e7b4dedb981693e56e64b3d0425ba687c
|
|
BLAKE2b-256 checksum How to use checksums |
7c9e4ea938ba9bc54890c2cbd514ad37273572acf3000898d5d916fc61751a8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Security for nyancad 0.18.5
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.