# 算法包开发 SDK —— 独立项目(可单独 clone / 分发 / 出包) # # 定位:算法作者只需要这一个项目 + 一台设备(或没有设备也能做静态校验), # 即可完成「写算法 → 本地跑通 → 打包 → 自检 → 交付 .mbank」的全流程, # 不需要 worker 仓库、也不需要了解 worker 内部结构。 [project] name = "algpkg-sdk" version = "0.1.0" description = "算法包(.mbank)开发、测试与打包工具链" readme = "README.md" requires-python = ">=3.10" dependencies = [ # .mbank 读写(svfs 虚拟文件系统 + 模块银行打包器) "module-bank>=0.4.2", "orjson>=3.10", "numpy>=1.26", # 注:设备侧推理(sophon-arm / sail)**不是必需依赖** —— 没有 NPU 的机器照样能做 # manifest 校验、打包、挂载试加载(不实跑模型);只有 `algpkg run` 需要设备。 ] [project.optional-dependencies] # 设备上跑推理/本地测试台时需要(BM1684X / BM1688 / CV186X 等 Sophon 设备) device = ["sophon-arm>=3.11.1"] # 开发本项目自身(单测 + 类型) dev = ["pytest>=8", "sophon-arm>=3.11.1"] [project.scripts] algpkg = "algpkg_sdk.cli:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] # 两个顶层包同属本发行:algpkg_sdk(工具链)+ video_algpkg_api(接口契约名的真实模块, # 算法包代码只导入它;重导出 algpkg_sdk.api,见 src/video_algpkg_api/__init__.py) packages = ["src/algpkg_sdk", "src/video_algpkg_api"] [tool.pytest.ini_options] testpaths = ["tests"] markers = [ "device: 需要 Sophon 设备(NPU)才能跑;无设备时自动跳过", ] # 索引:内部源(含 sophon-arm 等设备包)优先,公共源兜底 —— 与 workers/video 同口径 [[tool.uv.index]] url = "http://124.71.68.6:3000/api/packages/chongming/pypi/simple/" [[tool.uv.index]] url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"