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.1.tar.gz (721.3 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.1-py3-none-any.whl (748.0 kB view details)

Uploaded Python 3

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

Hashes for sciplex_core-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7d11f90ab5bca5731faf76d9cf56458914f955f3a3ca71d6e9a781667e857a2c
MD5 3a4f9181683bc7bc7121ef2bf90457e5
BLAKE2b-256 63921f6916ea882111af7592e61fdf512f05d2910524ee591cbb7808b23ece33

See more details on using hashes here.

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

Hashes for sciplex_core-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8372dcc96e0dbc853e1cfe6f1193630791dc35892a4cb0ceabf0ab3172ba0644
MD5 5f61882c17fbadff9a42b0bf40b876f1
BLAKE2b-256 e530ff4f33cf4c222cadd9ad6fbb64adf8c8379b9faa02cfa20246f641fbf162

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