awesome-pyproject
An Awesome List of projects using the pyproject.toml Python configuration file.
935 stars
28 watching
35 forks
last commit: 9 months ago
Linked from 1 awesome list
awesomeawesome-listhacktoberfestpyprojectpython
Awesome pyproject.toml | |||
| PEP 518 -- File specification | |||
| PEP 621 -- Storing project metadata in pyproject.toml | |||
| PEP 660 -- Editable installs for pyproject.toml based builds (wheel based) | |||
Awesome pyproject.toml / Testing | |||
| Coverage.py | Code coverage measurement for Python | ||
| ptr | 285 | 10 months ago | 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 | 141 | 5 days ago | 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 | ||
Awesome pyproject.toml / Code Formatting | |||
| autoflake | 880 | 6 days ago | Removes unused imports and unused variables as reported by pyflakes |
| autoimport | Automatically add missing imports and remove unused imports | ||
| autopep8 | 4,557 | 3 months ago | A tool that automatically formats Python code to conform to the PEP 8 style guide |
| Black | The uncompromising Python code formatter | ||
| Blue | The slightly less uncompromising Python code formatter | ||
| Darker | 628 | 11 days ago | Apply black reformatting to Python files only in regions changed since a given commit |
| flake8-isort | 171 | 9 months ago | flake8 plugin that integrates isort |
| 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 | 13,736 | 12 days ago | A formatter for Python files |
Awesome pyproject.toml / Code Analysis | |||
| Bandit | A tool designed to find common security issues in Python code | ||
| deptry | 849 | 7 days ago | 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 | 13,162 | 5 days ago | Static type checker for Python |
| pytest-pylint | 74 | 6 months ago | A pytest plugin for running pylint against your codebase |
| Refurb | 2,478 | 5 months ago | A tool for refurbishing and modernizing Python codebases |
| 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 | 238 | 4 months ago | 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 | 3,416 | 11 days ago | Finds unused code in Python programs |
| wemake-python-styleguide | The strictest and most opinionated python linter ever! | ||
Awesome pyproject.toml / Packaging & Project Management | |||
| BeeWare Briefcase | Tools to support converting a Python project into a standalone native application | ||
| check-wheel-contents | 159 | 5 months ago | 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 | 189 | 8 days ago | Find undeclared and unused dependencies in your Python project. Verify that your declared dependencies (in or elsewhere) match what you actually in your code |
| Flit | A simple way to put Python packages and modules on PyPI | ||
| Hatch | Modern, extensible Python project manager | ||
| Maturin | 3,723 | 4 days ago | 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 | 1,324 | about 1 month ago | An installation and dependency system for Python |
| setuptools | Easily download, build, install, upgrade, and uninstall Python packages | ||
| setuptools_scm | 849 | 5 days ago | Handles managing your Python package versions in SCM metadata instead of declaring them as the version argument or in a SCM managed file |
Awesome pyproject.toml / Project Templates | |||
| cookiecutter-poetry | 362 | 22 days ago | A modern cookiecutter template for Python projects that use Poetry for their dependency management |
| cookiecutter-pylibrary | 1,245 | 3 months ago | Cookiecutter template for a Python python library |
| Hypermodern Cookiecutter | 1,799 | 4 months ago | Cookiecutter template for a Python package based on the article series |
| Jace's Python Template | 654 | 2 months ago | A template for new Python libraries |
| Poetry Cookiecutter | 242 | 14 days ago | A modern Cookiecutter template for scaffolding Python packages and apps |
| PyPA Sample Project | 5,086 | about 2 months ago | A sample project that exists for PyPUG's "Tutorial on Packaging and Distributing Projects" |
| PyScaffold | 2,079 | 5 days ago | Python project template generator with batteries included |
| Python Packages Project Generator | 1,093 | about 1 year ago | Cookiecutter template with state-of-the-art libraries and best development practices for Python |
| Tyrannosaurus | 92 | 12 months ago | 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 | 1,982 | 4 days ago | Bleeding edge django template focused on code quality and security |
| wemake-python-package | 406 | 17 days ago | Bleeding edge cookiecutter template to create new python packages |
Awesome pyproject.toml / Other Tools | |||
| Autohooks | 188 | 5 days ago | 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 | 5 | over 4 years ago | 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 | 1,402 | 5 days ago | A task runner that works well with Poetry |
| Poetrify | 49 | over 1 year ago | Convert a Pipfile (or requirements.txt) to pyproject.toml for Poetry |
| poetry-setup | 46 | almost 5 years ago | Generate setup.py (setuptools) from pyproject.toml |
| poetry-version | 13 | almost 3 years ago | Python library for extracting version from poetry pyproject.toml file |
| Python License Checker | 163 | 3 months ago | 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 | 776 | 21 days ago | A utility to produce useful, summarised news files for your project |
| Vendy | 15 | 10 months ago | A tool for vendoring third-party packages into your project |
| zsh-autoswitch-virtualenv | 507 | 2 months ago | ZSH plugin to automatically switch python virtualenvs and Pipenvs as you move between directories |
Awesome pyproject.toml / Articles | |||
| Clarifying PEP 518 (a.k.a. pyproject.toml) | |||
| What the heck is pyproject.toml? | |||
Awesome pyproject.toml / Open PEPs | |||
| PEP 725 – Specifying external dependencies in pyproject.toml | |||
| PEP 735 – Dependency Groups in pyproject.toml | |||
Awesome 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 | |||
Awesome pyproject.toml / Projects discussing the use of pyproject.toml | |||
| Alembic | 2,741 | 5 days ago | A database migrations tool for SQLAlchemy |
| AWS SAM | 6,504 | 5 days ago | CLI tool to build, test, debug, and deploy Serverless applications using AWS SAM |
| Briefcase Bootstrap Template | 44 | 6 days ago | A template for starting a Python app that will be deployed using briefcase |
| bumpversion | 1,500 | about 1 year ago | Version-bump your software with a single command |
Awesome pyproject.toml / Projects discussing the use of pyproject.toml / bumpversion | |||
| bump2version | 1,058 | 6 months ago | An interim fork with the intent to merge back to the original project |
Awesome pyproject.toml / Projects discussing the use of pyproject.toml | |||
| Dependency Parser | 61 | 11 months ago | A parser for Python dependency files |
| flake8 | 3,399 | about 1 month ago | A python tool that glues together pep8, pyflakes, mccabe, and third-party plugins to check the style and quality of some python code |
| gitlint | 810 | 3 months ago | Linting for your git commit messages |
| Invoke | 4,362 | 3 months ago | Library for managing shell-oriented subprocesses and organizing executable Python code into CLI-invokable tasks |
| mach-nix | 858 | 4 months ago | Create highly reproducible python environments |
| nose2 | 792 | 18 days ago | The successor to nose. Its purpose is to extend unittest to make testing nicer and easier to understand |
| prospector | 1,935 | 25 days ago | A tool to analyse Python code and output information about errors, potential problems, convention violations and complexity |
| pycodestyle | 5,022 | about 2 months ago | A tool to check your Python code against some of the style conventions in PEP 8 |
| pyenv | 38,781 | 10 days ago | Simple Python version management |
| pytest-benchmark | 1,232 | about 1 month ago | A pytest fixture for benchmarking code |
| Pylama | 1,046 | 3 months ago | Code audit tool for Python and JavaScript. Pylama wraps these tools: pycodestyle, pydocstyle, PyFlakes, Mccabe, Pylint, Radon, gjslint, eradicate, mypy |
| PyOxidizer | 5,420 | 7 months ago | A modern Python application packaging and distribution tool |
| pypyr | 589 | 9 months ago | Task-runner cli & api for automation pipelines. Automate anything by combining commands, different scripts in different languages & applications into one pipeline process |
| pytype | 4,717 | 10 days ago | A static type analyzer for Python code |
| pyup | 448 | over 3 years ago | tool to update your project's dependencies on GitHub. Runs on pyup.io, comes with a command line interface |
| Radon | 1,719 | 7 months ago | A Python tool that computes various metrics from the source code |
| readthedocs.org | 7,996 | 2 days ago | Read the Docs hosts documentation for the open source community |
| Spack | 4,220 | 5 days ago | A flexible package manager that supports multiple versions, configurations, platforms, and compilers |
| zest.releaser | 199 | 3 months ago | Python software releasing made easy and repeatable |