--strict из TypeScript, но на стеке uv + ruff + basedpyright. Идея простая: вместо того, чтобы каждый раз настраивать линтеры, типизацию и менеджер окружений вручную, вы копируете готовый pyproject.toml и сразу получаете очень агрессивные правила по стилю и типам.В этом шаблоне uv отвечает за управление проектом и зависимостями, ruff — за линтинг и форматирование, а basedpyright — за строгую статическую типизацию с максимальным количеством включённых проверок.
Забрать можно в репозитории, там же инструкции по использованию.
Для новых проектов просто копируете
pyproject.toml, меняете секцию [project] под себя, создаёте src/your_package и tests/. Затем установка:uv venv
.venv\Scripts\activate # Windows
# или source .venv/bin/activate
uv pip install -e ".[dev]"
И далее просто пользуетесь по необходимости:
uv run ruff format .
uv run ruff check . --fix
uv run basedpyright
uv run pytest
Такой сетап хорошо заходит, если вы любите, когда инструменты сразу ломают билд за любые подозрительные места: неописанные типы, мёртвый код, неиспользуемые импорты, странные конструкции и т.п. Из минусов — порог входа выше: придётся либо писать типы везде, либо постоянно удовлетворять строгим линт‑правилам, но для долгоживущих библиотек и сервисов это может сильно окупиться.
@zen_of_python