Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-pyproject
An Awesome List of projects using the pyproject.toml Python configuration file.
https://github.com/carlosperate/awesome-pyproject
Last synced: about 2 hours ago
JSON representation
-
Testing
- Coverage.py - Code coverage measurement for Python.
- pytest - A testing framework that makes it easy to write small tests, yet scales to support complex functional testing.
- 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.
- ptr - Python Test Runner (ptr) was born to run tests in an opinionated way, within arbitrary code repositories.
- pytest-env - A pytest plugin that enables you to set environment variables in a pyproject.toml file.
-
Code Formatting
- autopep8 - 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.
- flake8-isort - 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.
- autoflake - Removes unused imports and unused variables as reported by pyflakes.
- autoimport - Automatically add missing imports and remove unused imports.
- Darker - Apply black reformatting to Python files only in regions changed since a given commit.
- YAPF - A formatter for Python files.
- autopep8 - A tool that automatically formats Python code to conform to the PEP 8 style guide.
-
Code Analysis
- Bandit - A tool designed to find common security issues in Python code.
- 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.
- pytest-pylint - A pytest plugin for running pylint against your codebase.
- 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.
- wemake-python-styleguide - The strictest and most opinionated python linter ever!
- deptry - A command line tool to check for issues with dependencies in a Python project, such as obsolete or missing dependencies.
- Refurb - A tool for refurbishing and modernizing Python codebases.
- Unimport - Detects unused python libraries.
- Vulture - Finds unused code in Python programs.
-
Packaging & Project Management
- BeeWare Briefcase - Tools to support converting a Python project into a standalone native application.
- 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.
- 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.
- 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.
- check-wheel-contents - Check your wheels have the right contents.
- 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.
- Pyflow - An installation and dependency system for Python.
- PDM - A modern Python package manager with PEP 582 support.
-
Project Templates
- PyScaffold - Python project template generator with batteries included.
- Python Packages Project Generator - Cookiecutter template with state-of-the-art libraries and best development practices for Python.
- 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](https://cjolowicz.github.io/posts/hypermodern-python-01-setup/) article series.
- Jace's Python Template - A template for new Python libraries.
- 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.
- 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.
- 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.
- ini2toml - Automatically translates .ini/.cfg files into TOML.
- 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.
- zsh-autoswitch-virtualenv - ZSH plugin to automatically switch python virtualenvs and Pipenvs as you move between directories.
- django-pyproject - Django package to store some or all of your settings in your pyproject.toml file.
- 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.
- towncrier - A utility to produce useful, summarised news files for your project.
- Vendy - A tool for vendoring third-party packages into your project.
- Autohooks - Library for managing git hooks.
-
Articles
-
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`
-
Rejected/Withdrawn/Superseded
- Alembic - A database migrations tool for SQLAlchemy.
- 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.
- gitlint - Linting for your git commit messages.
- Invoke - Library for managing shell-oriented subprocesses and organizing executable Python code into CLI-invokable tasks.
- 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.
- prospector - A tool to analyse Python code and output information about errors, potential problems, convention violations and complexity.
- pycodestyle - A tool to check your Python code against some of the style conventions in PEP 8.
- pyenv - Simple Python version management.
- pytest-benchmark - A pytest fixture for benchmarking code.
- 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.
- 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.
- Spack - A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
- zest.releaser - Python software releasing made easy and repeatable.
- AWS SAM - CLI tool to build, test, debug, and deploy Serverless applications using AWS SAM.
- prospector - A tool to analyse Python code and output information about errors, potential problems, convention violations and complexity.
-
-
Uncategorized
Categories
Sub Categories
Keywords
python
19
poetry
9
cookiecutter
6
template
6
packaging
3
cli
3
cookiecutter-template
3
python3
3
makefile
2
pyproject
2
linter
2
cookiecutter-python
2
project-template
2
release-automation
2
formatter
2
pytest
2
mypy
2
django
2
wheel
1
available-on-pypi
1
boilerplate
1
project-creation
1
testing
1
python312
1
python311
1
python310
1
gplv3
1
rust
1
pep621
1
dependencies
1
cicd
1
google
1
pyflakes
1
release-notes
1
project-management
1
newsfile
1
setuptools
1
pypi
1
pip
1
pipfile
1
task-runner
1
poetry-plugin
1
development-workflow
1
developer-tools
1
toml
1
django-settings
1
django-pyproject
1
cookiecutter-python3
1
gitlab-ci
1
docker
1