[Python-ideas] Python hook just before NameError

Nathaniel Smith njs at pobox.com
Mon Dec 29 12:43:43 CET 2014

On 29 Dec 2014 07:46, "Mark Lawrence" <breamoreboy at yahoo.co.uk> wrote:
> On 28/12/2014 16:42, Chris Angelico wrote:
>> I mainly did up this patch to see how hard it would be, and now it's
>> turned out to be fairly simple, I'm curious as to whether it would
>> actually be useful to people.
>> At the point where a global/builtin name lookup is about to raise
>> NameError, first try calling a Python function, along the same lines
>> as __getattr__. If that function hasn't been defined, raise NameError
>> as normal; but if it has, let it either raise NameError or return some
>> object, which is then used as if the name had been bound to it.
>> Patch is here:
>> http://bugs.python.org/issue23126
>> The idea is to allow convenient interactive use; auto-importing
>> modules is easy, and importing names from modules ("exp" --> math.exp)
>> can be done easily enough too, given a list of modules to try.
>> It's probably not a good idea to use this in application code, and I
>> definitely wouldn't encourage it in library code, but it has its uses
>> interactively.
>> Thoughts?
>> ChrisA
> +1 from me as I'm always forgetting the "obvious" imports such as sys and
os when trying things interactively.

I just set up a PYTHONSTARTUP script to pre-import the obvious things and
that fixed this problem for me. You'd still have to make a startup script
to set up the hook, and it's not like 'import os, sys' will appreciably
affect startup time.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20141229/1f620fb2/attachment.html>

More information about the Python-ideas mailing list