Рубрики
Без рубрики

Pyscaffold 4.0 здесь 🔥

Pyscaffold, генератор шаблона Python Project с батареями включен, только что выпустил новую версию с большим количеством новых функций, и ещё проще в использовании!. Теги с Python, упаковкой, Opensource, News.

Это было долгое путешествие, поскольку выпущены 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://dev.to/abravalheri/pyscaffold-4-0-is-here-2p13”