Это было долгое путешествие, поскольку выпущены Pyscaffold V3, и многое произошло в сообществе Python, особенно в отношении экосистемы упаковки …
Мы видели возникающие огромные усилия для стандартизации процесса сборки и метаданных с помощью PEP 517 и PEP 518 , тенденция избежать pkg_resources
(в пользу родные пространства имен с PEP 420 , ImportLib.resources
и ImportLib.МЕТИДАДАТА
) И, конечно же, обесценение Python версии 2. Более того, имея Python 3.6 в качестве самой низкой версии, официально поддерживаемой основной командой Python, изменил то, как разработчики пишут свой код: теперь доступны куча новых функций, что позволяет нам быть более выразительным и сжатым ( не говорите мне Не люблю использовать F-струны ).
В результате команда Pyscaffold решила расширить наши предыдущие идеи для улучшений, а также включать эти изменения в экосистеме на новый, Super Cool , версия писшинга. Так что здесь я горжусь тем, что официально объявляет окончательный выпуск Pyscaffold V4 – теперь доступен в Pypi 🥳. 🎉
Полный список изменений, представленных в этой версии, доступен на Официальный сайт вместе с более Подробное описание всех функций , но я постараюсь обобщить ниже некоторых основных моментов этого выпуска.
Как ответ на PEP 517 и PEP 518 Pyscaffold V4 автоматически генерирует pyproject.toml
в корне вашего репозитория. Как следствие, большинство инструментов в экосистеме Python’s Build Ecosystem предполагают, что распределение должно быть построено в изоляции (подумайте об этом как создание виртуальной среды только для работы Python Setup.py
). В целом, это изменение должно уменьшить вероятность того, что вещи идущие не так и улучшают воспроизводимость, но это также может означать, что вам нужно немного адаптировать ваш рабочий процесс.
Чтобы облегчить этот переход, мы включаем по умолчанию A Tox.ini
В корне вашего проекта предварительно сконфигурирован с большим количеством распространенных задач. Если у вас есть Tox
Установлен на вашей машине, вы сможете запустить:
tox -e docs # to build your documentation tox -e build # to build your package distribution tox -e publish # to test your project uploads correctly in test.pypi.org tox -e publish -- --repository pypi # to release your package to PyPI tox -av # to list all the tasks available
Это должно быть замена устаревшей setup.py
Команды, такие как:
python setup.py docs python setup.py tests # etc ...
Мы также рекомендуем использовать Установка PIP.
и PIP Установить -e.
вместо python setup.py установить
и Python Setup.py Развивается
Отказ В будущем очень вероятно, что работает setup.py
напрямую будет устареть от Seturgools.
Таким образом, мы могли бы также начать привыкать к интерфейсу, который вряд ли изменится.
Интерактивный режим
Вы когда-нибудь пытались использовать инструмент CLI в первый раз или после длительного периода без использования его, и столкнулся с ситуацией, которая заставила вас пойти взад-вперед между набором вашей команды и читать --help
текст? Обычно это не большой опыт, особенно когда у вас много вариантов …
Несколько программ пытаются решить эту проблему, предоставляя что-то называемое «Интерактивный режим» , который, в большинстве случаев, соответствует кучу вопросов, предложенных на терминале. Хотя этот метод в порядке и знакомо для большинства разработчиков, он может стать очень утомительным, если инструмент просит вас более 7 вопросов … и выбирая случайно, неверный вариант в последнем вопросе, ну тогда вы собираетесь ненавидеть Ответить на те же вопросы снова и снова …
Таким образом, мы пытаемся что-то другое в V4. Когда вы активируете интерактивный режим с помощью -Я
или --interactive
Флаги, Pyscaffold откроет ваш любимый текстовый редактор (тот, который вы указываете с помощью редактор
Переменная среды), с «редактируемой версией» --help
текст. Немного необычно правильно? Но не волнуйтесь, это работает очень похожи на интерактивные переадресы с Гит , то есть. Вы можете прокомментировать варианты, предшествующие линии с #
Символ, редактируйте значения для параметров (как показано в примере ниже), сохраните и закройте файл, просто подождите, пока щита для пробега. Вот как это выглядит:
myproject # path where to generate/update project # --name myproject # (or alternatively: -n) # installable name (as in `pip install`/PyPI, default: basename of # PROJECT_PATH) # --package myproject # (or alternatively: -p) # package name (as in `import`, default: NAME) --description 'Add a short description here!' # (or alternatively: -d) # package description # etc ...
Динамически адаптация к вашему рабочему процессу
Одна из хороших вещей о писафоне – это то, что вы можете смешивать и сопоставить много инструментов в соответствии с вашим рабочим процессом. Например, если вам нравится управлять несколько быстрыми задачами, такими как проживание или форматирование кода, прежде чем совершать изменения, просто добавьте --pre-commits
При создании вашего проекта с Putup
и Pyscaffold настроит ваш проект для использования Предварительный коммит
Отказ
В V4 мы взяли это на новый уровень. Теперь вы можете динамически обновлять ваш проект, чтобы включить поддерживаемые инструменты, чтобы вы могли постепенно развиваться и адаптировать ваш рабочий процесс.
Подумайте, например, у вас есть проект, сгенерированный Pyscaffold, если в любой момент вы решите начать тестировать его в Cirrus CI. просто CD
в вашу корневую папку проекта и запустить:
putup . --update --cirrus
Сохранение вашей любимой конфигурации
У всех нас есть любимые, верно? И я думаю, что через некоторое время, используя пишки, вы можете повторить серию флагов, чтобы выразить ваши предпочтения (например --PRE-Commit
, --licence GPL-3.0
и т. Д.). С V4.
Вы можете избежать повторных выводов этих вариантов, сохранив конфигурацию по умолчанию.
Например, если вы создаете новый проект, запустив:
putup myproject --pre-commit --cirrus --licence GPL-3.0 --save-config
В следующий раз вы создадите проект с Putup
, --pre-commits
, --cirrus
и --licence GPL-3.0
параметры будут автоматически применяться, без необходимости вводить его снова.
Мы надеемся, что пользователи Pyscaffold найдут V4 проще для работы. Мы также приглашаем всех посмотреть на официальные расширения в наших Организация GitHub И если вы немного более смелые, чтобы посмотреть наш Руководство по расширению Отказ
В этом выпуске мы предлагаем опыт упаковки в курсе последних лучших практик и стандартизации в экосистеме Python, сохраняя сохраняющую возможную поддержку наилучшей обратной совместимости. Это дух, который мы планируем выдвинуть в следующие релизы.
Я надеюсь, что вы все останетесь продуктивными и веселитесь! 😉
Андерсон Бравалери и Флориан Вильгельм
Pyscaffold – это инструмент выбора для загрузки высококачественных пакетов Python, готовый для совместного использования Pypi и устанавливается через пипс . Легко использовать и поощряет принятие лучших инструментов и практик экосистемы Python, помогая вам и вашей команде, чтобы оставаться в себе, счастливым и продуктивным. Лучшая часть? Это стабильно и использовалось тысячами разработчиков более чем на пол десятилетия!
Язычный вид на животных был создан в 2014 году и поэтому стабильна и тестирована с бою, но, но и постоянно развивалась для поддержки потребностей своих пользователей и последних стандартов сообщества Python.
При пишки вы можете запустить свою разработку Python с невероятно умным шаблоном проекта, усовершенствованным в течение многих лет серьезного использования, что способствует наилучшей практике в экосистеме Python и кораблях с готовой к использованию конфигурации для всех инструментов, необходимых для подавляющего большинства. разработчиков Python.
Если вы все еще не убеждены, посмотрите на Эти другие причины и обширный список Особенности писафода Отказ И если вам интересно, оформить заказ Наш демонстрационный проект или Установите пишки и введите Putup -h
к начать Отказ
Обратная связь
- Проблемы и ошибки: https://https://github.com/pyscaffold/pyscaffold/issues
- Обсуждение, предложения, вопросы: https://github.com/pyscaffold/pyscaffold/iscussions.
Оригинал: “https://dev.to/abravalheri/pyscaffold-4-0-is-here-2p13”