Skip to main content

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 including library_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sciplex_core-0.1.2.tar.gz (727.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sciplex_core-0.1.2-py3-none-any.whl (753.9 kB view details)

Uploaded Python 3

File details

Details for the file sciplex_core-0.1.2.tar.gz.

File metadata

  • Download URL: sciplex_core-0.1.2.tar.gz
  • Upload date:
  • Size: 727.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for sciplex_core-0.1.2.tar.gz
Algorithm Hash digest
SHA256 70b43fad40c9129a7c192da26fedcb23a366d721a1a990949936928714468de6
MD5 e28490e195d2f726b688ed541698de00
BLAKE2b-256 190d5bc3dc8eae3567e79668c5a649f54b726e8026b3847be0ad0cf7f66e7902

See more details on using hashes here.

File details

Details for the file sciplex_core-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: sciplex_core-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 753.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for sciplex_core-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ee11f70a26e80e91244bf31a120c86e7e8ec8b89e2b247d3c92b66e8549809c5
MD5 bf5fabeb184ed19ea8b72808d13e5c3f
BLAKE2b-256 3a83376087fb76e2700391c25fcb87e4b8227fcab2601b3bf22f7a8f6950e57e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page