TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #4721 3.66K
Мелочь, но приятно: copier-astral — шаблон, который генерит для нового проекта настройки для ruff, uv, pytest, CI/CD одной командой. Как вы поняли, всё для любителей Astral-стека (а кто сейчас не такой?).

Что внутри:
🔘uv — пакетный менеджер
🔘ruff — линтер + форматтер (замена black/isort/flake8)
🔘ty — новый тайпчекер от Astral на Rust
🔘pytest + hatch — тесты с матрицей версий
🔘MkDocs Material — документация
🔘prek — Rust-альтернатива pre-commit (быстрее)
🔘GitHub Actions — CI/CD из коробки
🔘git-cliff — changelog по Conventional Commits

Опционально: Typer CLI scaffold, Docker

Установка:
# сначала uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# затем copier через uv
uv tool install copier --with copier-template-extensions

# создать новый проект
copier copy --trust gh:ritwiktiwari/copier-astral my-project


Почему Copier, а не cookiecutter?


Copier умеет обновлять уже созданные проекты при изменении шаблона — не нужно руками мержить новые best practices.

📎 Код в репо, доки, пример проекта

@zen_of_python
  • ❤ 4
  • 🙈 2
More from @zen_of_python
  1. Sep 21, 2026Как точечно сравнивать скорость функций Python с tprof Профилировщик помогает найти медлен…
  2. Sep 21, 2026Как писать Python-скрипты, которые удобно запускать в пайплайнах В разборе Bite code! собр…
  3. Sep 21, 2026Как упаковать Go-бинарник в wheel и подключить к Python PyPI может раздавать не только Pyt…
  4. Sep 20, 2026Как collections.deque хранит элементы блоками У deque два конца, поэтому легко представить…
  5. Sep 20, 2026Что ускоряет django-msgspec в Django и где он расходится с json django-msgspec заменяет ко…
  6. Sep 20, 2026Почему миллион чисел в Python занимает 35 МБ Список из миллиона целых, которые помещаются…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →