Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-pyproject

An Awesome List of projects using the pyproject.toml Python configuration file.
https://github.com/carlosperate/awesome-pyproject

Last synced: 3 days 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.
    • 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.
    • 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.
    • 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.
    • 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

  • 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