[Python-Dev] PEP 553: Built-in debug() (original) (raw)
Barry Warsaw barry at python.org
Wed Sep 6 18:24:20 EDT 2017
- Previous message (by thread): [Python-Dev] PEP 553: Built-in debug()
- Next message (by thread): [Python-Dev] PEP 553: Built-in debug()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sep 6, 2017, at 10:14, Fabio Zadrozny <fabiofz at gmail.com> wrote:
I think it's a nice idea.
Great!
Related to the name, on the windows c++ there's "DebugBreak": https://msdn.microsoft.com/en-us/library/windows/desktop/ms679297(v=vs.85).aspx, which I think is a better name (so, it'd be debugbreak for Python -- I think it's better than plain breakpoint(), and wouldn't clash as debug()).
It’s important to understand that a new built-in is technically never going to clash with existing code, regardless of what it’s called. Given Python’s name resolution rules, if your code uses any built, it’ll just shadow it. That’s one big reason why the PEP proposed a built-in rather than say a keyword.
That said, while I like the more succinct debug()
name, Guido prefers breakpoint()
and that works fine for me.
I think I could change the hook on a custom sitecustomize (there's already one in place in PyDev) so that the debugbreak() would actually read some env var to do that work (and provide some utility for users to pre-setup it when not launching from inside the IDE).
I had meant to add an open issue about the idea of adding an environment variable, such as $PYTHONBREAKPOINTHOOK which could be set to the callable to bind to sys.breakpointhook(). I’ve now added that to PEP 553, and I think that handles the use case you outline above.
Still, there may be other settings that the user needs to pass to settrace() when doing a remote debug session -- i.e.: things such as the host, port to connect, etc -- see: https://github.com/fabioz/PyDev.Debugger/blob/master/pydevd.py#L1121, so, maybe the debugbreak() method should accept keyword arguments to pass along to support other backends?
Possibly, and there’s an open issue about that, but I’m skeptical about that for your use case. Will a user setting a breakpoint know what to pass there?
Cheers, -Barry
-------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 273 bytes Desc: Message signed with OpenPGP URL: <http://mail.python.org/pipermail/python-dev/attachments/20170906/b422c5e6/attachment-0001.sig>
- Previous message (by thread): [Python-Dev] PEP 553: Built-in debug()
- Next message (by thread): [Python-Dev] PEP 553: Built-in debug()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]