贡献¶
首先,您可能想了解 帮助 SQLModel 和获得帮助 的基本方法。
开发¶
如果您已经克隆了 sqlmodel 存储库 并且想要深入研究代码,这里有一些设置环境的指南。
虚拟环境¶
按照说明创建并激活 sqlmodel
内部代码的 虚拟环境。
使用 pip
安装需求¶
激活环境后,安装所需的软件包
$ pip install -r requirements.txt
---> 100%
它将在您的本地环境中安装所有依赖项和您的本地 SQLModel。
使用本地 SQLModel¶
如果您创建一个导入并使用 SQLModel 的 Python 文件,并使用本地环境中的 Python 运行它,它将使用您克隆的本地 SQLModel 源代码。
如果您在再次运行该 Python 文件时更新了本地 SQLModel 源代码,它将使用您刚刚编辑的 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
上提供文档。
这样,您可以编辑文档/源文件并实时查看更改。
提示
或者,您可以手动执行脚本执行的相同步骤。
进入 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
中有额外的工具/脚本。
提示
您无需查看 ./scripts/docs.py
中的代码,只需在命令行中使用它即可。
所有文档都位于 ./docs
目录中,采用 Markdown 格式。
许多教程都有代码块。
在大多数情况下,这些代码块是实际的完整应用程序,可以按原样运行。
事实上,这些代码块并非写在 Markdown 中,而是 ./docs_src/
目录中的 Python 文件。
并且在生成站点时,这些 Python 文件被包含/注入到文档中。
测试文档¶
大多数测试实际上是针对文档中的示例源文件运行的。
这有助于确保
- 文档是最新的。
- 文档示例可以按原样运行。
- 大多数功能都包含在文档中,并通过测试覆盖率来保证。