Developer Tools

Listed by section, in editorial order. Click a column header to re-sort the whole list.

Press / to search. Tags open their category. Click a row for details.

Search and filter

Results

Row number Tags

Algorithms and Design Patterns 5 projects

If a Python algorithms library has to run in production, Sorted Containers gives you sorted lists, dicts, and sets. To learn, read The Algorithms - Python.

Fast and pure-Python implementation of sorted collections.
Minimal examples of data structures and algorithms.
keon/github.com/keon/algorithms /25,584 stars /
All algorithms implemented in Python.
TheAlgorithms/github.com/TheAlgorithms/Python /225,720 stars /
A collection of design patterns and idioms in Python.
faif/github.com/faif/python-patterns /43,076 stars /
Expressive statecharts and finite state machines with a declarative API, in sync and async codebases.

Interactive Interpreter 4 projects

Exploring code is easier in IPython than in the default Python interactive interpreter. Jupyter Notebook mixes code with notes and plots.

A powerful interactive Python shell, and the kernel behind Jupyter notebooks.
ipython/github.com/ipython/ipython /16,796 stars /
A web-based notebook environment for interactive computing.
Also see: awesome-jupyter
jupyter/github.com/jupyter/notebook /13,461 stars /
A reactive notebook for Python, stored as pure Python and runnable as a script or app.
marimo-team/github.com/marimo-team/marimo /23,375 stars /
Advanced Python REPL built on top of the python-prompt-toolkit.

Code Analysis 17 projects

Lint and format with Ruff. It doesn't check types, so add a type checker, and let pre-commit run each Python code analysis tool on every commit.

A linter that enforces architectural constraints on imports between Python modules.
seddonym/github.com/seddonym/import-linter /1,243 stars /
A tool for finding and analyzing dead Python code.
Cognitive complexity analysis for Python code, written in Rust.
A tool to analyze Python code.
A framework for managing and maintaining multi-language pre-commit hooks.
pre-commit/github.com/pre-commit/pre-commit /15,673 stars /
An extremely fast Python linter and code formatter.
astral-sh/github.com/astral-sh/ruff /50,345 stars /
The uncompromising Python code formatter.
psf/github.com/psf/black /42,082 stars /
A Python utility / library to sort imports.
PyCQA/github.com/PyCQA/isort /6,963 stars /
A fully customizable source code analyzer.
pylint-dev/github.com/pylint-dev/pylint /5,746 stars /
A wrapper around pycodestyle, pyflakes and McCabe.
PyCQA/github.com/PyCQA/flake8 /3,834 stars /
A tool designed to find common security issues in Python code.
PyCQA/github.com/PyCQA/bandit /8,366 stars /
Rope is a Python refactoring library.
python-rope/github.com/python-rope/rope /2,245 stars /
A CLI tool for structural code search, linting, and rewriting based on syntax trees.
ast-grep/github.com/ast-grep/ast-grep /16,399 stars /
A static type checker for Python.
python/github.com/python/mypy /20,712 stars /
An extremely fast Python type checker and language server.
astral-sh/github.com/astral-sh/ty /19,994 stars /
Full-featured static type checker for Python from Microsoft, the engine behind Pylance.
microsoft/github.com/microsoft/pyright /15,720 stars /
A fast type checker and language server for Python.
meta/github.com/facebook/pyrefly /7,172 stars /

Testing 20 projects

pytest runs your unittest suites unchanged, so switching Python testing frameworks costs no rewrite. Hypothesis and Playwright tests run inside it too.

