开发 - 贡献
首先,您可能需要查看 帮助 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`,您可以交互式地浏览测试覆盖的代码区域,并注意是否有任何区域缺失。