这是一个CookieCutter模板,可以创建一个python项目,该项目将在PYPI上分发。它包括与GitHub Action,ReadThedocs.io和Coveralls.io的集成。
项目结构遵循道歉示范项目的模式。诗歌用于管理Python包装和依赖项,并且大多数日常任务(例如,从命令行运行单位测试)都是使用我的Run-Script-Framework通过诗歌来精心策划的。使用黑色,ISORT和PYLINT执行编码标准。 Python 3类型提示使用mypy验证。 GitHub操作工作流程是使用我的GHA共享工作流实现的矩阵构建。还有预先承诺的挂钩来强制执行代码样式检查。生成的DEVELOPER.md文件提供了有关代码如何结构化,如何设置开发环境等的注释。
要使用此模板,您需要安装CookieCutter:
pip install cookiecutter
最终的项目取决于诗歌构建工具。您只需要安装Python 3口译和诗歌。诗本身照顾其他一切。查看说明。
生成的DEVELOPER.md文件假设您正在工作一个unix式外壳,例如bash。在Windows上,预计您将使用与Windows安装的Git Bash仿真器。
默认情况下,生成的.github/workflows/test-suite.yml工作流程中的发行过程配置为通过将伪像通过将其连接到GitHub存储库中的版本来发布。 (生成的DEVELOPER.md文件包含指令。)您还可以出版给PYPI。为此,请自己在PYPI上创建一个帐户,然后注册您的项目。项目存在后,请转到您的PYPI帐户设置,并为新项目创建具有上传权限的API令牌。在您的github存储库中,添加一个名为PYPI_TOKEN的github动作秘密,以保持令牌。然后,调整test-suite.yml publish-pypi: true
使用cookiecutter执行模板:
cookiecutter gh:pronovic/cookiecutter-pypi
提示时,为所有模板参数提供值:
project_slug [sample-project]:
project_name [Sample Project]:
short_description [Short description]:
author_name [First Last]:
author_email [[email protected]]:
github_owner [owner]:
github_repo [samplerepo]:
default_branch [master]:
package [sample]:
python_version [>=3.9,<4]:
black_target ['py39', 'py310']:
copyright_year [2022]:
项目slug是结果目录的名称,因此在此示例中,该项目将在sample-project中生成:
cd sample-project
然后,初始化GIT存储库:
git init . && git add . && git commit -m "Initial revision based on pronovic/cookiecutter-pypi"
假设您已经安装了poetry (根据说明),则可以使用run脚本开始事情。首先,安装依赖项并设置前签名挂钩:
./run install
最后,运行测试套件:
./run suite
假设测试套件通过,您必须使用当前版本的所有依赖项检查poetry.lock :
git add poetry.lock && git commit -m "Add initial poetry.lock" poetry.lock
然后,您可以推到存储库并测试GitHub操作过程。
注意:要查看还有哪些其他命令,请使用
./run --help。有关开发环境,包括与Pycharm的集成,请参阅生成的DEVELOPER.md文件。
您需要手动调整.github/workflows/test-suite.yml以反映您要测试的平台和Python版本。建议的工作流程在Linux上为所有受支持的Python版本运行矩阵,并且仅在最新的Python版本上构建Windows和MacOS。在GitHub动作中,Linux跑步者更快,更可靠,因此该策略似乎可以产生最佳结果。