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 here.
Installation
pip install ryvencore
or 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.
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(fpath)
f.close()
except FileNotFoundError:
sys.exit(f'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()
You can also use it for other purposes. A mostly auto-generated documentation is available here.
Main Features
- load & save into and from JSON-compatible dictionaries
- variables system with update mechanism to build nodes that automatically adapt to change of data
- built in logging based on python's
logging
module - powerful nodes system which lets you do anything, simple and unrestricted
- dynamic nodes registration mechanism to register and unregister nodes at runtime
- actions system for nodes
- data and exec flow support - unlike lots of other solutions out there, ryvencore supports exec flows
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.3.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f402029995c0c311bfd92ad20aeabf2d9474a796b9efe31be3d4f3f00c52889 |
|
MD5 | d196a75f3b69626d519fad5a62442941 |
|
BLAKE2b-256 | 1584872516f8242a2946e077abde5037f6982642d558edf765e42287019f0845 |