A mature full-featured Python testing tool.
Also see: awesome-pytest
pytest-dev/github.com/pytest-dev/pytest /14,657 stars /
Hypothesis is an advanced QuickCheck-style property-based testing library.
A generic test automation framework.
Automatically builds and tests distributions in multiple Python versions.
tox-dev/github.com/tox-dev/tox /3,979 stars /
Flexible test automation for Python.
wntrblm/github.com/wntrblm/nox /1,561 stars /
Python version of the Playwright testing and automation library.
Python bindings for Selenium WebDriver.
SeleniumHQ/github.com/SeleniumHQ/selenium /34,575 stars /
Python framework for web automation & testing, with stealth options.
Scalable user load testing tool written in Python.
locustio/github.com/locustio/locust /28,254 stars /
Automatic property-based testing of web APIs from OpenAPI or GraphQL schemas.
(Python standard library) A mocking and patching library.
A utility library for mocking out the requests Python library.
getsentry/github.com/getsentry/responses /4,342 stars /
Record and replay HTTP interactions in your tests.
kevin1024/github.com/kevin1024/vcrpy /3,022 stars /
Mock HTTPX with awesome request patterns and response side effects.
lundberg/github.com/lundberg/respx /844 stars /
Travel through time in your tests by mocking the current time at the C level.
A test fixtures replacement for Python.
A mock data generation library based on type hints (continuation of pydantic-factories).
Code coverage measurement.
coveragepy/github.com/coveragepy/coveragepy /3,423 stars /
A Python package that generates fake data.
joke2k/github.com/joke2k/faker /19,473 stars /
A Python library for generating fake but realistic data in multiple languages and locales.
lk-geimfari/github.com/lk-geimfari/mimesis /4,866 stars /

Debugging Tools 11 projects

Stepping through code in ipdb gets you pdb with IPython's tab completion. Python debugging tools cover slow code too: py-spy profiles a running Python program.

IPython-enabled pdb.
gotcha/github.com/gotcha/ipdb /1,976 stars /
A full-screen, console-based Python debugger.
inducer/github.com/inducer/pudb /3,250 stars /
A low-overhead tool that traces and visualizes Python code execution.
A sampling profiler for Python programs. Written in Rust.
benfred/github.com/benfred/py-spy /15,618 stars /
Tracks memory allocations in Python code, native extensions, and the interpreter itself.
bloomberg/github.com/bloomberg/memray /15,403 stars /
A statistical wall-clock profiler with low overhead and readable call-tree output.
joerick/github.com/joerick/pyinstrument /8,022 stars /
A high-performance, high-precision CPU, GPU, and memory profiler for Python.
plasma-umass/github.com/plasma-umass/scalene /13,537 stars /
Display various debug information for Django.
Live profiling and inspection of HTTP requests and database queries for Django.
jazzband/github.com/jazzband/django-silk /5,002 stars /
Inspect variables, expressions, and program execution with a single, simple function call.
gruns/github.com/gruns/icecream /10,109 stars /
A port of the django-debug-toolbar to Flask.

Build Tools 4 projects

Tasks like running your tests go in pyproject.toml for Poe the Poet to run. C and C++ projects that replace Make with a Python build tool pick SCons.

A tool for managing shell-oriented subprocesses and organizing executable Python code into CLI-invokable tasks.
pyinvoke/github.com/pyinvoke/invoke /4,781 stars /
A task runner that defines tasks in pyproject.toml and works with poetry or uv.
nat-n/github.com/nat-n/poethepoet /2,093 stars /
A software construction tool.
SCons/github.com/SCons/scons /2,437 stars /
A task runner and build tool.
pydoit/github.com/pydoit/doit /2,096 stars /

Documentation 5 projects

Write only docstrings, and pdoc is all the Python documentation generator you need. Write guides too, and build the site with Sphinx or Material for MkDocs.

Python documentation generator.
Also see: awesome-sphinxdoc
sphinx-doc/github.com/sphinx-doc/sphinx /8,085 stars /
A documentation framework and Material Design theme built on MkDocs.
Diagram as Code.
mingrammer/github.com/mingrammer/diagrams /42,769 stars /
Auto-generates API documentation for Python projects.
mitmproxy/github.com/mitmproxy/pdoc /2,520 stars /
A modern static site generator for technical documentation.
zensical/github.com/zensical/zensical /6,051 stars /

Know a project that belongs here?

Tell us what it does and why it stands out.