python可视化框架_PyFlow - Python可视化脚本开发框架

PyFlow是一个通用的Python可视化脚本框架,支持自定义节点集、输入、导出、实体和工具。它可以脱离用户界面运行程序,拥有简单的CLI接口,并计划扩展为支持更多图类型、代码生成、对象和事件。PyFlow提供模块化设计、Python3和2的支持,以及强大的撤销系统、变量管理和插件开发框架。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Overview

PyFlow is a general purpose visual scripting framework for python.

State

Base structure of program implemented, such things as packages discovery, input customization, exporters, base classes for entities and tools.

You can completely remove nodes and tools that ships by default and start your own library from scratch.

You can evaluate programs without running user interface.

We have simple CLI interface and setup.py script.

Expectedly, we faced problems with our runtime execution model, it is good for certain types of tasks despite it is slow. Also, complicated flow control requires cycles handling.

For example current for loop node implementation doesn't work well with any kind of delay stuff in it's body. Of course it can be solved by adding more logic to loop processing, but we don't know exactly how to make it efficient yet.

Road map

We will add new types of graphs (undirected graphs, trees) and algorithms to work with those structures.

Code generation is probably the future of PyFlow.

We are going to implement more building blocks. Functions - which unlike subgraphs will have single definition and multiple entry points across the program. Objects - very important concept of programming in general, object will have own methods, access levels and variables. Events and delegates - similar to ue4.

Application presets and api for writing own presets. Templates like in any IDE (shader, command line tool, software installer, etc.).

Documentation updates.

User interface improvements and new tools to enhance user experience.

We want to have most python standard library wrapped into a nodes!

Installation

Manual

Clone or download repository.

Install requirements for your use case.

requirement lists can be found under PyFlow/requirements

To run the program in standalone mode, run pyflow.py. It can be found in the root folder of repository.

Or using pip

Latest development version. Contains latest features

pip install git+https://github.com/wonderworks-software/PyFlow.git@master

Latest release version

pip install git+https://github.com/wonderworks-software/PyFlow.git@release

After package is installed, you can invoke pyflow.exe on windows or pyflow on unix OS. Program is located inside PATH/TO/PYTHON/Scripts.

Features overview

Modular

Add own node sets, pins, shelf tools, dock tools, preferences widgets, data exporters/importers

Easy integration

PyFlow is a normal python program. It can run under any python environment

Python3 and 2 support

Logic and UI are separated

Main logic elements (Node and Pin) has non gui representation, so programs can be evaluated without GUI

Subgraphs

Collapse parts of graphs into subgraphs

Watch what is going on

Expose properties from subgraphs

Any node can share it's properties with owning sub graph node

Subgraphs import/export

Share subgraphs with others

If compound node was exported to some package, it will appear in node box

Python node

Write whatever code directly into a node

Python node import/export

Share python nodes with others

If python node was exported to some package, it will appear in node box

Fast node generation from functions

Single decorator to expose node from function

Package loading from arbitrary locations

Packages can be loaded from provided list of directories. It can be your development folder or folder in network drive inside your studio

Graph commenting

Comment node

Sticky node

Custom input system

If you got used to specific keymap of your software of choice, you can easily remap PyFlow input actions

Drop on wire

Automatically сonnect the node by dragging it onto the wire

Photoshop-like history

Easy to use powerful undo system

By a single line call

Property view

Modify node and pins attributes using property panels

Variables

Save arbitrary data into a variables

Editable shareable themes

Create and share themes with others

Data importers/exporters

Editor data can be exported/imported to/from arbitrary format

Command line interface

Exported programs can be edited and evaluated from command line without gui

Convenient wires interaction

Wire styles

Node deprecation flag

Tell users to update their programs

Widgets library

Sliders

Custom Houdini style sliders, value draggers, ramp widgets

Properties framework

Custom widgets for property panels. Collapsible categories, search field

Input framework

Custom widgets for mouse, keyboard capture

Plugin wizards framework

Generate package template to start development. Or create own wizard for your module

Easy configuration files framework

While adding own modules you probably want to have some configuration data. We provide easy to use api for this

And more..

Getting Started

Contributing

See CONTRIBUTING.md

Versioning

Authors

Ilgar Lunin - Ilgar Lunin

Pedro Cabrera - Pedro Cabrera

See also the list of contributors who participated in this project.

Discussion

Join us to our discord channel and ask anything related to project!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值