Skip to content

贡献

首先,你可能想查看一些基本的方式来 帮助 SQLModel 并获取帮助

开发

如果你已经克隆了 sqlmodel 仓库,并且想深入研究代码,以下是一些设置环境的指南。

虚拟环境

按照说明创建并激活一个 虚拟环境,用于 sqlmodel 的内部代码。

使用 pip 安装依赖

激活环境后,安装所需的包:

$ pip install -r requirements.txt

---> 100%

这将安装所有依赖项并在本地环境中安装你的 SQLModel 本地版本。

使用本地 SQLModel

如果你创建一个 Python 文件,导入并使用 SQLModel,然后用你本地环境中的 Python 运行它,它将使用你克隆的本地 SQLModel 源代码。

当你更新本地 SQLModel 源代码时,再次运行 Python 文件时,它将使用你刚刚编辑的最新版本的 SQLModel。

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

“技术细节”

只有在使用这个包含的 requirements.txt 文件安装时才会发生这种情况,而不是直接运行 pip install sqlmodel

这是因为在 requirements.txt 文件中,本地版本的 SQLModel 被标记为“可编辑”模式,使用了 -e 选项。

格式化

你可以运行一个脚本,格式化并清理你的所有代码:

$ bash scripts/format.sh

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

测试

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

$ bash scripts/test-cov-html.sh

此命令会生成一个 ./htmlcov/ 目录,如果你在浏览器中打开 ./htmlcov/index.html 文件,你可以互动地查看被测试覆盖的代码区域,并注意是否有任何区域没有被覆盖。

文档

首先,确保你按照上面的描述设置好环境,这将安装所有的依赖。

文档实时更新

在本地开发期间,有一个脚本可以构建网站并检查任何变化,支持实时重载:

$ python ./scripts/docs.py live

<span style="color: green;">[INFO]</span> Serving on http://127.0.0.1:8008
<span style="color: green;">[INFO]</span> Start watching changes
<span style="color: green;">[INFO]</span> Start detecting changes

它会在 http://127.0.0.1:8008 上提供文档服务。

这样,你可以编辑文档/源文件并实时查看变化。

Tip

或者,你可以手动执行脚本中的相同步骤。

进入 docs/ 目录:

$ cd docs/

然后在该目录下运行 mkdocs

$ mkdocs serve --dev-addr 8008

Typer CLI(可选)

此处的说明展示了如何直接使用 python 程序运行 ./scripts/docs.py 脚本。

但你也可以使用 Typer CLI,并在终端中为命令提供自动补全功能,前提是已安装补全功能。

如果你安装了 Typer CLI,可以通过以下命令安装补全功能:

$ typer --install-completion

zsh completion installed in /home/user/.bashrc.
Completion will take effect once you restart the terminal.

文档结构

文档使用了 MkDocs

并且在 ./scripts/docs.py 中有一些额外的工具/脚本。

Tip

你不需要查看 ./scripts/docs.py 中的代码,只需在命令行中使用它。

所有文档都存储在 ./docs 目录下,并使用 Markdown 格式。

许多教程中有代码块。

在大多数情况下,这些代码块是完整的应用程序,可以直接运行。

实际上,这些代码块并不是写在 Markdown 文件中,而是存储在 ./docs_src/ 目录中的 Python 文件。

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

测试文档

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

这有助于确保:

  • 文档是最新的。
  • 文档中的示例代码可以直接运行。
  • 大多数功能都被文档覆盖,通过测试覆盖率得以确保。