這是一個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跑步者更快,更可靠,因此該策略似乎可以產生最佳結果。