Standardize Python project setup and validation with uv, ruff, typos, and mypy. Use when creating a new Python project, normalizing an existing repository, adding Python quality tooling, or driving Python code to a clean lint, spelling, formatting, and type-check state through a repeatable uv-based workflow.
94
94%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
pyproject.toml TemplateUse this as a starting point when a repository needs a clean uv-based Python workflow. Adjust the
Python version, package name, and MyPy scope to match the real project.
[project]
name = "your-package"
version = "0.1.0"
requires-python = ">=3.11"
[dependency-groups]
dev = [
"mypy>=1.10.0",
"ruff>=0.6.0",
"typos>=1.23.0",
]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "B", "UP"]
[tool.ruff.format]
quote-style = "double"
[tool.typos.files]
extend-exclude = [".venv", "build", "dist", "uv.lock"]
[tool.mypy]
python_version = "3.11"
pretty = true
warn_unused_configs = true
warn_unused_ignores = true
check_untyped_defs = true
no_implicit_optional = true
exclude = ["^build/", "^dist/", "^\\.venv/"]src/, run MyPy against src or the real package path first.