Skip to content
78

Awesome pyproject.toml

An Awesome List of projects using the pyproject.toml Python configuration file.

1k stars41 forks109 entriesLast push Aug 13, 2026 (1 month ago)License CC0-1.0

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

General

PEP 518 -- File specification

.

PEP 621 -- Storing project metadata in pyproject.toml

PEP 660 -- Editable installs for pyproject.toml based builds (wheel based)

Testing

Coverage.py

Code coverage measurement for Python.

ptr

Python Test Runner (ptr) was born to run tests in an opinionated way, within arbitrary code repositories.

pytest

A testing framework that makes it easy to write small tests, yet scales to support complex functional testing.

pytest-env

A pytest plugin that enables you to set environment variables in a pyproject.toml file.

Tox

A generic virtualenv manager to run test in different environments.

Ward

A modern Python test framework designed to help you find and fix flaws faster.

Code Formatting

autoflake

Removes unused imports and unused variables as reported by pyflakes.

In 2 lists

autoimport

Automatically add missing imports and remove unused imports.

autopep8

A tool that automatically formats Python code to conform to the PEP 8 style guide.

In 2 lists

Black

The uncompromising Python code formatter.

Blue

The slightly less uncompromising Python code formatter.

Darker

Apply black reformatting to Python files only in regions changed since a given commit.

flake8-isort

flake8 plugin that integrates isort.

In 3 lists

isort

A Python utility / library to sort imports alphabetically, and automatically separated into sections.

pyproject-fmt

Apply a consistent format to your pyproject.toml file with comment support.

YAPF

A formatter for Python files.

In 3 lists

Code Analysis

Bandit

A tool designed to find common security issues in Python code.

deptry

A command line tool to check for issues with dependencies in a Python project, such as obsolete or missing dependencies.

FlakeHell

Flake8 wrapper to make it nice, legacy-friendly, configurable.

flake8-pyproject

Plugin for Flake8 that reads configuration from pyproject.toml and injects the config into Flake8

import-linter

Import Linter defines and enforces rules for the imports within and between Python packages.

interrogate

Interrogate a codebase for docstring coverage.

Mypy

An optional static type checker for Python (PEP 484).

Nitpick

Flake8 plugin to enforce the same tool configuration (flake8, isort, mypy, Pylint...) across multiple Python projects.

pydocstyle

A static analysis tool for checking compliance with Python docstring conventions.

Pylint

A tool that checks for errors in Python code, tries to enforce a coding standard and looks for code smells.

Pyright

Static type checker for Python.

In 6 listsDetails

pytest-pylint

A pytest plugin for running pylint against your codebase.

Refurb

A tool for refurbishing and modernizing Python codebases.

In 2 lists

Robocop

Tool for static code analysis of Robot Framework language.

rstcheck

Checks syntax of reStructuredText and code blocks nested within it.

Ruff

An extremely fast Python linter, written in Rust.

Unimport

Detects unused python libraries.

validate-pyproject

A command line tool and Python library for validating pyproject.toml files based on JSON Schema, and includes checks for PEP 517, PEP 518 and PEP 621.

Vulture

Finds unused code in Python programs.

In 5 listsDetails

wemake-python-styleguide

The strictest and most opinionated python linter ever!

Packaging & Project Management

BeeWare Briefcase

Tools to support converting a Python project into a standalone native application.

check-wheel-contents

Check your wheels have the right contents.

DepHell

Project management for Python. Manage packages: convert between formats, lock, install, resolve, isolate, test, build graph, show outdated, audit. Manage venvs, build package, bump version.

FawltyDeps

Find undeclared and unused dependencies in your Python project. Verify that your declared dependencies (in pyproject.toml or elsewhere) match what you actually import in your code.

Flit

A simple way to put Python packages and modules on PyPI.

Hatch

Modern, extensible Python project manager.

Maturin

Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages.

PDM

A modern Python package manager with PEP 582 support.

pip

The package installer for Python. You can use pip to install packages from the Python Package Index and other indexes.

Poetry

A tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

Pyflow

An installation and dependency system for Python.

In 2 lists

setuptools_scm

Handles managing your Python package versions in SCM metadata instead of declaring them as the version argument or in a SCM managed file.

Project Templates

cookiecutter-poetry

A modern cookiecutter template for Python projects that use Poetry for their dependency management.

cookiecutter-pylibrary

Cookiecutter template for a Python python library.

Hypermodern Cookiecutter

Cookiecutter template for a Python package based on the Hypermodern Python article series.

Jace's Python Template

A template for new Python libraries.

Poetry Cookiecutter

A modern Cookiecutter template for scaffolding Python packages and apps.

PyPA Sample Project

A sample project that exists for PyPUG's "Tutorial on Packaging and Distributing Projects".

PyScaffold

Python project template generator with batteries included.

In 2 lists

Python Packages Project Generator

Cookiecutter template with state-of-the-art libraries and best development practices for Python.

Tyrannosaurus

An opinionated, 2021+ Python template and project generator with many integrations and an automated CI/CD workflow triggered only through Git and GitHub.

