Python backend for node editor-like graph-based processing
Project description
Python backend for graph-based processing, designed for flow-based/node-based visual scripting editors. It is the backbone of the Ryven project but it can be used for other applications as well.
If you are not already familiar with flow-based visual scripting and are looking for a specification, see docs.
Installation
pip install ryvencore
from sources:
git clone https://github.com/leon-thomm/ryvencore
cd ryvencore
pip install .
Dependencies
None! ryvencore
runs completely on standard python modules, no additional libraries required, which makes it very compatible.
I am therefore thinking about extending the implementation to compile with Cython. While the overhead produced by the internal graph representation compared to only executing python code specified in the nodes' update_event
does not dominate, efficient Cython support might lead to speedup of another ~20%-40%.
Usage
Using ryvencore
directly to run projects made with ryvencore
-based editors, the following code example gives some intuition about the process:
import ryvencore as rc
import json
import sys
if __name__ == '__main__':
# get a working project file path
if len(sys.argv) < 2:
sys.exit('please provide a project file path')
fpath = sys.argv[1]
try:
f = open(sys.argv[1])
f.close()
except FileNotFoundError:
sys.exit('could not open file '+fpath)
# read project file
with open(fpath, 'r') as f:
project: dict = json.loads(f.read())
# run ryvencore
session = rc.Session()
session.load(project)
# and now we can manually access all components, for example:
scripts = session.scripts
flow1 = scripts[0].flow
my_node = flow1.nodes[-1]
my_node.update()
Main Features
ryvencore
is rather small but already does some work for you
- load & save
- variables system with registration mechanism to build nodes that automatically adapt to change of data
- built in logging
- simple nodes system
- dynamic nodes registration mechanism to register and unregister nodes at runtime
- actions system for nodes
- data and exec flow support
For a more detailed overview, see the docs.
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
Hashes for ryvencore-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92a79ff7df23f5c0cb9062b3fa52c04ad4b34f57d91de7a300bd836cd04bbc72 |
|
MD5 | 7cba80405930ce2c828c7442b6a4cac3 |
|
BLAKE2b-256 | e9c11c3784547edf356919149b83e411fdbcdcd70d1959ba5bee531da939fd45 |