Name | pdbplus JSON |
Version |
1.6.1
JSON |
| download |
home_page | https://github.com/mdmintz/pdbp |
Summary | pdbp (Pdb+): A drop-in replacement for pdb and pdbpp. |
upload_time | 2024-11-07 15:38:54 |
maintainer | Michael Mintz |
docs_url | None |
author | Michael Mintz |
requires_python | >=3.8 |
license | PSF |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
**[<img src="https://img.shields.io/badge/pypi-pdbplus-22AAEE.svg" alt="pypi" />](https://pypi.python.org/pypi/pdbplus) is a proxy for installing [<img src="https://img.shields.io/badge/pypi-pdbp-22AAEE.svg" alt="pypi" />](https://pypi.python.org/pypi/pdbp) (Pdb+).**
****
<!-- Pdb+ Docs -->
# pdbp (Pdb+) [![](https://img.shields.io/pypi/v/pdbp.svg)](https://pypi.python.org/pypi/pdbp)
<img width="680" alt="Pdb+ Advanced Python Console Debugger" src="https://github.com/mdmintz/pdbp/assets/6788579/221038fd-df12-465e-958d-88eb9436a92d"><br />
**[pdbp (Pdb+)](https://github.com/mdmintz/pdbp)** is an advanced console debugger for Python. It can be used as a drop-in replacement for [pdb](https://docs.python.org/3/library/pdb.html) and [pdbpp](https://github.com/pdbpp/pdbpp).
<p><b>pdbp (Pdb+)</b> makes Python debugging a lot easier (and more fun!)</p>
--------
## Installation:
```bash
pip install pdbp
```
Then add ``import pdbp`` to an ``__init__.py`` of your project, which will automatically make **``Pdb+``** the default debugger at breakpoints:
```python
import pdbp
```
(If using ``flake8`` for code-linting, you may want to add ``# noqa`` to that line):
```python
import pdbp # noqa
```
You can also make ``pdbp`` the default debugger by setting an environmental variable:
```bash
PYTHONBREAKPOINT=pdbp.set_trace
```
## Usage:
To trigger a breakpoint in your code with ``pytest``, add ``--trace`` (to start tests with a breakpoint) or ``--pdb`` (to trigger a breakpoint if a test fails).
To trigger a breakpoint from a pure ``python`` run, use:
```bash
python -m pdbp <script.py>
```
--------
Basic **``Pdb+``** console commands:
``n``, ``c``, ``s``, ``u``, ``d`` => ``next``, ``continue``, ``step``, ``up``, ``down``
(To learn more **Pdb+** console commands, type ``help`` in the **Pdb+** console and press ``Enter/Return``.)
--------
**``pdbp`` (Pdb+)** makes improvements to ``pdbpp`` so that it works in all environments. It also includes other bug-fixes. "Sticky" mode is the default option, which shows multiple lines of code while letting you see where you're going (while typing ``n`` + ``Enter``).
If you somehow reset ``pdb`` to Python's built-in version, you can always replace ``pdb`` with **``pdbp``** again as the default debugger by running this:
```python
import pdb
import pdbp
for key in pdbp.__dict__.keys():
pdb.__dict__[key] = pdbp.__dict__[key]
```
Here's how to customize **``pdbp``**/``pdb`` options if you don't like the default settings: (<i>Shown below are the default settings.</i>)
```python
import pdb
if hasattr(pdb, "DefaultConfig"):
pdb.DefaultConfig.filename_color = pdb.Color.fuchsia
pdb.DefaultConfig.line_number_color = pdb.Color.turquoise
pdb.DefaultConfig.truncate_long_lines = False
pdb.DefaultConfig.sticky_by_default = True
```
You can also trigger **``Pdb+``** activation like this:
```python
import pdbp
pdbp.set_trace()
```
### pdbp (Pdb+) commands:
<img width="760" alt="Pdb+ commands" src="https://user-images.githubusercontent.com/6788579/232948402-8700033f-a1b2-45f6-82e5-6b1a83d3d6c4.png">
### Post Mortem Debug Mode:
<img width="640" alt="Pdb+ Post Mortem Debug Mode" src="https://user-images.githubusercontent.com/6788579/232537816-0b9e9048-724f-48cb-81e3-5cc403109de9.png">
### The ``where`` / ``w`` command, which displays the current stack:
<img width="870" alt="Example of the 'where' command" src="https://user-images.githubusercontent.com/6788579/232962807-2d469603-a1d0-4891-8d0e-f03a4e1d0d00.png">
--------
### Sticky Mode vs Non-Sticky Mode:
The default mode (``sticky``) lets you see a lot more lines of code from the debugger when active. In Non-Sticky mode, only one line of code is shown at a time. You can switch between the two modes by typing ``sticky`` in the **Pdb+** console prompt and pressing ``Enter/Return``.
> **Sticky Mode:**
<img width="600" alt="Pdb+ Stick Mode" src="https://user-images.githubusercontent.com/6788579/204890148-53d2567b-9a56-4243-a7d7-66100a284312.png">
> **Non-Sticky Mode:**
<img width="600" alt="Pdb+ Non-Sticky Mode" src="https://user-images.githubusercontent.com/6788579/204890164-8465bc22-0f20-43f1-8ab7-b4316718a4c6.png">
--------
### Tab completion:
<img width="584" alt="Pdb+ Tab Completion" src="https://user-images.githubusercontent.com/6788579/254074593-31fcd816-7a3f-445d-82e9-fc2c8d4d873c.png">
--------
### Multi-layer highlighting in the same stack:
<img width="536" alt="Pdb+ Advanced Python Console Debugger" src="https://user-images.githubusercontent.com/6788579/207925754-4d4ffce5-be6c-44b6-b614-ae0e800a93d8.png">
### More examples:
**``Pdb+``** is used by packages such as **``seleniumbase``**:
* https://pypi.org/project/seleniumbase/
* https://github.com/seleniumbase/SeleniumBase
--------
<img width="650" alt="Pdb+ Advanced Python Console Debugger" src="https://user-images.githubusercontent.com/6788579/234669562-30dae4ad-1207-47e4-8327-fbd5662c8b9c.png">
--------
(**Pdb+** is maintained by the [SeleniumBase Dev Team](https://github.com/seleniumbase/SeleniumBase))
Raw data
{
"_id": null,
"home_page": "https://github.com/mdmintz/pdbp",
"name": "pdbplus",
"maintainer": "Michael Mintz",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "Michael Mintz",
"author_email": "mdmintz@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/7c/18/327b0623e95ea6eff4d9e98212626c5beac7edfaf32d372f4be8896da11b/pdbplus-1.6.1.tar.gz",
"platform": "Windows",
"description": "**[<img src=\"https://img.shields.io/badge/pypi-pdbplus-22AAEE.svg\" alt=\"pypi\" />](https://pypi.python.org/pypi/pdbplus) is a proxy for installing [<img src=\"https://img.shields.io/badge/pypi-pdbp-22AAEE.svg\" alt=\"pypi\" />](https://pypi.python.org/pypi/pdbp) (Pdb+).**\n****\n\n<!-- Pdb+ Docs -->\n\n# pdbp (Pdb+) [![](https://img.shields.io/pypi/v/pdbp.svg)](https://pypi.python.org/pypi/pdbp)\n\n<img width=\"680\" alt=\"Pdb+ Advanced Python Console Debugger\" src=\"https://github.com/mdmintz/pdbp/assets/6788579/221038fd-df12-465e-958d-88eb9436a92d\"><br />\n\n**[pdbp (Pdb+)](https://github.com/mdmintz/pdbp)** is an advanced console debugger for Python. It can be used as a drop-in replacement for [pdb](https://docs.python.org/3/library/pdb.html) and [pdbpp](https://github.com/pdbpp/pdbpp).\n\n<p><b>pdbp (Pdb+)</b> makes Python debugging a lot easier (and more fun!)</p>\n\n--------\n\n## Installation:\n\n```bash\npip install pdbp\n```\n\nThen add ``import pdbp`` to an ``__init__.py`` of your project, which will automatically make **``Pdb+``** the default debugger at breakpoints:\n\n```python\nimport pdbp\n```\n\n(If using ``flake8`` for code-linting, you may want to add ``# noqa`` to that line):\n\n```python\nimport pdbp # noqa\n```\n\nYou can also make ``pdbp`` the default debugger by setting an environmental variable:\n\n```bash\nPYTHONBREAKPOINT=pdbp.set_trace\n```\n\n## Usage:\n\nTo trigger a breakpoint in your code with ``pytest``, add ``--trace`` (to start tests with a breakpoint) or ``--pdb`` (to trigger a breakpoint if a test fails).\n\nTo trigger a breakpoint from a pure ``python`` run, use:\n\n```bash\npython -m pdbp <script.py>\n```\n\n--------\n\nBasic **``Pdb+``** console commands:\n``n``, ``c``, ``s``, ``u``, ``d`` => ``next``, ``continue``, ``step``, ``up``, ``down``\n\n(To learn more **Pdb+** console commands, type ``help`` in the **Pdb+** console and press ``Enter/Return``.)\n\n--------\n\n**``pdbp`` (Pdb+)** makes improvements to ``pdbpp`` so that it works in all environments. It also includes other bug-fixes. \"Sticky\" mode is the default option, which shows multiple lines of code while letting you see where you're going (while typing ``n`` + ``Enter``).\n\nIf you somehow reset ``pdb`` to Python's built-in version, you can always replace ``pdb`` with **``pdbp``** again as the default debugger by running this:\n\n```python\nimport pdb\nimport pdbp\nfor key in pdbp.__dict__.keys():\n pdb.__dict__[key] = pdbp.__dict__[key]\n```\n\nHere's how to customize **``pdbp``**/``pdb`` options if you don't like the default settings: (<i>Shown below are the default settings.</i>)\n\n```python\nimport pdb\nif hasattr(pdb, \"DefaultConfig\"):\n pdb.DefaultConfig.filename_color = pdb.Color.fuchsia\n pdb.DefaultConfig.line_number_color = pdb.Color.turquoise\n pdb.DefaultConfig.truncate_long_lines = False\n pdb.DefaultConfig.sticky_by_default = True\n```\n\nYou can also trigger **``Pdb+``** activation like this:\n\n```python\nimport pdbp\npdbp.set_trace()\n```\n\n\n### pdbp (Pdb+) commands:\n\n<img width=\"760\" alt=\"Pdb+ commands\" src=\"https://user-images.githubusercontent.com/6788579/232948402-8700033f-a1b2-45f6-82e5-6b1a83d3d6c4.png\">\n\n\n### Post Mortem Debug Mode:\n\n<img width=\"640\" alt=\"Pdb+ Post Mortem Debug Mode\" src=\"https://user-images.githubusercontent.com/6788579/232537816-0b9e9048-724f-48cb-81e3-5cc403109de9.png\">\n\n\n### The ``where`` / ``w`` command, which displays the current stack:\n\n<img width=\"870\" alt=\"Example of the 'where' command\" src=\"https://user-images.githubusercontent.com/6788579/232962807-2d469603-a1d0-4891-8d0e-f03a4e1d0d00.png\">\n\n--------\n\n### Sticky Mode vs Non-Sticky Mode:\n\nThe default mode (``sticky``) lets you see a lot more lines of code from the debugger when active. In Non-Sticky mode, only one line of code is shown at a time. You can switch between the two modes by typing ``sticky`` in the **Pdb+** console prompt and pressing ``Enter/Return``.\n\n> **Sticky Mode:**\n\n<img width=\"600\" alt=\"Pdb+ Stick Mode\" src=\"https://user-images.githubusercontent.com/6788579/204890148-53d2567b-9a56-4243-a7d7-66100a284312.png\">\n\n> **Non-Sticky Mode:**\n\n<img width=\"600\" alt=\"Pdb+ Non-Sticky Mode\" src=\"https://user-images.githubusercontent.com/6788579/204890164-8465bc22-0f20-43f1-8ab7-b4316718a4c6.png\">\n\n--------\n\n### Tab completion:\n\n<img width=\"584\" alt=\"Pdb+ Tab Completion\" src=\"https://user-images.githubusercontent.com/6788579/254074593-31fcd816-7a3f-445d-82e9-fc2c8d4d873c.png\">\n\n--------\n\n### Multi-layer highlighting in the same stack:\n\n<img width=\"536\" alt=\"Pdb+ Advanced Python Console Debugger\" src=\"https://user-images.githubusercontent.com/6788579/207925754-4d4ffce5-be6c-44b6-b614-ae0e800a93d8.png\">\n\n\n### More examples:\n\n**``Pdb+``** is used by packages such as **``seleniumbase``**:\n\n* https://pypi.org/project/seleniumbase/\n* https://github.com/seleniumbase/SeleniumBase\n\n--------\n\n<img width=\"650\" alt=\"Pdb+ Advanced Python Console Debugger\" src=\"https://user-images.githubusercontent.com/6788579/234669562-30dae4ad-1207-47e4-8327-fbd5662c8b9c.png\">\n\n--------\n\n(**Pdb+** is maintained by the [SeleniumBase Dev Team](https://github.com/seleniumbase/SeleniumBase))\n",
"bugtrack_url": null,
"license": "PSF",
"summary": "pdbp (Pdb+): A drop-in replacement for pdb and pdbpp.",
"version": "1.6.1",
"project_urls": {
"Bug Tracker": "https://github.com/mdmintz/pdbp/issues",
"Changelog": "https://github.com/mdmintz/pdbp/releases",
"Download": "https://pypi.org/project/pdbp/#files",
"Homepage": "https://github.com/mdmintz/pdbp",
"PyPI": "https://pypi.org/project/pdbp/",
"Source": "https://github.com/mdmintz/pdbp"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e3a701263f9dea9487e311a08ac9f28a6f396a7d1494f835249f59b60ee4d308",
"md5": "ac2fc8a1d739e2a7da45f649a1ab96a4",
"sha256": "f9fc8eeb0f08ecab9a25914110dd92868890d9eedc8339b237fc7f9a0419bb88"
},
"downloads": -1,
"filename": "pdbplus-1.6.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ac2fc8a1d739e2a7da45f649a1ab96a4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 8191,
"upload_time": "2024-11-07T15:38:53",
"upload_time_iso_8601": "2024-11-07T15:38:53.926488Z",
"url": "https://files.pythonhosted.org/packages/e3/a7/01263f9dea9487e311a08ac9f28a6f396a7d1494f835249f59b60ee4d308/pdbplus-1.6.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7c18327b0623e95ea6eff4d9e98212626c5beac7edfaf32d372f4be8896da11b",
"md5": "ed2d5c792dd6f03a4946318023c36374",
"sha256": "fc58db528f56597d02399622b4539304ca7804a192475635f506e8b7adab0b09"
},
"downloads": -1,
"filename": "pdbplus-1.6.1.tar.gz",
"has_sig": false,
"md5_digest": "ed2d5c792dd6f03a4946318023c36374",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 10093,
"upload_time": "2024-11-07T15:38:54",
"upload_time_iso_8601": "2024-11-07T15:38:54.856234Z",
"url": "https://files.pythonhosted.org/packages/7c/18/327b0623e95ea6eff4d9e98212626c5beac7edfaf32d372f4be8896da11b/pdbplus-1.6.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-07 15:38:54",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mdmintz",
"github_project": "pdbp",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "pdbplus"
}