跳到内容

开发指南

要求

名称 安装 目的
Python 3.10-3.12 下载 该库是基于 Python 的。
uv 说明 uv 用于 Python 代码库中的包管理和虚拟环境管理

入门

安装依赖项

# install python dependencies
uv sync

执行索引引擎

uv run poe index <...args>

执行查询

uv run poe query <...args>

Azurite

一些单元测试和冒烟测试使用 Azurite 来模拟 Azure 资源。可以通过运行以下命令启动它:

./scripts/start-azurite.sh

或者,如果已全局安装 Azurite,则只需在终端中运行 azurite。有关如何安装和使用 Azurite 的更多信息,请参阅 Azurite 文档

生命周期脚本

我们的 Python 包利用 uv 来管理依赖项,并利用 poethepoet 来管理构建脚本。

可用脚本如下:

  • uv run poe index - 运行索引 CLI
  • uv run poe query - 运行查询 CLI
  • uv build - 这将构建一个 wheel 文件和其他可分发工件。
  • uv run poe test - 这将执行所有测试。
  • uv run poe test_unit - 这将执行单元测试。
  • uv run poe test_integration - 这将执行集成测试。
  • uv run poe test_smoke - 这将执行冒烟测试。
  • uv run poe test_verbs - 这将执行基本工作流的测试。
  • uv run poe check - 这将对包执行一套静态检查,包括:
  • 格式化
  • 文档格式化
  • Linting(代码检查)
  • 安全模式
  • 类型检查
  • uv run poe fix - 这将对包应用所有可用的自动修复。通常这只是格式修复。
  • uv run poe fix_unsafe - 这将对包应用所有可用的自动修复,包括那些可能不安全的修复。
  • uv run poe format - 显式地对包运行格式化程序。

故障排除

运行 uv install 时出现 "RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config"

确保安装了 llvm-9 和 llvm-9-dev

sudo apt-get install llvm-9 llvm-9-dev

然后在你的 bashrc 中添加

export LLVM_CONFIG=/usr/bin/llvm-config-9