Skip to content

v0.1.3

Latest

Choose a tag to compare

@Dramwig Dramwig released this 22 Oct 15:23
· 3 commits to master since this release

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