Skip to content

Releases: Dramwig/FlowLine

v0.1.3

22 Oct 15:23

Choose a tag to compare

FlowLine v0.1.3 · 发布说明

TL;DR

  • 不再支持顶层导入:from flowline import ...
  • 新用法:
    • CLI:from flowline.api import run_cli
    • Web/ASGI:from flowline.api.routes import get_app
  • CLI 与 Web 依赖彻底解耦:纯 CLI 安装不再拉取 FastAPI/Flask/Uvicorn 等 Web 依赖(通过可选依赖实现)。

🚨 重要变更(Breaking Change)

  • 移除 顶层导入:from flowline import run_cli / get_app

  • 改为 API 命名空间:

    • 命令行入口:flowline.api.run_cli
    • Web/ASGI 应用工厂:flowline.api.routes.get_app

行为与参数语义未改变,仅导入路径变更。

为什么要这样改?

  • 模块边界更清晰:CLI 与路由解耦,降低隐式副作用。
  • 导入更轻量:避免导入顶层时加载不必要依赖。
  • 类型检查与文档更友好:API 所在路径一目了然,IDE 辅助更准确。
  • 为后续扩展(如 flowline.api.* 其他子模块)考虑

📦 接口兼容性说明

接口兼容性说明:本次改动为向前兼容——推荐的新导入

from flowline.api import run_cli

在旧版与 v0.1.3 中均可正常使用,建议统一迁移为该写法;而旧写法

from flowline import run_cli

自 v0.1.3 起已移除,不具备向后兼容性,升级到新版本将触发 ImportError

🔧 迁移指南

1) CLI 场景

之前:

# ❌ v0.1.2 及更早
from flowline import run_cli
run_cli()

现在:

# ✅ v0.1.3
from flowline.api import run_cli
run_cli()

2) Web/ASGI 场景(例如 FastAPI/Uvicorn)

之前:

# ❌ v0.1.2 及更早
from flowline import get_app
app = get_app()

现在:

# ✅ v0.1.3
from flowline.api.routes import get_app
app = get_app()

批量替换(示例)

from flowline import run_clifrom flowline.api import run_cli
from flowline import get_appfrom flowline.api.routes import get_app

v0.1.2

09 Sep 12:41

Choose a tag to compare

支持自定义GPU优先比较函数,支持优先排序后的多GPU调用,func参数列表改变!

from flowline import run_cli

def func(dict, gpu_id, sorted_gpu_ids):
    print(sorted_gpu_ids)
    return "CUDA_VISIBLE_DEVICES="+str(gpu_id)+" python -u test/test.py "+ " ".join([f"--{k} {v}" for k, v in dict.items()])

def cmp(info1, info2):
    if info1.free_memory > info2.free_memory:
        return -1
    elif info1.free_memory < info2.free_memory:
        return 1
    else:
        return 0

if __name__ == "__main__":
    # run_cli(func, "test/todo.csv") 
    run_cli(func, "test/todo.csv", user_cmp=cmp) # user_cmp可选

v0.1.1

15 Aug 07:39

Choose a tag to compare

支持更多格式的任务列表

v0.1.0-alpha

05 Aug 06:50
c692101

Choose a tag to compare

v0.1.0-alpha Pre-release
Pre-release

Automated tool for running Python programs in a streamlined manner.