wemake-django-template

Bleeding edge django template focused on code quality and security.

In 5 listsDetails

wemake-python-package

Bleeding edge cookiecutter template to create new python packages.

Other Tools

Autohooks

Library for managing git hooks.

Commitizen

Create commiting rules for projects, auto bump versions and auto changelog generation.

datamodel-code-generator

Creates Pydantic data-model code from OpenAPI/JSON Schema files.

django-pyproject

Django package to store some or all of your settings in your pyproject.toml file.

ini2toml

Automatically translates .ini/.cfg files into TOML.

Poe the Poet

A task runner that works well with Poetry.

Poetrify

Convert a Pipfile (or requirements.txt) to pyproject.toml for Poetry.

poetry-setup

Generate setup.py (setuptools) from pyproject.toml.

poetry-version

Python library for extracting version from poetry pyproject.toml file.

Python License Checker

Check python packages from requirement.txt/pyproject.toml and report issues.

Tartufo

Searches through git repositories and their history for high entropy strings and secrets.

towncrier

A utility to produce useful, summarised news files for your project.

Vendy

A tool for vendoring third-party packages into your project.

zsh-autoswitch-virtualenv

ZSH plugin to automatically switch python virtualenvs and Pipenvs as you move between directories.

In 2 lists

Articles

Clarifying PEP 518 (a.k.a. pyproject.toml)

pyproject.toml Reference - Python Developer Tooling Handbook

A reference guide to pyproject.toml covering its role in Python packaging, key sections, and how tools use it.

What the heck is pyproject.toml?

Open PEPs

PEP 725 – Specifying external dependencies in pyproject.toml

PEP 735 – Dependency Groups in pyproject.toml

Open PEPs >Rejected/Withdrawn/Superseded

PEP 631 – Dependency specification in pyproject.toml based on PEP 508

PEP 633 – Dependency specification in pyproject.toml using an exploded TOML table

PEP 650 – Specifying Installer Requirements for Python Projects

PEP 665 – A file format to list Python dependencies for reproducibility of an application

Projects discussing the use of pyproject.toml

Alembic

A database migrations tool for SQLAlchemy.

In 2 lists

AWS SAM

CLI tool to build, test, debug, and deploy Serverless applications using AWS SAM.

Briefcase Bootstrap Template

A template for starting a Python app that will be deployed using briefcase.

bumpversion

Version-bump your software with a single command.

bump2version

An interim fork with the intent to merge back to the original project.

Dependency Parser

A parser for Python dependency files.

flake8

A python tool that glues together pep8, pyflakes, mccabe, and third-party plugins to check the style and quality of some python code.

In 4 listsDetails

gitlint

Linting for your git commit messages.

Invoke

Library for managing shell-oriented subprocesses and organizing executable Python code into CLI-invokable tasks.

In 4 listsDetails

mach-nix

Create highly reproducible python environments.

nose2

The successor to nose. Its purpose is to extend unittest to make testing nicer and easier to understand.

In 2 lists

prospector

A tool to analyse Python code and output information about errors, potential problems, convention violations and complexity.

In 2 lists

pycodestyle

A tool to check your Python code against some of the style conventions in PEP 8.

In 3 lists

pyenv

Simple Python version management.

In 4 listsDetails

pytest-benchmark

A pytest fixture for benchmarking code.

In 2 lists

Pylama

Code audit tool for Python and JavaScript. Pylama wraps these tools: pycodestyle, pydocstyle, PyFlakes, Mccabe, Pylint, Radon, gjslint, eradicate, mypy.

PyOxidizer

A modern Python application packaging and distribution tool.

pypyr

Task-runner cli & api for automation pipelines. Automate anything by combining commands, different scripts in different languages & applications into one pipeline process.

pytype

A static type analyzer for Python code.

In 4 lists

pyup

tool to update your project's dependencies on GitHub. Runs on pyup.io, comes with a command line interface.

Radon

A Python tool that computes various metrics from the source code.

readthedocs.org

Read the Docs hosts documentation for the open source community.

In 2 lists

Spack

A flexible package manager that supports multiple versions, configurations, platforms, and compilers.

In 2 lists

zest.releaser

Python software releasing made easy and repeatable.

See category
94

Awesome Rust

rust-unofficial/awesome-rust

A curated list of Rust code and resources.

Fresh★ 60k1833 entriesPushed today
94

Awesome Mac

jaywcjlove/awesome-mac

 This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

Fresh★ 115k1316 entriesPushed today
94

Awesome Python

vinta/awesome-python

The definitive list that answers "I want to do X in Python, which tool should I use?"

Fresh★ 324k504 entriesPushed today
94

Awesome C++

fffaraz/awesome-cpp

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Fresh★ 74k1358 entriesPushed yesterday
94

Awesome Go

avelino/awesome-go

A curated list of awesome Go frameworks, libraries and software

Fresh★ 186k3119 entriesPushed yesterday
94

Awesome PHP

ziadoz/awesome-php

A curated list of amazingly awesome PHP libraries, resources and shiny things.

Fresh★ 33k87 entriesPushed 2 days ago