celestialflow 3.1.3__tar.gz → 3.1.5__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.1.3 → celestialflow-3.1.5}/PKG-INFO +13 -69
- {celestialflow-3.1.3 → celestialflow-3.1.5}/README.md +12 -68
- {celestialflow-3.1.3 → celestialflow-3.1.5}/pyproject.toml +74 -70
- {celestialflow-3.1.3 → celestialflow-3.1.5}/src/celestialflow/__init__.py +5 -5
- {celestialflow-3.1.3 → celestialflow-3.1.5}/src/celestialflow/graph/__init__.py +2 -2
- celestialflow-3.1.3/src/celestialflow/graph/graph.py → celestialflow-3.1.5/src/celestialflow/graph/core_graph.py +141 -117
- celestialflow-3.1.3/src/celestialflow/graph/structure.py → celestialflow-3.1.5/src/celestialflow/graph/core_structure.py +38 -23
- celestialflow-3.1.3/src/celestialflow/graph/analysis.py → celestialflow-3.1.5/src/celestialflow/graph/util_analysis.py +6 -6
- celestialflow-3.1.3/src/celestialflow/graph/serialize.py → celestialflow-3.1.5/src/celestialflow/graph/util_serialize.py +1 -1
- {celestialflow-3.1.3 → celestialflow-3.1.5}/src/celestialflow/observability/__init__.py +1 -1
- celestialflow-3.1.3/src/celestialflow/observability/report.py → celestialflow-3.1.5/src/celestialflow/observability/core_report.py +92 -34
- celestialflow-3.1.5/src/celestialflow/persistence/__init__.py +13 -0
- celestialflow-3.1.3/src/celestialflow/persistence/base.py → celestialflow-3.1.5/src/celestialflow/persistence/core_base.py +61 -61
- celestialflow-3.1.3/src/celestialflow/persistence/fail.py → celestialflow-3.1.5/src/celestialflow/persistence/core_fail.py +14 -14
- celestialflow-3.1.3/src/celestialflow/persistence/log.py → celestialflow-3.1.5/src/celestialflow/persistence/core_log.py +165 -106
- celestialflow-3.1.3/src/celestialflow/persistence/constant.py → celestialflow-3.1.5/src/celestialflow/persistence/util_constant.py +2 -1
- celestialflow-3.1.3/src/celestialflow/persistence/jsonl.py → celestialflow-3.1.5/src/celestialflow/persistence/util_jsonl.py +11 -11
- celestialflow-3.1.5/src/celestialflow/runtime/__init__.py +16 -0
- celestialflow-3.1.5/src/celestialflow/runtime/core_envelope.py +43 -0
- celestialflow-3.1.5/src/celestialflow/runtime/core_metrics.py +300 -0
- celestialflow-3.1.3/src/celestialflow/runtime/progress.py → celestialflow-3.1.5/src/celestialflow/runtime/core_progress.py +17 -9
- celestialflow-3.1.5/src/celestialflow/runtime/core_queue.py +329 -0
- celestialflow-3.1.5/src/celestialflow/runtime/core_runner.py +275 -0
- celestialflow-3.1.3/src/celestialflow/runtime/errors.py → celestialflow-3.1.5/src/celestialflow/runtime/util_errors.py +4 -3
- celestialflow-3.1.3/src/celestialflow/runtime/estimators.py → celestialflow-3.1.5/src/celestialflow/runtime/util_estimators.py +19 -14
- celestialflow-3.1.3/src/celestialflow/runtime/factories.py → celestialflow-3.1.5/src/celestialflow/runtime/util_factories.py +25 -14
- celestialflow-3.1.3/src/celestialflow/runtime/hash.py → celestialflow-3.1.5/src/celestialflow/runtime/util_hash.py +6 -6
- celestialflow-3.1.3/src/celestialflow/runtime/tools.py → celestialflow-3.1.5/src/celestialflow/runtime/util_queue.py +3 -3
- celestialflow-3.1.3/src/celestialflow/runtime/types.py → celestialflow-3.1.5/src/celestialflow/runtime/util_types.py +25 -8
- {celestialflow-3.1.3 → celestialflow-3.1.5}/src/celestialflow/stage/__init__.py +3 -3
- celestialflow-3.1.3/src/celestialflow/stage/executor.py → celestialflow-3.1.5/src/celestialflow/stage/core_executor.py +139 -338
- celestialflow-3.1.3/src/celestialflow/stage/stage.py → celestialflow-3.1.5/src/celestialflow/stage/core_stage.py +41 -49
- celestialflow-3.1.3/src/celestialflow/stage/nodes.py → celestialflow-3.1.5/src/celestialflow/stage/core_stages.py +76 -45
- celestialflow-3.1.3/src/celestialflow/utils/benchmark.py → celestialflow-3.1.5/src/celestialflow/utils/util_benchmark.py +3 -3
- celestialflow-3.1.3/src/celestialflow/utils/clone.py → celestialflow-3.1.5/src/celestialflow/utils/util_clone.py +3 -4
- celestialflow-3.1.3/src/celestialflow/utils/collections.py → celestialflow-3.1.5/src/celestialflow/utils/util_collections.py +2 -3
- celestialflow-3.1.3/src/celestialflow/utils/debug.py → celestialflow-3.1.5/src/celestialflow/utils/util_debug.py +1 -1
- celestialflow-3.1.3/src/celestialflow/utils/format.py → celestialflow-3.1.5/src/celestialflow/utils/util_format.py +3 -3
- celestialflow-3.1.5/src/celestialflow/web/config.json +35 -0
- celestialflow-3.1.5/src/celestialflow/web/server.py +406 -0
- celestialflow-3.1.5/src/celestialflow/web/static/css/_colors.css +130 -0
- celestialflow-3.1.5/src/celestialflow/web/static/css/base.css +302 -0
- celestialflow-3.1.5/src/celestialflow/web/static/css/dashboard.css +346 -0
- celestialflow-3.1.5/src/celestialflow/web/static/css/errors.css +284 -0
- celestialflow-3.1.5/src/celestialflow/web/static/css/inject.css +599 -0
- celestialflow-3.1.5/src/celestialflow/web/static/favicon.ico +0 -0
- celestialflow-3.1.5/src/celestialflow/web/static/js/main.js +85 -0
- celestialflow-3.1.5/src/celestialflow/web/static/js/task_config.js +124 -0
- celestialflow-3.1.5/src/celestialflow/web/static/js/task_errors.js +145 -0
- celestialflow-3.1.5/src/celestialflow/web/static/js/task_history.js +129 -0
- celestialflow-3.1.5/src/celestialflow/web/static/js/task_injection.js +332 -0
- celestialflow-3.1.5/src/celestialflow/web/static/js/task_statuses.js +129 -0
- celestialflow-3.1.5/src/celestialflow/web/static/js/task_structure.js +133 -0
- celestialflow-3.1.5/src/celestialflow/web/static/js/task_summary.js +49 -0
- celestialflow-3.1.5/src/celestialflow/web/static/js/task_topology.js +59 -0
- celestialflow-3.1.5/src/celestialflow/web/static/js/utils.js +170 -0
- celestialflow-3.1.5/src/celestialflow/web/static/js/web_config.js +119 -0
- celestialflow-3.1.5/src/celestialflow/web/static/ts/globals.d.ts +6 -0
- celestialflow-3.1.5/src/celestialflow/web/static/ts/main.ts +99 -0
- celestialflow-3.1.5/src/celestialflow/web/static/ts/task_errors.ts +161 -0
- celestialflow-3.1.5/src/celestialflow/web/static/ts/task_history.ts +151 -0
- celestialflow-3.1.5/src/celestialflow/web/static/ts/task_injection.ts +379 -0
- celestialflow-3.1.5/src/celestialflow/web/static/ts/task_statuses.ts +174 -0
- celestialflow-3.1.5/src/celestialflow/web/static/ts/task_structure.ts +154 -0
- celestialflow-3.1.5/src/celestialflow/web/static/ts/task_summary.ts +59 -0
- celestialflow-3.1.5/src/celestialflow/web/static/ts/task_topology.ts +67 -0
- celestialflow-3.1.5/src/celestialflow/web/static/ts/utils.ts +186 -0
- celestialflow-3.1.5/src/celestialflow/web/static/ts/web_config.ts +144 -0
- celestialflow-3.1.5/src/celestialflow/web/templates/index.html +390 -0
- {celestialflow-3.1.3 → celestialflow-3.1.5}/src/celestialflow.egg-info/PKG-INFO +13 -69
- celestialflow-3.1.5/src/celestialflow.egg-info/SOURCES.txt +79 -0
- celestialflow-3.1.5/tests/test_executor.py +70 -0
- celestialflow-3.1.3/tests/test_nodes.py → celestialflow-3.1.5/tests/test_stages.py +53 -131
- {celestialflow-3.1.3 → celestialflow-3.1.5}/tests/test_structure.py +39 -110
- celestialflow-3.1.5/tests/test_utils.py +237 -0
- celestialflow-3.1.3/src/celestialflow/persistence/__init__.py +0 -13
- celestialflow-3.1.3/src/celestialflow/runtime/__init__.py +0 -13
- celestialflow-3.1.3/src/celestialflow/runtime/envelope.py +0 -28
- celestialflow-3.1.3/src/celestialflow/runtime/metrics.py +0 -209
- celestialflow-3.1.3/src/celestialflow/runtime/queue.py +0 -314
- celestialflow-3.1.3/src/celestialflow/web/server.py +0 -274
- celestialflow-3.1.3/src/celestialflow.egg-info/SOURCES.txt +0 -46
- {celestialflow-3.1.3 → celestialflow-3.1.5}/setup.cfg +0 -0
- {celestialflow-3.1.3 → celestialflow-3.1.5}/src/celestialflow/utils/__init__.py +0 -0
- {celestialflow-3.1.3 → celestialflow-3.1.5}/src/celestialflow.egg-info/dependency_links.txt +0 -0
- {celestialflow-3.1.3 → celestialflow-3.1.5}/src/celestialflow.egg-info/entry_points.txt +0 -0
- {celestialflow-3.1.3 → celestialflow-3.1.5}/src/celestialflow.egg-info/requires.txt +0 -0
- {celestialflow-3.1.3 → celestialflow-3.1.5}/src/celestialflow.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: celestialflow
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.5
|
|
4
4
|
Summary: A flexible GRAPH-based task orchestration framework.
|
|
5
5
|
Author-email: Mr-xiaotian <mingxiaomingtian@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -254,84 +254,28 @@ flowchart TD
|
|
|
254
254
|
<p align="center">
|
|
255
255
|
<img src="https://raw.githubusercontent.com/Mr-xiaotian/CelestialFlow/main/img/file_structure.svg" alt="FileStructure" />
|
|
256
256
|
<br/>
|
|
257
|
-
<em>celestial-flow 3.1.
|
|
257
|
+
<em>celestial-flow 3.1.5</em>
|
|
258
258
|
</p>
|
|
259
259
|
|
|
260
260
|
(该视图由我的另一个项目[CelestialVault](https://github.com/Mr-xiaotian/CelestialVault)中inst_file.FileTree.print_tree()生成。转换为图片则借助[Carbon](https://carbon.now.sh)。)
|
|
261
261
|
|
|
262
|
-
##
|
|
263
|
-
|
|
264
|
-
-
|
|
265
|
-
-
|
|
266
|
-
-
|
|
267
|
-
-
|
|
268
|
-
-
|
|
269
|
-
-
|
|
270
|
-
- 6/11/2025: 自[CelestialVault](https://github.com/Mr-xiaotian/CelestialVault)项目instances.inst_task迁出
|
|
271
|
-
- 6/12/2025: 支持循环图, 下级节点可指向上级节点
|
|
272
|
-
- 6/13/2025: 支持loop结构, 即节点可指向自己
|
|
273
|
-
- 6/14/2025: 支持forest结构, 即可有多个根节点
|
|
274
|
-
- 6/16/2025: 多轮评测后, 当前框架已支持完整有向图结构, 将TaskTree改名为TaskGraph
|
|
275
|
-
- 3.0.1: 上线Pypi, 可喜可贺
|
|
276
|
-
- 3.0.4: 新增一个抽象结构TaskQueue, 用于表示节点的所有"入边"与"出边"; 恢复未消费任务的保存功能
|
|
277
|
-
- 3.0.5: 删除原有的TaskRedisTransfer节点, 并增添三种新的redis交互节点TaskRedisTransport TaskRedisSource TaskRedisAck, 用于跨语言 跨进程 跨设备处理任务; 并在Web页面添加展示拓扑信息的卡片
|
|
278
|
-
- 3.0.6: 添加对[CelestialTree](https://github.com/Mr-xiaotian/CelestialTree)系统的支持, 现在可以追踪单个任务的流向
|
|
279
|
-
- 3.0.7: 将TaskStage从TaskExecutor中单独抽出来作为一个子类; 增加新节点TaskRouter, 可以将传入的任务选择的传给不同的下游节点, 而不是进行广播
|
|
280
|
-
- 3.0.8: 在ctree逻辑上将"任务重试"事件后的"任务成功/失败/重试"事件视为因果关系, 而非之前的并行关系; 重构错误搜集部分逻辑; 修复大量3.0.6与3.07版本引入的bug; 优化部分log表现
|
|
281
|
-
- 3.0.9:
|
|
282
|
-
- 更新前端mermaid显示中部分节点图标;
|
|
283
|
-
- 对ctree_client进行匹配CelestialTree的大量修改;
|
|
284
|
-
- 将ctree_client移出为单独的project;
|
|
285
|
-
- 在前端中添加error_id的显示, 为之后显示provenance_tree做准备;
|
|
286
|
-
- 增加大量warning与error, 用于提醒不规范设置;
|
|
287
|
-
- 优化前后端中错误数据的传输方式, 在大量错误数据时减少内存消耗;
|
|
288
|
-
- 优化LogSinker中log队列的准入机制;
|
|
289
|
-
- 修改部分Bug;
|
|
290
|
-
- 3.1.0:
|
|
291
|
-
- 新增:
|
|
292
|
-
- 优化web端仪表盘页面的"总体状态摘要"卡片, 新增"总重复任务"与"总剩余市场", 后者由节点间拓扑关系计算而成, 后续还需要优化;
|
|
293
|
-
- 修复:
|
|
294
|
-
- 3.0.9版本下当web端与celestialflow运行端不同时, error数据无法传递的问题;
|
|
295
|
-
- 修复NullTaskReporter使用问题;
|
|
296
|
-
- 3.1.1:
|
|
297
|
-
- 新增:
|
|
298
|
-
- [Important] CelestialTree中引入grpc, 这大大减少了emit操作的耗时;
|
|
299
|
-
- [Important] 为TerminationSignal添加id, 并可以像task一样通过CelestialTree进行跟踪;
|
|
300
|
-
- 优化task_graph与task_executor的log分级, 现在默认为"SUCCESS"级;
|
|
301
|
-
- 将go_worker部分分离为单独project: [celestialflow-goworker]https://github.com/Mr-xiaotian/celestialflow-goworker
|
|
302
|
-
- 在readme中使用svg图片来展示文件夹结构;
|
|
303
|
-
- 优化全局剩余时间的计算;
|
|
304
|
-
- 优化部分代码结构;
|
|
305
|
-
- 修复:
|
|
306
|
-
- 修复节点剩余时间在小于1s时显示0的问题(这很影响判断);
|
|
307
|
-
- 在task_graph中使用"staged"模式时会报错的问题;
|
|
308
|
-
- 3.1.2:
|
|
309
|
-
- feat:
|
|
310
|
-
- [Important] 模仿已有Logger逻辑, 建立新的组合结构FailListener和FailSinker, 将原有绑定于TaskReporter的fail持久化在线程中实现;
|
|
311
|
-
- 借此让TaskExecutor也可以进行fail持久化, 文件为fallback/{date_str}/{executor_errors}({time_str}).jsonl";
|
|
312
|
-
- 重构整体项目结构, 现在更加清晰;
|
|
313
|
-
- 补全docs/reference中全部文档, 并令其符合项目重构后结构
|
|
314
|
-
- 引入uv进行环境管理;
|
|
315
|
-
- 将executor中技术逻辑分离为runtime/metrics.py;
|
|
316
|
-
- 整合TaskQueue中重复逻辑;
|
|
262
|
+
## 版本日志(Version Log)
|
|
263
|
+
- 3.1.5
|
|
264
|
+
- feat
|
|
265
|
+
- 大幅修改节点状态卡片的色彩视觉设计. 包括: 取消原本的悬浮设计, 改为平面化设计; 让进度条更直接的显示不同任务完成状态的比例; 使用左边框来显示节点是否在运行中. 而非原本的badge;
|
|
266
|
+
- 前端的error数据拉取不再每次都全量拉取, 而是只拉取自己当前没有的数据;
|
|
267
|
+
- refactor
|
|
268
|
+
- 大幅重构前端代码中的色彩管理, 现在色彩的一致性更好;
|
|
269
|
+
- 修改前端代码中的数据更新判断, 现在相关判断交给serve.py;
|
|
317
270
|
- fix
|
|
318
|
-
-
|
|
319
|
-
-
|
|
320
|
-
- 3.1.3
|
|
321
|
-
- feat:
|
|
322
|
-
- 抽象出BaseListener与BaseSinker;
|
|
323
|
-
- 移除loguru, 完全由LogListener和LogSinker实现log记录;
|
|
324
|
-
- 将bench相关代码从TaskExecutor和TaskGraph中抽离, 不再作为方法, 而是单独bench函数;
|
|
325
|
-
- 重构TaskExecutor部分代码, 以尽量瘦身;
|
|
326
|
-
- 优化log处理代码中对时间戳的处理, 现在更加准确;
|
|
327
|
-
- fix:
|
|
328
|
-
- 修复一些影响性能的小问题;
|
|
271
|
+
- 修复节点已运行时间在节点完成后显示为0的问题
|
|
272
|
+
- 修复在最新fastapi版本下TemplateResponse参数改变导致的问题
|
|
329
273
|
|
|
330
274
|
## Star 历史趋势(Star History)
|
|
331
275
|
|
|
332
276
|
如果对项目感兴趣的话,欢迎star。如果有问题或者建议的话, 欢迎提交[Issues](https://github.com/Mr-xiaotian/CelestialFlow/issues)或者在[Discussion](https://github.com/Mr-xiaotian/CelestialFlow/discussions)中告诉我。
|
|
333
277
|
|
|
334
|
-
|
|
278
|
+

|
|
335
279
|
|
|
336
280
|
## 许可(License)
|
|
337
281
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
@@ -229,84 +229,28 @@ flowchart TD
|
|
|
229
229
|
<p align="center">
|
|
230
230
|
<img src="https://raw.githubusercontent.com/Mr-xiaotian/CelestialFlow/main/img/file_structure.svg" alt="FileStructure" />
|
|
231
231
|
<br/>
|
|
232
|
-
<em>celestial-flow 3.1.
|
|
232
|
+
<em>celestial-flow 3.1.5</em>
|
|
233
233
|
</p>
|
|
234
234
|
|
|
235
235
|
(该视图由我的另一个项目[CelestialVault](https://github.com/Mr-xiaotian/CelestialVault)中inst_file.FileTree.print_tree()生成。转换为图片则借助[Carbon](https://carbon.now.sh)。)
|
|
236
236
|
|
|
237
|
-
##
|
|
238
|
-
|
|
239
|
-
-
|
|
240
|
-
-
|
|
241
|
-
-
|
|
242
|
-
-
|
|
243
|
-
-
|
|
244
|
-
-
|
|
245
|
-
- 6/11/2025: 自[CelestialVault](https://github.com/Mr-xiaotian/CelestialVault)项目instances.inst_task迁出
|
|
246
|
-
- 6/12/2025: 支持循环图, 下级节点可指向上级节点
|
|
247
|
-
- 6/13/2025: 支持loop结构, 即节点可指向自己
|
|
248
|
-
- 6/14/2025: 支持forest结构, 即可有多个根节点
|
|
249
|
-
- 6/16/2025: 多轮评测后, 当前框架已支持完整有向图结构, 将TaskTree改名为TaskGraph
|
|
250
|
-
- 3.0.1: 上线Pypi, 可喜可贺
|
|
251
|
-
- 3.0.4: 新增一个抽象结构TaskQueue, 用于表示节点的所有"入边"与"出边"; 恢复未消费任务的保存功能
|
|
252
|
-
- 3.0.5: 删除原有的TaskRedisTransfer节点, 并增添三种新的redis交互节点TaskRedisTransport TaskRedisSource TaskRedisAck, 用于跨语言 跨进程 跨设备处理任务; 并在Web页面添加展示拓扑信息的卡片
|
|
253
|
-
- 3.0.6: 添加对[CelestialTree](https://github.com/Mr-xiaotian/CelestialTree)系统的支持, 现在可以追踪单个任务的流向
|
|
254
|
-
- 3.0.7: 将TaskStage从TaskExecutor中单独抽出来作为一个子类; 增加新节点TaskRouter, 可以将传入的任务选择的传给不同的下游节点, 而不是进行广播
|
|
255
|
-
- 3.0.8: 在ctree逻辑上将"任务重试"事件后的"任务成功/失败/重试"事件视为因果关系, 而非之前的并行关系; 重构错误搜集部分逻辑; 修复大量3.0.6与3.07版本引入的bug; 优化部分log表现
|
|
256
|
-
- 3.0.9:
|
|
257
|
-
- 更新前端mermaid显示中部分节点图标;
|
|
258
|
-
- 对ctree_client进行匹配CelestialTree的大量修改;
|
|
259
|
-
- 将ctree_client移出为单独的project;
|
|
260
|
-
- 在前端中添加error_id的显示, 为之后显示provenance_tree做准备;
|
|
261
|
-
- 增加大量warning与error, 用于提醒不规范设置;
|
|
262
|
-
- 优化前后端中错误数据的传输方式, 在大量错误数据时减少内存消耗;
|
|
263
|
-
- 优化LogSinker中log队列的准入机制;
|
|
264
|
-
- 修改部分Bug;
|
|
265
|
-
- 3.1.0:
|
|
266
|
-
- 新增:
|
|
267
|
-
- 优化web端仪表盘页面的"总体状态摘要"卡片, 新增"总重复任务"与"总剩余市场", 后者由节点间拓扑关系计算而成, 后续还需要优化;
|
|
268
|
-
- 修复:
|
|
269
|
-
- 3.0.9版本下当web端与celestialflow运行端不同时, error数据无法传递的问题;
|
|
270
|
-
- 修复NullTaskReporter使用问题;
|
|
271
|
-
- 3.1.1:
|
|
272
|
-
- 新增:
|
|
273
|
-
- [Important] CelestialTree中引入grpc, 这大大减少了emit操作的耗时;
|
|
274
|
-
- [Important] 为TerminationSignal添加id, 并可以像task一样通过CelestialTree进行跟踪;
|
|
275
|
-
- 优化task_graph与task_executor的log分级, 现在默认为"SUCCESS"级;
|
|
276
|
-
- 将go_worker部分分离为单独project: [celestialflow-goworker]https://github.com/Mr-xiaotian/celestialflow-goworker
|
|
277
|
-
- 在readme中使用svg图片来展示文件夹结构;
|
|
278
|
-
- 优化全局剩余时间的计算;
|
|
279
|
-
- 优化部分代码结构;
|
|
280
|
-
- 修复:
|
|
281
|
-
- 修复节点剩余时间在小于1s时显示0的问题(这很影响判断);
|
|
282
|
-
- 在task_graph中使用"staged"模式时会报错的问题;
|
|
283
|
-
- 3.1.2:
|
|
284
|
-
- feat:
|
|
285
|
-
- [Important] 模仿已有Logger逻辑, 建立新的组合结构FailListener和FailSinker, 将原有绑定于TaskReporter的fail持久化在线程中实现;
|
|
286
|
-
- 借此让TaskExecutor也可以进行fail持久化, 文件为fallback/{date_str}/{executor_errors}({time_str}).jsonl";
|
|
287
|
-
- 重构整体项目结构, 现在更加清晰;
|
|
288
|
-
- 补全docs/reference中全部文档, 并令其符合项目重构后结构
|
|
289
|
-
- 引入uv进行环境管理;
|
|
290
|
-
- 将executor中技术逻辑分离为runtime/metrics.py;
|
|
291
|
-
- 整合TaskQueue中重复逻辑;
|
|
237
|
+
## 版本日志(Version Log)
|
|
238
|
+
- 3.1.5
|
|
239
|
+
- feat
|
|
240
|
+
- 大幅修改节点状态卡片的色彩视觉设计. 包括: 取消原本的悬浮设计, 改为平面化设计; 让进度条更直接的显示不同任务完成状态的比例; 使用左边框来显示节点是否在运行中. 而非原本的badge;
|
|
241
|
+
- 前端的error数据拉取不再每次都全量拉取, 而是只拉取自己当前没有的数据;
|
|
242
|
+
- refactor
|
|
243
|
+
- 大幅重构前端代码中的色彩管理, 现在色彩的一致性更好;
|
|
244
|
+
- 修改前端代码中的数据更新判断, 现在相关判断交给serve.py;
|
|
292
245
|
- fix
|
|
293
|
-
-
|
|
294
|
-
-
|
|
295
|
-
- 3.1.3
|
|
296
|
-
- feat:
|
|
297
|
-
- 抽象出BaseListener与BaseSinker;
|
|
298
|
-
- 移除loguru, 完全由LogListener和LogSinker实现log记录;
|
|
299
|
-
- 将bench相关代码从TaskExecutor和TaskGraph中抽离, 不再作为方法, 而是单独bench函数;
|
|
300
|
-
- 重构TaskExecutor部分代码, 以尽量瘦身;
|
|
301
|
-
- 优化log处理代码中对时间戳的处理, 现在更加准确;
|
|
302
|
-
- fix:
|
|
303
|
-
- 修复一些影响性能的小问题;
|
|
246
|
+
- 修复节点已运行时间在节点完成后显示为0的问题
|
|
247
|
+
- 修复在最新fastapi版本下TemplateResponse参数改变导致的问题
|
|
304
248
|
|
|
305
249
|
## Star 历史趋势(Star History)
|
|
306
250
|
|
|
307
251
|
如果对项目感兴趣的话,欢迎star。如果有问题或者建议的话, 欢迎提交[Issues](https://github.com/Mr-xiaotian/CelestialFlow/issues)或者在[Discussion](https://github.com/Mr-xiaotian/CelestialFlow/discussions)中告诉我。
|
|
308
252
|
|
|
309
|
-
|
|
253
|
+

|
|
310
254
|
|
|
311
255
|
## 许可(License)
|
|
312
256
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
@@ -1,70 +1,74 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
-
build-backend = "setuptools.build_meta"
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
name = "celestialflow"
|
|
7
|
-
version = "3.1.
|
|
8
|
-
description = "A flexible GRAPH-based task orchestration framework."
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
license = { text = "MIT" }
|
|
11
|
-
authors = [{ name = "Mr-xiaotian", email = "mingxiaomingtian@gmail.com" }]
|
|
12
|
-
keywords = ["workflow", "task", "graph", "async", "CelestialFlow"]
|
|
13
|
-
requires-python = ">=3.10"
|
|
14
|
-
|
|
15
|
-
dependencies = [
|
|
16
|
-
"tqdm",
|
|
17
|
-
"fastapi",
|
|
18
|
-
"uvicorn",
|
|
19
|
-
"requests",
|
|
20
|
-
"networkx",
|
|
21
|
-
"redis",
|
|
22
|
-
"jinja2",
|
|
23
|
-
"celestialtree>=0.1.2",
|
|
24
|
-
]
|
|
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
|
-
|
|
34
|
-
[project.urls]
|
|
35
|
-
"Homepage" = "https://github.com/Mr-xiaotian/CelestialFlow"
|
|
36
|
-
"Bug Tracker" = "https://github.com/Mr-xiaotian/CelestialFlow/issues"
|
|
37
|
-
|
|
38
|
-
[project.scripts]
|
|
39
|
-
celestialflow-web = "celestialflow.web.server:main_entry"
|
|
40
|
-
|
|
41
|
-
[tool.setuptools]
|
|
42
|
-
license-files = []
|
|
43
|
-
|
|
44
|
-
[tool.setuptools.package-data]
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "celestialflow"
|
|
7
|
+
version = "3.1.5"
|
|
8
|
+
description = "A flexible GRAPH-based task orchestration framework."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = { text = "MIT" }
|
|
11
|
+
authors = [{ name = "Mr-xiaotian", email = "mingxiaomingtian@gmail.com" }]
|
|
12
|
+
keywords = ["workflow", "task", "graph", "async", "CelestialFlow"]
|
|
13
|
+
requires-python = ">=3.10"
|
|
14
|
+
|
|
15
|
+
dependencies = [
|
|
16
|
+
"tqdm",
|
|
17
|
+
"fastapi",
|
|
18
|
+
"uvicorn",
|
|
19
|
+
"requests",
|
|
20
|
+
"networkx",
|
|
21
|
+
"redis",
|
|
22
|
+
"jinja2",
|
|
23
|
+
"celestialtree>=0.1.2",
|
|
24
|
+
]
|
|
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
|
+
|
|
34
|
+
[project.urls]
|
|
35
|
+
"Homepage" = "https://github.com/Mr-xiaotian/CelestialFlow"
|
|
36
|
+
"Bug Tracker" = "https://github.com/Mr-xiaotian/CelestialFlow/issues"
|
|
37
|
+
|
|
38
|
+
[project.scripts]
|
|
39
|
+
celestialflow-web = "celestialflow.web.server:main_entry"
|
|
40
|
+
|
|
41
|
+
[tool.setuptools]
|
|
42
|
+
license-files = []
|
|
43
|
+
|
|
44
|
+
[tool.setuptools.package-data]
|
|
45
|
+
celestialflow = [
|
|
46
|
+
"web/templates/**/*.html",
|
|
47
|
+
"web/static/**/*",
|
|
48
|
+
"web/config.json"
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
[tool.pytest.ini_options]
|
|
52
|
+
addopts = "-s"
|
|
53
|
+
log_cli = true
|
|
54
|
+
log_cli_level = "INFO"
|
|
55
|
+
log_cli_format = "%(asctime)s [%(levelname)s] %(message)s"
|
|
56
|
+
log_cli_date_format = "%Y-%m-%d %H:%M:%S"
|
|
57
|
+
|
|
58
|
+
filterwarnings = [
|
|
59
|
+
"ignore::DeprecationWarning",
|
|
60
|
+
"ignore::pytest.PytestDeprecationWarning",
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
asyncio_default_fixture_loop_scope = "function"
|
|
64
|
+
|
|
65
|
+
[dependency-groups]
|
|
66
|
+
dev = [
|
|
67
|
+
"build>=1.2.2.post1",
|
|
68
|
+
"twine>=6.1.0",
|
|
69
|
+
"pytest>=8.3.4",
|
|
70
|
+
"pytest-asyncio>=0.25.3",
|
|
71
|
+
"httpx>=0.28.1",
|
|
72
|
+
"python-dotenv>=1.2.2",
|
|
73
|
+
"black>=26.1.0",
|
|
74
|
+
]
|
|
@@ -17,15 +17,15 @@ from .graph import (
|
|
|
17
17
|
TaskWheel,
|
|
18
18
|
TaskGrid,
|
|
19
19
|
)
|
|
20
|
-
from .persistence.
|
|
20
|
+
from .persistence.util_jsonl import (
|
|
21
21
|
load_jsonl_logs,
|
|
22
22
|
load_task_by_stage,
|
|
23
23
|
load_task_by_error,
|
|
24
24
|
)
|
|
25
|
-
from .runtime.
|
|
26
|
-
from .runtime.
|
|
27
|
-
from .utils.
|
|
28
|
-
from .utils.
|
|
25
|
+
from .runtime.util_types import TerminationSignal
|
|
26
|
+
from .runtime.util_hash import make_hashable
|
|
27
|
+
from .utils.util_format import format_table
|
|
28
|
+
from .utils.util_benchmark import benchmark_graph, benchmark_executor
|
|
29
29
|
from .web.server import TaskWebServer
|
|
30
30
|
|
|
31
31
|
__all__ = [
|