celestialflow 3.0.1__tar.gz → 3.0.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {celestialflow-3.0.1/src/celestialflow.egg-info → celestialflow-3.0.3}/PKG-INFO +61 -62
- {celestialflow-3.0.1 → celestialflow-3.0.3}/README.md +53 -37
- {celestialflow-3.0.1 → celestialflow-3.0.3}/pyproject.toml +19 -6
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow/__init__.py +0 -6
- celestialflow-3.0.3/src/celestialflow/static/css/base.css +295 -0
- celestialflow-3.0.3/src/celestialflow/static/css/dashboard.css +451 -0
- celestialflow-3.0.3/src/celestialflow/static/css/errors.css +275 -0
- celestialflow-3.0.3/src/celestialflow/static/css/inject.css +668 -0
- celestialflow-3.0.3/src/celestialflow/static/favicon.ico +0 -0
- celestialflow-3.0.3/src/celestialflow/static/js/main.js +128 -0
- celestialflow-3.0.3/src/celestialflow/static/js/task_errors.js +146 -0
- celestialflow-3.0.3/src/celestialflow/static/js/task_injection.js +296 -0
- celestialflow-3.0.3/src/celestialflow/static/js/task_statuses.js +255 -0
- celestialflow-3.0.3/src/celestialflow/static/js/task_structure.js +214 -0
- celestialflow-3.0.3/src/celestialflow/static/js/task_topology.js +11 -0
- celestialflow-3.0.3/src/celestialflow/static/js/utils.js +64 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow/task_graph.py +60 -26
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow/task_manage.py +67 -27
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow/task_nodes.py +1 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow/task_structure.py +12 -10
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow/task_web.py +9 -4
- celestialflow-3.0.3/src/celestialflow/templates/index.html +364 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3/src/celestialflow.egg-info}/PKG-INFO +61 -62
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow.egg-info/SOURCES.txt +14 -1
- celestialflow-3.0.3/src/celestialflow.egg-info/entry_points.txt +2 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow.egg-info/requires.txt +0 -1
- {celestialflow-3.0.1 → celestialflow-3.0.3}/tests/test_graph.py +2 -2
- {celestialflow-3.0.1 → celestialflow-3.0.3}/tests/test_structure.py +3 -44
- celestialflow-3.0.1/LICENSE +0 -21
- {celestialflow-3.0.1 → celestialflow-3.0.3}/setup.cfg +0 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow/task_logging.py +0 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow/task_progress.py +0 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow/task_report.py +0 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow/task_tools.py +0 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow/task_types.py +0 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow.egg-info/dependency_links.txt +0 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/src/celestialflow.egg-info/top_level.txt +0 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/tests/test_manage.py +0 -0
- {celestialflow-3.0.1 → celestialflow-3.0.3}/tests/test_nodes.py +0 -0
|
@@ -1,33 +1,17 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: celestialflow
|
|
3
|
-
Version: 3.0.
|
|
4
|
-
Summary: A flexible
|
|
3
|
+
Version: 3.0.3
|
|
4
|
+
Summary: A flexible GRAPH-based task orchestration framework.
|
|
5
5
|
Author-email: Mr-xiaotian <mingxiaomingtian@gmail.com>
|
|
6
|
-
License: MIT
|
|
7
|
-
|
|
8
|
-
Copyright (c) 2025 Mr-xiaotian
|
|
9
|
-
|
|
10
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
-
in the Software without restriction, including without limitation the rights
|
|
13
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
-
furnished to do so, subject to the following conditions:
|
|
16
|
-
|
|
17
|
-
The above copyright notice and this permission notice shall be included in all
|
|
18
|
-
copies or substantial portions of the Software.
|
|
19
|
-
|
|
20
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
-
SOFTWARE.
|
|
27
|
-
|
|
6
|
+
License: MIT
|
|
28
7
|
Project-URL: Homepage, https://github.com/Mr-xiaotian/CelestialFlow
|
|
29
8
|
Project-URL: Bug Tracker, https://github.com/Mr-xiaotian/CelestialFlow/issues
|
|
30
9
|
Keywords: workflow,task,graph,async,CelestialFlow
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Framework :: FastAPI
|
|
14
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
31
15
|
Requires-Python: >=3.8
|
|
32
16
|
Description-Content-Type: text/markdown
|
|
33
17
|
Requires-Dist: tqdm
|
|
@@ -37,12 +21,20 @@ Requires-Dist: uvicorn
|
|
|
37
21
|
Requires-Dist: requests
|
|
38
22
|
Requires-Dist: networkx
|
|
39
23
|
Requires-Dist: redis
|
|
40
|
-
Requires-Dist: httpx
|
|
41
24
|
Requires-Dist: jinja2
|
|
42
25
|
|
|
43
26
|
# CelestialFlow ——一个轻量级、可并行、基于图结构的 Python 任务调度框架
|
|
44
27
|
|
|
45
|
-
|
|
28
|
+
<p align="center">
|
|
29
|
+
<img src="img/startup.png" width="1080" alt="CelestialFlow Logo">
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
<p align="center">
|
|
33
|
+
<a href="https://pypi.org/project/celestialflow/"><img src="https://badge.fury.io/py/celestialflow.svg"></a>
|
|
34
|
+
<a href="https://pepy.tech/projects/celestialflow"><img src="https://static.pepy.tech/personalized-badge/celestialflow?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads"></a>
|
|
35
|
+
<!-- <a href="https://pypi.org/project/celestialflow/"><img src="https://img.shields.io/pypi/l/celestialflow.svg"></a>
|
|
36
|
+
<a href="https://pypi.org/project/celestialflow/"><img src="https://img.shields.io/pypi/pyversions/celestialflow.svg"></a> -->
|
|
37
|
+
</p>
|
|
46
38
|
|
|
47
39
|
**CelestialFlow**是一个基于节点拼接的任务流调度框架。
|
|
48
40
|
|
|
@@ -68,17 +60,12 @@ TaskGraph 能构建完整的 **有向图结构(Directed Graph)**,不仅支
|
|
|
68
60
|
|
|
69
61
|
本节将引导你快速安装并运行 **TaskGraph**,通过示例体验其任务图调度机制。
|
|
70
62
|
|
|
63
|
+
### (可选)创建独立虚拟环境
|
|
71
64
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
首先从 GitHub 拉取代码仓库,并创建隔离环境以防依赖冲突。
|
|
65
|
+
建议在独立环境中使用,以避免与其他项目依赖冲突。
|
|
75
66
|
|
|
76
67
|
```bash
|
|
77
|
-
#
|
|
78
|
-
git clone https://github.com/yourname/TaskGraph.git
|
|
79
|
-
cd TaskGraph
|
|
80
|
-
|
|
81
|
-
# (可选) 用mamba创建虚拟环境
|
|
68
|
+
# 使用 mamba 创建环境
|
|
82
69
|
mamba create -n celestialflow_env python=3.10
|
|
83
70
|
mamba activate celestialflow_env
|
|
84
71
|
```
|
|
@@ -87,23 +74,34 @@ mamba activate celestialflow_env
|
|
|
87
74
|
|
|
88
75
|
👉 [miniforge/Releases](https://github.com/conda-forge/miniforge/releases)
|
|
89
76
|
|
|
90
|
-
###
|
|
77
|
+
### 安装 CelestialFlow
|
|
78
|
+
|
|
79
|
+
CelestialFlow 已发布至 [PyPI](https://pypi.org/project/celestialflow/),
|
|
80
|
+
可以直接通过 `pip` 安装,无需克隆源码。
|
|
91
81
|
|
|
92
82
|
```bash
|
|
93
|
-
|
|
83
|
+
# 直接安装最新版
|
|
84
|
+
pip install celestialflow
|
|
94
85
|
```
|
|
95
86
|
|
|
96
|
-
|
|
87
|
+
不过如果你想要运行之后的测试代码,亦或者想使用基于Go语言的go_worker程序,那么还是需要clone项目
|
|
97
88
|
|
|
98
89
|
```bash
|
|
99
|
-
|
|
90
|
+
# 克隆项目
|
|
91
|
+
git clone https://github.com/yourname/TaskGraph.git
|
|
92
|
+
cd TaskGraph
|
|
93
|
+
pip install .
|
|
100
94
|
```
|
|
101
95
|
|
|
102
96
|
### 启动 Web 可视化(可选)
|
|
103
97
|
|
|
104
|
-
Web
|
|
98
|
+
Web监视界面并不是必须的,但可以通过网页获得任务运行的更多信息,推荐使用:
|
|
105
99
|
|
|
106
100
|
```bash
|
|
101
|
+
# 如果你pip了项目,可以在当前虚拟环境下可以直接使用命令celestialflow-web
|
|
102
|
+
celestialflow-web 5005
|
|
103
|
+
|
|
104
|
+
# 如果你直接clone并cd进入项目目录,那么需要运行py文件
|
|
107
105
|
python src/celestialflow/task_web.py 5005
|
|
108
106
|
```
|
|
109
107
|
|
|
@@ -130,12 +128,6 @@ pytest tests/test_nodes.py::test_splitter_1
|
|
|
130
128
|
pip install pytest pytest-asyncio
|
|
131
129
|
```
|
|
132
130
|
|
|
133
|
-
- test_nodes_1() 在一个简单的树状任务模型下,对比了四种运行组合(节点模式:serial / process × 执行模式:serial / thread),以测试不同调度策略下的整体性能差异。图结构如下:
|
|
134
|
-
```
|
|
135
|
-
+----------------------------------------------------------------------+
|
|
136
|
-
| Stage_A (stage_mode: serial, func: sleep_random_A) |
|
|
137
|
-
| ╘-->Stage_B (stage_mode: serial, func: sleep_random_B) |
|
|
138
|
-
|
|
139
131
|
- test_graph_1() 在一个简单的树状任务模型下,对比了四种运行组合(节点模式:serial / process × 执行模式:serial / thread),以测试不同调度策略下的整体性能差异。图结构如下:
|
|
140
132
|
```
|
|
141
133
|
+----------------------------------------------------------------------+
|
|
@@ -165,11 +157,12 @@ pip install pytest pytest-asyncio
|
|
|
165
157
|
### 我还想了解更多
|
|
166
158
|
|
|
167
159
|
你可以继续运行更多的测试代码,这里有介绍每个测试文件与里面的测试函数:
|
|
168
|
-
|
|
160
|
+
|
|
161
|
+
[Test RREADME.md(完善中)](tests/README.md)
|
|
169
162
|
|
|
170
163
|
你也可以了解具体的项目文件,以下文档会帮助你:
|
|
171
164
|
|
|
172
|
-
[Src README.md](src\celestialflow/README.md)
|
|
165
|
+
[Src README.md(完善中)](src\celestialflow/README.md)
|
|
173
166
|
|
|
174
167
|
如果你想得到一个最简单的可运行代码:
|
|
175
168
|
|
|
@@ -200,23 +193,23 @@ if __name__ == "__main__":
|
|
|
200
193
|
|
|
201
194
|
## 环境要求(Requirements)
|
|
202
195
|
|
|
203
|
-
**CelestialFlow**
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
|
207
|
-
|
|
|
208
|
-
| **
|
|
209
|
-
| **
|
|
210
|
-
| **
|
|
211
|
-
| **
|
|
212
|
-
| **
|
|
213
|
-
| **
|
|
214
|
-
| **
|
|
196
|
+
**CelestialFlow** 基于 Python 3.8+,并依赖以下核心组件。
|
|
197
|
+
请确保你的环境能够正常安装这些依赖(`pip install celestialflow` 会自动安装)。
|
|
198
|
+
|
|
199
|
+
| 依赖包 | 说明 |
|
|
200
|
+
| ---------------- | ---- |
|
|
201
|
+
| **Python ≥ 3.8** | 运行环境,建议使用 3.10 及以上版本 |
|
|
202
|
+
| **tqdm** | 控制台进度条显示,用于任务执行可视化 |
|
|
203
|
+
| **loguru** | 高性能日志系统,支持多进程安全输出 |
|
|
204
|
+
| **fastapi** | Web 服务接口框架(用于任务可视化与远程控制) |
|
|
205
|
+
| **uvicorn** | FastAPI 的高性能 ASGI 服务器 |
|
|
206
|
+
| **requests** | HTTP 客户端库,用于任务状态上报与远程调用 |
|
|
207
|
+
| **networkx** | 任务图(TaskGraph)结构与依赖分析 |
|
|
208
|
+
| **redis** | 可选组件,用于分布式任务通信(`TaskRedisTransfer` 模块) |
|
|
209
|
+
| **jinja2** | FastAPI 模板引擎,用于 Web 可视化界面渲染 |
|
|
215
210
|
|
|
216
211
|
## 项目结构(Project Structure)
|
|
217
212
|
|
|
218
|
-
以下视图由我的另一个项目[CelestialVault](https://github.com/Mr-xiaotian/CelestialVault)中inst_file生成。
|
|
219
|
-
|
|
220
213
|
```
|
|
221
214
|
📁 CelestialFlow (24MB 349KB 185B)
|
|
222
215
|
📁 experiment (9KB 455B)
|
|
@@ -278,6 +271,8 @@ if __name__ == "__main__":
|
|
|
278
271
|
🐍 setup.py (550B)
|
|
279
272
|
```
|
|
280
273
|
|
|
274
|
+
(该视图由我的另一个项目[CelestialVault](https://github.com/Mr-xiaotian/CelestialVault)中inst_file生成。)
|
|
275
|
+
|
|
281
276
|
## 更新日志(Change Log)
|
|
282
277
|
|
|
283
278
|
- [2021] 建立一个支持多线程与单线程处理函数的类
|
|
@@ -292,10 +287,14 @@ if __name__ == "__main__":
|
|
|
292
287
|
- [6/14/2025] 支持forest结构, 即可有多个根节点
|
|
293
288
|
- [6/16/2025] 多轮评测后, 当前框架已支持完整有向图结构, 故将TaskTree改名为TaskGraph
|
|
294
289
|
|
|
290
|
+
## Star History
|
|
291
|
+
|
|
292
|
+
[](https://star-history.com/#Mr-xiaotian/CelestialFlow&Date)
|
|
293
|
+
|
|
295
294
|
## License
|
|
296
295
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
297
296
|
|
|
298
|
-
## 作者
|
|
297
|
+
## 作者(Author)
|
|
299
298
|
Author: Mr-xiaotian
|
|
300
299
|
Email: mingxiaomingtian@gmail.com
|
|
301
300
|
Project Link: [https://github.com/Mr-xiaotian/CelestialFlow](https://github.com/Mr-xiaotian/CelestialFlow)
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
# CelestialFlow ——一个轻量级、可并行、基于图结构的 Python 任务调度框架
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="img/startup.png" width="1080" alt="CelestialFlow Logo">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://pypi.org/project/celestialflow/"><img src="https://badge.fury.io/py/celestialflow.svg"></a>
|
|
9
|
+
<a href="https://pepy.tech/projects/celestialflow"><img src="https://static.pepy.tech/personalized-badge/celestialflow?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads"></a>
|
|
10
|
+
<!-- <a href="https://pypi.org/project/celestialflow/"><img src="https://img.shields.io/pypi/l/celestialflow.svg"></a>
|
|
11
|
+
<a href="https://pypi.org/project/celestialflow/"><img src="https://img.shields.io/pypi/pyversions/celestialflow.svg"></a> -->
|
|
12
|
+
</p>
|
|
4
13
|
|
|
5
14
|
**CelestialFlow**是一个基于节点拼接的任务流调度框架。
|
|
6
15
|
|
|
@@ -26,17 +35,12 @@ TaskGraph 能构建完整的 **有向图结构(Directed Graph)**,不仅支
|
|
|
26
35
|
|
|
27
36
|
本节将引导你快速安装并运行 **TaskGraph**,通过示例体验其任务图调度机制。
|
|
28
37
|
|
|
38
|
+
### (可选)创建独立虚拟环境
|
|
29
39
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
首先从 GitHub 拉取代码仓库,并创建隔离环境以防依赖冲突。
|
|
40
|
+
建议在独立环境中使用,以避免与其他项目依赖冲突。
|
|
33
41
|
|
|
34
42
|
```bash
|
|
35
|
-
#
|
|
36
|
-
git clone https://github.com/yourname/TaskGraph.git
|
|
37
|
-
cd TaskGraph
|
|
38
|
-
|
|
39
|
-
# (可选) 用mamba创建虚拟环境
|
|
43
|
+
# 使用 mamba 创建环境
|
|
40
44
|
mamba create -n celestialflow_env python=3.10
|
|
41
45
|
mamba activate celestialflow_env
|
|
42
46
|
```
|
|
@@ -45,23 +49,34 @@ mamba activate celestialflow_env
|
|
|
45
49
|
|
|
46
50
|
👉 [miniforge/Releases](https://github.com/conda-forge/miniforge/releases)
|
|
47
51
|
|
|
48
|
-
###
|
|
52
|
+
### 安装 CelestialFlow
|
|
53
|
+
|
|
54
|
+
CelestialFlow 已发布至 [PyPI](https://pypi.org/project/celestialflow/),
|
|
55
|
+
可以直接通过 `pip` 安装,无需克隆源码。
|
|
49
56
|
|
|
50
57
|
```bash
|
|
51
|
-
|
|
58
|
+
# 直接安装最新版
|
|
59
|
+
pip install celestialflow
|
|
52
60
|
```
|
|
53
61
|
|
|
54
|
-
|
|
62
|
+
不过如果你想要运行之后的测试代码,亦或者想使用基于Go语言的go_worker程序,那么还是需要clone项目
|
|
55
63
|
|
|
56
64
|
```bash
|
|
57
|
-
|
|
65
|
+
# 克隆项目
|
|
66
|
+
git clone https://github.com/yourname/TaskGraph.git
|
|
67
|
+
cd TaskGraph
|
|
68
|
+
pip install .
|
|
58
69
|
```
|
|
59
70
|
|
|
60
71
|
### 启动 Web 可视化(可选)
|
|
61
72
|
|
|
62
|
-
Web
|
|
73
|
+
Web监视界面并不是必须的,但可以通过网页获得任务运行的更多信息,推荐使用:
|
|
63
74
|
|
|
64
75
|
```bash
|
|
76
|
+
# 如果你pip了项目,可以在当前虚拟环境下可以直接使用命令celestialflow-web
|
|
77
|
+
celestialflow-web 5005
|
|
78
|
+
|
|
79
|
+
# 如果你直接clone并cd进入项目目录,那么需要运行py文件
|
|
65
80
|
python src/celestialflow/task_web.py 5005
|
|
66
81
|
```
|
|
67
82
|
|
|
@@ -88,12 +103,6 @@ pytest tests/test_nodes.py::test_splitter_1
|
|
|
88
103
|
pip install pytest pytest-asyncio
|
|
89
104
|
```
|
|
90
105
|
|
|
91
|
-
- test_nodes_1() 在一个简单的树状任务模型下,对比了四种运行组合(节点模式:serial / process × 执行模式:serial / thread),以测试不同调度策略下的整体性能差异。图结构如下:
|
|
92
|
-
```
|
|
93
|
-
+----------------------------------------------------------------------+
|
|
94
|
-
| Stage_A (stage_mode: serial, func: sleep_random_A) |
|
|
95
|
-
| ╘-->Stage_B (stage_mode: serial, func: sleep_random_B) |
|
|
96
|
-
|
|
97
106
|
- test_graph_1() 在一个简单的树状任务模型下,对比了四种运行组合(节点模式:serial / process × 执行模式:serial / thread),以测试不同调度策略下的整体性能差异。图结构如下:
|
|
98
107
|
```
|
|
99
108
|
+----------------------------------------------------------------------+
|
|
@@ -123,11 +132,12 @@ pip install pytest pytest-asyncio
|
|
|
123
132
|
### 我还想了解更多
|
|
124
133
|
|
|
125
134
|
你可以继续运行更多的测试代码,这里有介绍每个测试文件与里面的测试函数:
|
|
126
|
-
|
|
135
|
+
|
|
136
|
+
[Test RREADME.md(完善中)](tests/README.md)
|
|
127
137
|
|
|
128
138
|
你也可以了解具体的项目文件,以下文档会帮助你:
|
|
129
139
|
|
|
130
|
-
[Src README.md](src\celestialflow/README.md)
|
|
140
|
+
[Src README.md(完善中)](src\celestialflow/README.md)
|
|
131
141
|
|
|
132
142
|
如果你想得到一个最简单的可运行代码:
|
|
133
143
|
|
|
@@ -158,23 +168,23 @@ if __name__ == "__main__":
|
|
|
158
168
|
|
|
159
169
|
## 环境要求(Requirements)
|
|
160
170
|
|
|
161
|
-
**CelestialFlow**
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
|
165
|
-
|
|
|
166
|
-
| **
|
|
167
|
-
| **
|
|
168
|
-
| **
|
|
169
|
-
| **
|
|
170
|
-
| **
|
|
171
|
-
| **
|
|
172
|
-
| **
|
|
171
|
+
**CelestialFlow** 基于 Python 3.8+,并依赖以下核心组件。
|
|
172
|
+
请确保你的环境能够正常安装这些依赖(`pip install celestialflow` 会自动安装)。
|
|
173
|
+
|
|
174
|
+
| 依赖包 | 说明 |
|
|
175
|
+
| ---------------- | ---- |
|
|
176
|
+
| **Python ≥ 3.8** | 运行环境,建议使用 3.10 及以上版本 |
|
|
177
|
+
| **tqdm** | 控制台进度条显示,用于任务执行可视化 |
|
|
178
|
+
| **loguru** | 高性能日志系统,支持多进程安全输出 |
|
|
179
|
+
| **fastapi** | Web 服务接口框架(用于任务可视化与远程控制) |
|
|
180
|
+
| **uvicorn** | FastAPI 的高性能 ASGI 服务器 |
|
|
181
|
+
| **requests** | HTTP 客户端库,用于任务状态上报与远程调用 |
|
|
182
|
+
| **networkx** | 任务图(TaskGraph)结构与依赖分析 |
|
|
183
|
+
| **redis** | 可选组件,用于分布式任务通信(`TaskRedisTransfer` 模块) |
|
|
184
|
+
| **jinja2** | FastAPI 模板引擎,用于 Web 可视化界面渲染 |
|
|
173
185
|
|
|
174
186
|
## 项目结构(Project Structure)
|
|
175
187
|
|
|
176
|
-
以下视图由我的另一个项目[CelestialVault](https://github.com/Mr-xiaotian/CelestialVault)中inst_file生成。
|
|
177
|
-
|
|
178
188
|
```
|
|
179
189
|
📁 CelestialFlow (24MB 349KB 185B)
|
|
180
190
|
📁 experiment (9KB 455B)
|
|
@@ -236,6 +246,8 @@ if __name__ == "__main__":
|
|
|
236
246
|
🐍 setup.py (550B)
|
|
237
247
|
```
|
|
238
248
|
|
|
249
|
+
(该视图由我的另一个项目[CelestialVault](https://github.com/Mr-xiaotian/CelestialVault)中inst_file生成。)
|
|
250
|
+
|
|
239
251
|
## 更新日志(Change Log)
|
|
240
252
|
|
|
241
253
|
- [2021] 建立一个支持多线程与单线程处理函数的类
|
|
@@ -250,10 +262,14 @@ if __name__ == "__main__":
|
|
|
250
262
|
- [6/14/2025] 支持forest结构, 即可有多个根节点
|
|
251
263
|
- [6/16/2025] 多轮评测后, 当前框架已支持完整有向图结构, 故将TaskTree改名为TaskGraph
|
|
252
264
|
|
|
265
|
+
## Star History
|
|
266
|
+
|
|
267
|
+
[](https://star-history.com/#Mr-xiaotian/CelestialFlow&Date)
|
|
268
|
+
|
|
253
269
|
## License
|
|
254
270
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
255
271
|
|
|
256
|
-
## 作者
|
|
272
|
+
## 作者(Author)
|
|
257
273
|
Author: Mr-xiaotian
|
|
258
274
|
Email: mingxiaomingtian@gmail.com
|
|
259
275
|
Project Link: [https://github.com/Mr-xiaotian/CelestialFlow](https://github.com/Mr-xiaotian/CelestialFlow)
|
|
@@ -4,11 +4,11 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "celestialflow"
|
|
7
|
-
version = "3.0.
|
|
8
|
-
description = "A flexible
|
|
7
|
+
version = "3.0.3"
|
|
8
|
+
description = "A flexible GRAPH-based task orchestration framework."
|
|
9
9
|
readme = "README.md"
|
|
10
|
-
license = {
|
|
11
|
-
authors = [{ name = "Mr-xiaotian", email = "mingxiaomingtian@gmail.com
|
|
10
|
+
license = { text = "MIT" }
|
|
11
|
+
authors = [{ name = "Mr-xiaotian", email = "mingxiaomingtian@gmail.com" }]
|
|
12
12
|
keywords = ["workflow", "task", "graph", "async", "CelestialFlow"]
|
|
13
13
|
requires-python = ">=3.8"
|
|
14
14
|
|
|
@@ -20,13 +20,26 @@ dependencies = [
|
|
|
20
20
|
"requests",
|
|
21
21
|
"networkx",
|
|
22
22
|
"redis",
|
|
23
|
-
"httpx",
|
|
24
23
|
"jinja2",
|
|
25
24
|
]
|
|
26
25
|
|
|
26
|
+
classifiers = [
|
|
27
|
+
"Programming Language :: Python :: 3",
|
|
28
|
+
"License :: OSI Approved :: MIT License",
|
|
29
|
+
"Operating System :: OS Independent",
|
|
30
|
+
"Framework :: FastAPI",
|
|
31
|
+
"Topic :: Software Development :: Libraries",
|
|
32
|
+
]
|
|
33
|
+
|
|
27
34
|
[project.urls]
|
|
28
35
|
"Homepage" = "https://github.com/Mr-xiaotian/CelestialFlow"
|
|
29
36
|
"Bug Tracker" = "https://github.com/Mr-xiaotian/CelestialFlow/issues"
|
|
30
37
|
|
|
38
|
+
[project.scripts]
|
|
39
|
+
celestialflow-web = "celestialflow.task_web:main_entry"
|
|
40
|
+
|
|
31
41
|
[tool.setuptools]
|
|
32
|
-
license-files = []
|
|
42
|
+
license-files = []
|
|
43
|
+
|
|
44
|
+
[tool.setuptools.package-data]
|
|
45
|
+
"celestialflow" = ["templates/*.html", "static/**/*"]
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
# 版本 3.01
|
|
3
|
-
# 作者:Mr-xiaotian, GPT-4o, GPT-5
|
|
4
|
-
# 时间:11/5/2025
|
|
5
|
-
# Github: https://github.com/Mr-xiaotian/CelestialFlow
|
|
6
|
-
|
|
7
1
|
from .task_graph import TaskGraph
|
|
8
2
|
from .task_manage import TaskManager
|
|
9
3
|
from .task_nodes import TaskSplitter, TaskRedisTransfer
|