Core logic for Sciplex visual programming - models, controllers, and utilities
Project description
sciplex-core
Core models, controllers, utilities, and default node libraries for Sciplex visual programming (desktop, server, and web variants). Packaged for reuse as a PyPI library.
Installation
Python 3.11+ is required.
pip install sciplex-core
For local development:
pip install -e ".[dev]"
Quick start
from pathlib import Path
from importlib.resources import files
from sciplex_core.controller.scene_controller import SceneController
from sciplex_core.utils.library_loader import LibraryLoader
# Where user libraries and projects will be stored
base_dir = Path.home() / "Sciplex"
base_dir.mkdir(parents=True, exist_ok=True)
# Copy packaged default libraries into the user's workspace and load them
default_lib_source = files("sciplex_core.libraries.default")
loader = LibraryLoader(str(base_dir))
loader.setup_libraries_folder(str(default_lib_source))
loader.load_all_libraries()
# Create a scene controller and initialize a project
controller = SceneController(base_dir=str(base_dir))
controller.create_new_project(str(base_dir / "projects" / "example.sciplex"))
Authoring nodes
Users can build custom node libraries with the public API exposed via sciplex:
from sciplex import Attribute, nodify, workspace
@nodify(icon="function", scale=Attribute("doublespinbox", value=1.0))
def Scale(table, scale: float = 1.0):
return table * scale
# Share data across nodes
workspace["my_df"] = ...
Functions decorated with @nodify gain inputs/outputs from type hints and register themselves with the runtime library model.
Package structure
controller/— Scene, node, edge controllers plus event/clipboard abstractions.model/— Graph, node, edge, socket, settings, and annotation data models.utils/— Shared utilities includinglibrary_loader, node factory helpers, graph export.libraries/default/— Packaged data, transform, math, visuals, and ML nodes (auto-copied into user workspaces).assets/— Application icons.sciplex/— Public API surface for library authors (Attribute,nodify,workspace).
Development & testing
- Format/lint:
ruff check . - Tests:
pytest - Build wheel/sdist:
python -m build
Contributions
Issues and bug reports are welcome. We are not accepting pull requests at this time.
License
MIT
Project details
Release history Release notifications | RSS feed
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 sciplex_core-0.1.1.tar.gz.
File metadata
- Download URL: sciplex_core-0.1.1.tar.gz
- Upload date:
- Size: 721.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d11f90ab5bca5731faf76d9cf56458914f955f3a3ca71d6e9a781667e857a2c
|
|
| MD5 |
3a4f9181683bc7bc7121ef2bf90457e5
|
|
| BLAKE2b-256 |
63921f6916ea882111af7592e61fdf512f05d2910524ee591cbb7808b23ece33
|
File details
Details for the file sciplex_core-0.1.1-py3-none-any.whl.
File metadata
- Download URL: sciplex_core-0.1.1-py3-none-any.whl
- Upload date:
- Size: 748.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8372dcc96e0dbc853e1cfe6f1193630791dc35892a4cb0ceabf0ab3172ba0644
|
|
| MD5 |
5f61882c17fbadff9a42b0bf40b876f1
|
|
| BLAKE2b-256 |
e530ff4f33cf4c222cadd9ad6fbb64adf8c8379b9faa02cfa20246f641fbf162
|