跳至内容

开发 - 贡献

首先,您可能需要查看 帮助 Typer 和获取帮助 的基本方法。

开发

如果您已经克隆了存储库并且您知道需要深入研究代码,以下是一些设置环境的指南。

使用 venv 创建虚拟环境

您可以使用 Python 的 venv 模块在目录中创建虚拟环境

$ python -m venv env

这将在 ./env/ 目录中创建包含 Python 二进制文件的目录,然后您就可以为该隔离环境安装软件包。

激活环境

使用以下命令激活新环境:

$ source ./env/bin/activate
$ .\env\Scripts\Activate.ps1

或者,如果您使用的是 Windows 的 Bash(例如 Git Bash

$ source ./env/Scripts/activate

要检查是否成功,请使用

$ which pip

some/directory/typer/env/bin/pip
$ Get-Command pip

some/directory/typer/env/bin/pip

如果它显示 pip 二进制文件位于 env/bin/pip,则表示成功。🎉

提示

每次您在该环境下使用 pip 安装新软件包时,请再次激活环境。

这可以确保如果您使用该软件包安装的终端程序(例如 flit),您使用的是本地环境中的程序,而不是任何其他可能全局安装的程序。

Flit

Typer 使用 Flit 来构建、打包和发布项目。

在按照上述步骤激活环境后,安装 flit

$ pip install flit

---> 100%

现在重新激活环境以确保您使用的是刚刚安装的 flit(而不是全局的)。

现在使用 flit 安装开发依赖项

$ flit install --deps develop --symlink

---> 100%

如果您使用的是 Windows,请使用 --pth-file 而不是 --symlink

$ flit install --deps develop --pth-file

---> 100%

它将安装所有依赖项和您本地环境中的本地 Typer。

使用本地 Typer

如果您创建了一个导入并使用 Typer 的 Python 文件,并使用本地环境中的 Python 运行它,它将使用您的本地 Typer 源代码。

如果您更新了该本地 Typer 源代码,因为它使用 --symlink(或 Windows 上的 --pth-file)安装,当您再次运行该 Python 文件时,它将使用您刚刚编辑的 Typer 新版本。

这样,您就不必“安装”本地版本才能测试每个更改。

格式

有一个脚本可以运行,它将格式化和清理所有代码

$ bash scripts/format.sh

它还会自动排序所有导入。

为了正确排序,您需要在本地环境中安装 Typer,并在上面部分使用 `--symlink`(或 Windows 上的 `--pth-file`)的命令。

格式化导入

还有一个脚本可以格式化所有导入,并确保没有未使用的导入

$ bash scripts/format-imports.sh

由于它一个接一个地运行命令,并修改和还原许多文件,因此运行时间会稍微长一些,因此,频繁使用 `scripts/format.sh` 和仅在提交之前使用 `scripts/format-imports.sh` 可能更容易。

文档

文档使用 MkDocs

所有文档都以 Markdown 格式存储在 `./docs` 目录中。

许多教程都有代码块。

在大多数情况下,这些代码块是实际的完整应用程序,可以按原样运行。

事实上,这些代码块不是在 Markdown 中编写的,而是在 `./docs_src/` 目录中的 Python 文件中。

这些 Python 文件在生成网站时被包含/注入到文档中。

测试文档

大多数测试实际上针对文档中的示例源文件运行。

这有助于确保

  • 文档是最新的。
  • 文档示例可以按原样运行。
  • 大多数功能都由文档涵盖,并通过测试覆盖率来确保。

在本地开发期间,有一个脚本可以构建网站并检查任何更改,实时重新加载

$ bash scripts/docs-live.sh

<span style="color: green;">[INFO]</span>    -  Building documentation...
<span style="color: green;">[INFO]</span>    -  Cleaning site directory
<span style="color: green;">[INFO]</span>    -  Documentation built in 2.74 seconds
<span style="color: green;">[INFO]</span>    -  Serving on http://127.0.0.1:8008

它将在 `http://127.0.0.1:8008` 上提供文档。

这样,您可以编辑文档/源文件并实时查看更改。

测试

有一个脚本可以在本地运行,以测试所有代码并在 HTML 中生成覆盖率报告

$ bash scripts/test-cov-html.sh

此命令生成一个目录 `./htmlcov/`,如果您在浏览器中打开文件 `./htmlcov/index.html`,您可以交互式地浏览测试覆盖的代码区域,并注意是否有任何区域缺失。