概述
PyFlow 是一个通用的 Python 可视化脚本框架。
当前状态
已实现程序的基本结构,包括包的发现、输入自定义、导出器、实体和工具的基类等。
你可以完全移除默认附带的节点和工具,从头开始构建自己的库。
你可以在不运行用户界面的情况下评估程序。
我们有简单的命令行界面和 setup.py 脚本。
正如预期,我们在运行时执行模型上遇到了问题,尽管它速度较慢,但对某些类型的任务来说还是不错的。此外,复杂的流程控制需要处理循环。
例如,当前的 for 循环节点实现在其主体中包含任何类型的 延迟
时都无法正常工作。当然,可以通过在循环处理中添加更多逻辑来解决这个问题,但我们目前还不确定如何使其高效。
路线图
我们将添加新类型的图(无向图、树)以及处理这些结构的算法。
代码生成可能是 PyFlow 的未来。
我们将实现更多的构建块。 函数 - 与子图不同,函数将有单一定义和程序中的多个入口点。 对象 - 编程中非常重要的概念,对象将拥有自己的方法、访问级别和变量。 事件和委托 - 类似于 UE4。
应用程序预设和用于编写自定义预设的 API。类似于任何 IDE 中的模板(着色器、命令行工具、软件安装程序等)。
文档更新。
用户界面改进和新工具以提升用户体验。
我们希望将大部分 Python 标准库封装成节点!
安装
手动安装
-
克隆或下载仓库。
-
安装
requirements.txt
中的依赖。 -
要以独立模式运行程序,请运行仓库根目录中的
pyflow.py
。
或使用 pip 安装
最新开发版本。包含最新功能
pip install git+https://github.com/wonderworks-software/PyFlow.git@master
最新发布版本
pip install git+https://github.com/wonderworks-software/PyFlow.git@release
安装包后,你可以在 Windows 上调用 pyflow.exe
,或在 Unix 系统上调用 pyflow
。
程序位于 PATH/TO/PYTHON/Scripts
目录中。
功能概述
-
模块化
添加自定义节点集、引脚、架工具、停靠工具、首选项小部件、数据导出器/导入器
-
易于集成
PyFlow 是一个普通的 Python 程序。它可以在任何 Python 环境下运行
-
支持 Python 3 和 2
-
逻辑和 UI 分离
主要逻辑元素(节点和引脚)具有非 GUI 表示,因此可以在没有 GUI 的情况下评估程序
-
子图
将图的部分折叠为子图
-
观察正在发生的情况
-
从子图中公开属性
任何节点都可以与拥有它的子图节点共享其属性
-
子图导入/导出
与他人共享子图
如果复合节点被导出到某个包中,它将出现在节点框中
-
Python 节点
直接在节点中编写任何代码
-
Python 节点导入/导出
与他人共享 Python 节点
如果 Python 节点被导出到某个包中,它将出现在节点框中
-
从函数快速生成节点
单个装饰器即可从函数生成节点
-
从任意位置加载包
可以从提供的目录列表中加载包。可以是你的开发文件夹或工作室内网络驱动器中的文件夹
-
图形注释
-
注释节点
-
便签节点
-
-
自定义输入系统
如果你习惯于特定软件的键位映射,可以轻松重新映射 PyFlow 的输入操作
-
拖放到线上
通过将节点拖到线上来自动连接节点
-
类似 Photoshop 的历史记录
易于使用的强大撤销系统
只需一行代码调用
-
属性视图
使用属性面板修改节点和引脚属性
-
变量
将任意数据保存到变量中
-
可编辑的可共享主题
创建并与他人共享主题
-
数据导入器/导出器
编辑器数据可以导出/导入为任意格式
-
命令行界面
导出的程序可以在没有 GUI 的情况下从命令行编辑和评估
-
便捷的线条交互
-
线条样式
-
节点弃用标志
告诉用户更新他们的程序
-
小部件库
-
滑块
自定义 Houdini 风格的滑块、值拖动器、渐变小部件
-
属性框架
属性面板的自定义小部件。可折叠类别、搜索字段
-
输入框架
用于鼠标、键盘捕获的自定义小部件
-
-
插件向导框架
生成包模板以开始开发。或为你的模块创建自定义向导
-
易用的配置文件框架
在添加自定义模块时,你可能需要一些配置数据。我们为此提供了易于使用的 API
以及更多...
入门
我们有文档
贡献
请参阅 CONTRIBUTING.md
版本控制
我们使用语义版本控制策略。
作者
- Ilgar Lunin - Ilgar Lunin
- Pedro Cabrera - Pedro Cabrera
另请参阅参与此项目的贡献者列表。
讨论
加入我们的 Discord 频道,询问任何与项目相关的问题!