<div dir="ltr">> It's a lot to type (27 characters).<div><br></div><div>True. Personally I have a shortcut in my IDE (Sublime) so I when I type "pdb" -> TAB it auto completes it. <br><br>> Python linters (e.g. flake8 [1]) complain about this line because it contains two statements. Breaking the idiom up into two lines further complicates the use of the debugger,</div><div><br></div><div>I see this more as an advantage. After all a pdb line is "temporary" and you never want to commit it. When you do it is by accident so you want it to be more noticeable. I can configure my IDE to use flake8 and highlight the pdb line for me so that I can immediately see it because it's not PEP-8 compliant. I can have a GIT commit hook which checks there's no "pdb.set_trace()" in the files I'm committing:</div><div><a href="https://github.com/giampaolo/psutil/blob/master/.git-pre-commit#L93-L96">https://github.com/giampaolo/psutil/blob/master/.git-pre-commit#L93-L96</a> </div><div>Somehow I think debug() would make this a bit harder as it's more likely a "debug()" line will pass unnoticed.</div><div>For this reason I would give a -1 to this proposal.</div><div><br></div><div>> It ties debugging directly to the choice of pdb. There might be other debugging options, say if you're using an IDE or some other development environment.</div><div><br></div><div>Personally I would find it helpful if there was a hook to choose the default debugger to use on "pdb.set_trace()" via .pdbrc or PYTHONDEBUGGER environment variable or something. </div><div>I tried (unsuccessfully) to run ipdb on "pdb.set_trace()", I gave up and ended up emulating auto completion and commands history with this:</div><div><a href="https://github.com/giampaolo/sysconf/blob/master/home/.pdbrc.py">https://github.com/giampaolo/sysconf/blob/master/home/.pdbrc.py</a></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 6, 2017 at 9:14 AM, Barry Warsaw <span dir="ltr"><<a href="mailto:barry@python.org" target="_blank">barry@python.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I’ve written a PEP proposing the addition of a new built-in function called debug().  Adding this to your code would invoke a debugger through the hook function sys.debughook().<br>
<br>
Like the existing sys.displayhook() and sys.excepthook(), you can change sys.debughook() to point to the debugger of your choice.  By default it invokes pdb.set_trace().<br>
<br>
With this PEP instead of:<br>
<br>
    foo()<br>
    import pdb; pdb.set_trace()<br>
    bar()<br>
<br>
you can write:<br>
<br>
    foo()<br>
    debug()<br>
    bar()<br>
<br>
and you would drop into the debugger after foo() but before bar().  More rationale and details are provided in the PEP:<br>
<br>
    <a href="https://www.python.org/dev/peps/pep-0553/" rel="noreferrer" target="_blank">https://www.python.org/dev/<wbr>peps/pep-0553/</a><br>
<br>
Unlike David, but like Larry, I have a prototype implementation:<br>
<br>
    <a href="https://github.com/python/cpython/pull/3355" rel="noreferrer" target="_blank">https://github.com/python/<wbr>cpython/pull/3355</a><br>
<br>
Cheers,<br>
-Barry<br>
<br>
P.S. This came to me in a nightmare on Sunday night, and the more I explored the idea the more it frightened me.  I know exactly what I was dreaming about and the only way to make it all go away was to write this thing up.<br>
<br>______________________________<wbr>_________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/g.rodola%40gmail.com" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/options/python-dev/g.<wbr>rodola%40gmail.com</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Giampaolo - <a href="http://grodola.blogspot.com" target="_blank">http://grodola.blogspot.com</a></div><div><br></div></div></div>
</div>