Это шаблон CookieCutter для создания проекта Python для распределения в PYPI. Он включает в себя интеграцию с действиями GitHub, ReadThedocs.io и Covalls.io.
Структура проекта следует за шаблоном из демонстрационного проекта извинений. Поэзия используется управление упаковкой и зависимостями Python, и большинство повседневных задач (например, выполнение модульных тестов из командной строки) организованы с помощью поэзии с использованием моей пробеги-сценарией. Стандарт кодирования применяется с использованием черного, изопорта и пилинта. Подсказка типа Python 3 проверяется с использованием Mypy. Рабочий процесс Actions GitHub-это матричная сборка, реализованная с использованием моих потоков GHA-Shared-Work. Существуют также крючки для предварительных обязательств, чтобы обеспечить соблюдение проверок стиля кода. Сгенерированный файл DEVELOPER.md содержит примечания о том, как структурирован код, как настроить среду разработки и т. Д.
Чтобы использовать этот шаблон, вам нужно установить CookieCutter:
pip install cookiecutter
Полученный проект зависит от инструмента сборки поэзии. Вам нужно установить только переводчик Python 3 и поэзию. Сама поэзия заботится обо всем остальном. Смотрите инструкции.
Процесс разработчика, описанный в полученном файле DEVELOPER.md , предполагает, что вы работаете в оболочке в стиле UNIX, такой как Bash. В Windows вы должны использовать эмулятор Git Bash, установленного с GIT для Windows.
По умолчанию процесс выпуска в сгенерированном рабочем процессе .github/workflows/test-suite.yml настроен на публикацию артефактов путем прикрепления их к выпуску в репозитории Github. (Сгенерированный файл DEVELOPER.md содержит инструкции.) Необязательно вы также можете опубликовать в PYPI. Для этого создайте учетную запись в PYPI для себя и зарегистрируйте свой проект. После того, как проект существует, перейдите в настройки своей учетной записи PYPI и создайте токен API с разрешениями загрузки для нового проекта. В вашем репозитории GitHub добавьте секрет GitHub Actions под названием PYPI_TOKEN , чтобы удержать токен. Затем настройте 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]:
Проектный слизняк-это название полученного каталога, поэтому в этом примере проект будет генерироваться в 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. См. Файл сгенерированногоDEVELOPER.mdдля получения дополнительной информации о среде разработки, включая интеграцию с Pycharm и т. Д.
Вам нужно будет вручную настраивать .github/workflows/test-suite.yml чтобы отразить платформы и версии Python, которые вы хотите протестировать. Предлагаемый рабочий процесс запускает матричную сборку на Linux для всех поддерживаемых версий Python, а также сборка Windows и MacOS только для новейшей версии Python. В действиях GitHub бегуны Linux намного быстрее и надежны, поэтому эта стратегия, по -видимому, дает наилучшие результаты.