Packages
Extracts and displays stack frame and traceback data with context-aware source code rendering, used to power enhanced tracebacks in IPython and similar tools.
Install it if you need to display or inspect stack frames with source context; skip it if your use case doesn't involve frame introspection.
debugpy is a Debug Adapter Protocol implementation for Python that enables remote debugging of Python scripts and modules through standard DAP clients, with support for breakpoints, exception handling, and subprocess debugging.
Install it if you need remote debugging, DAP client integration, or programmatic control over breakpoints and exception handling.
Pylint is a static code analyzer that checks Python code for errors, enforces coding standards, detects code smells, and suggests refactoring improvements without executing the code.
Install it if you need thorough code analysis with inference-based bug detection; if speed is critical, consider pairing it with faster linters like ruff for…
yamllint checks YAML files for syntax errors, style violations, and structural problems like key repetition, line length, trailing spaces, and indentation issues.
ipdb is an IPython-enabled debugger that replaces Python's standard pdb with tab completion, syntax highlighting, and better introspection while maintaining the same pdb interface.
Memray is a memory profiler for Python that traces every function call to track memory allocations across Python code, native extensions, and the interpreter itself, generating reports like flame graphs and tables to analyze memory usage.
pyelftools parses and analyzes ELF binary files and DWARF debugging information in pure Python, with no external dependencies.
Install it if you need to read or analyze ELF binaries or debug information from Python.
Pyroscope-io is a continuous profiling agent that samples Python application stack traces and sends them to a Pyroscope server for performance analysis.
Pyinstrument is a statistical call-stack profiler that samples your Python program's execution to identify which functions consume the most time, helping you find and optimize performance bottlenecks.
A pytest plugin that integrates memray memory profiling into test runs, tracking memory allocations per test and reporting detailed allocation breakdowns.
CircularDict is a Python dictionary that automatically removes oldest entries when it reaches a size limit (by item count or total bytes), acting as a bounded circular buffer for memory-controlled caching and data storage.
Python bindings for Frida, a dynamic instrumentation toolkit that lets you inject code into running processes on Windows, macOS, Linux, iOS, and Android to inspect and modify behavior at runtime.
Gdbmongo provides GDB pretty printers and commands for inspecting MongoDB Server internals in live processes and core dumps, with support for multiple MongoDB versions.
PuDB is a full-screen console-based visual debugger for Python that brings GUI debugger features into the terminal, letting you inspect code, variables, and stack traces with keyboard navigation.
pdbpp is a drop-in replacement for Python's standard pdb debugger that adds colorful TAB completion, syntax highlighting, sticky mode for step-by-step execution, and new interactive commands.
Install it if you spend time in the debugger.
Guppy 3 analyzes Python heap memory to identify object allocations, memory usage patterns, and potential leaks through interactive heap inspection and reporting.
pyOCD is a Python-based debugger and programmer for Arm Cortex-M microcontrollers that works with many debug probes across Linux, macOS, Windows, and FreeBSD.
pydevd is a Python debugger backend that attaches to running processes for interactive debugging, with support for remote debugging across machines and optimized tracing on Python 3.12 via sys.monitoring.
Formats Python exceptions and tracebacks into readable HTML, JSON, and terminal output with variable inspection, working in Jupyter, FastAPI, Sanic, and standard Python scripts.
Install it if you spend time debugging Python code in notebooks, web frameworks, or terminals.
Queries and manages device information from CMSIS PACKs, providing processor type, flash algorithm, and memory layout data through Python API or command-line interface.
Manhole installs an in-process debugging service that listens on a Unix domain socket, allowing you to connect and inspect thread stacktraces or drop into an interactive Python shell within a running process.
Hunter is a code tracing toolkit that intercepts and logs function calls, line executions, and variable changes for debugging and inspection without measuring coverage.
A lightweight, pluggable HTTP proxy server framework that handles forward proxying, reverse proxying, and TLS interception with support for custom plugins and asyncio-based concurrency.
Pwntools is a CTF framework and exploit development library providing tools for writing exploits, assembling/disassembling code, interacting with remote services, and analyzing binaries.
Install it if you work on exploit development, security research, or CTF challenges; skip it if you don't need those capabilities.
Adds Tab-key autocompletion and command expansion to the Python interactive console, building on readline functionality.
Install it if you spend time in the Python interactive console and want Tab-key autocompletion; the single dependency and recent release history make it a safe,…
pdbp is an enhanced Python debugger that replaces the standard pdb with colored output, tab completion, and sticky mode to show multiple lines of code during debugging.
Automatically captures and displays local variables in Python tracebacks, eliminating manual debug logging while keeping exception context readable.
Install it if you regularly spend time reconstructing variable state from exceptions.
Provides interrupt and signal handling mechanisms for Cython code, enabling CTRL-C interruption and other signal management in Cython programs that would otherwise run without checking for interrupts.
Install only if you meet the Cython >= 3.1 and Python >= 3.12 requirements.
Automatically reloads webpages in your browser when source files change, eliminating manual refresh during development.
Disassembles Python bytecode from any Python version (1.0 through 3.13) regardless of which Python version you are running, and provides utilities for bytecode manipulation, magic-number translation, and code object introspection.
PyCharm's debugger backend for remote debugging of Python processes running on other machines via `pydevd_pycharm.settrace()`.
PySnooper is a decorator-based debugging tool that logs function execution line-by-line, showing which lines run and how local variables change, without requiring debugger setup.
Install it if you debug Python code interactively.
uncompyle6 translates Python bytecode back into equivalent Python source code, supporting Python versions from 1.0 through 3.8 and PyPy bytecodes.
Provides command-line tools for Frida, a dynamic instrumentation framework that lets you inject code and inspect running processes on Windows, macOS, Linux, iOS, and Android.
pyvalid is a Python data validation tool that checks function input and output values, typically via decorators for runtime type and value validation.
Provides a Python interface to Lauterbach TRACE32 debuggers via remote control protocol, enabling programmatic access to debugging operations, memory inspection, breakpoint management, and trace data retrieval.
Install only if you have a TRACE32 debugger environment to connect to; the library is a thin wrapper around the remote control protocol and is not useful standalone.
Scalene profiles Python code to measure CPU, GPU, and memory consumption at the line level, and can generate AI-powered optimization suggestions for identified bottlenecks.
Simplifies sending emails via Gmail or any SMTP server, with built-in support for attachments, HTML content, and asynchronous sending.
PyStack inspects the stack frames of a running Python process or core dump file, showing what code is executing or what caused a crash, without modifying the target process.
Decompyle3 translates Python bytecode back into equivalent Python source code for versions 3.7 and later, enabling reverse-engineering and analysis of compiled Python files.