Our great sponsors
-
pdbp
pdbp (Pdb+): A drop-in replacement for pdb and pdbpp. To replace "pdb", add "import pdbp" to an "__init__.py" file.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
ipython
Official repository for IPython itself. Other repos in the IPython organization contain things like the website, documentation builds, etc.
-
tabcompleter
A friendly fork of (unmaintained) fancycompleter, but works on Linux, macOS, and Windows.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SeleniumBase
📊 Python's all-in-one framework for web crawling, scraping, testing, and reporting. Supports pytest. UC Mode provides stealth. Includes many tools.
Now that you’ve covered the basics on using pdbp, see the pdbp GitHub ReadMe for more details.
Why not just use Python’s built-in pdb debugger or another existing one like ipdb or pdbpp?
Why not just use Python’s built-in pdb debugger or another existing one like ipdb or pdbpp?
The major drawback is that it comes with a high number of external dependencies that take time to download. Here’s a pipdeptree for ipdb dependencies:
If you’re already using ipython, this isn’t a problem because you’ll already need to download most of these dependencies anyway. But if you’re not using ipython… you’ll still need to download those dependencies.
Here’s what the main issue is: pdbpp has a dependency on fancycompleter, which has a Windows dependency on pyreadline (https://github.com/pyreadline/pyreadline), which has this issue: pyreadline/pyreadline#65, which leads to this error: AttributeError: module 'collections' has no attribute 'Callable'. This is a major problem for Windows users running Python 3.11 or newer.
I created the pdbp (Pdb+) Python debugger with a dependency on my own library tabcompleter (https://github.com/mdmintz/tabcompleter), which has a dependency on the improved pyreadline3 (https://github.com/pyreadline3/pyreadline3/) instead of pyreadline. Then things started working again. As a bonus, I fixed some bugs, improved on default configuration settings, and added some new features.
I created the pdbp (Pdb+) Python debugger with a dependency on my own library tabcompleter (https://github.com/mdmintz/tabcompleter), which has a dependency on the improved pyreadline3 (https://github.com/pyreadline3/pyreadline3/) instead of pyreadline. Then things started working again. As a bonus, I fixed some bugs, improved on default configuration settings, and added some new features.
And for Python browser automation, see the SeleniumBase GitHub page!