[Python-ideas] Allow from foo import bar*
Giampaolo Rodola'
g.rodola at gmail.com
Thu Oct 3 19:09:51 CEST 2013
I suppose this has already been proposed in past but couldn't find
any online reference so here goes.
When it comes to module constant imports I usually like being explicit it's
OK with me as long as I have to do:
>>> from resource import (RLIMIT_CORE, RLIMIT_CPU, RLIMIT_FSIZE)
Nevertheless in case the existence of certain constants depends on the
platform in use I end up doing:
>>> if hasattr(resource, "RLIMIT_MSGQUEUE"): # linux only
.... import resource.RLIMIT_MSGQUEUE
....
>>> if hasattr(resource, "RLIMIT_NICE"): # linux only
.... import resource.RLIMIT_NICE
....
...or worse, if for simplicity I'm willing to simply import all RLIMIT_*
constants I'll have to do this:
>>> import resource
>>> import sys
>>> for name in dir(resource):
.... if name.startswith('RLIMIT_'):
.... setattr(sys.modules[__name__], name, getattr(resource, name))
...or just give up and use:
from resource import *
...which of course will pollute the namespace with unnecessary stuff.
So why not just allow "from resource import RLIMIT_*" syntax?
Another interesting variation might be:
>>> from socket import AF_*, SOCK_*
>>> AF_INET, AF_INET6, SOCK_STREAM, SOCK_DGRAM
(2, 10, 1, 2)
On the other hand mixing "*" and "common" imports would be forbidden:
>>> from socket import AF_*, socket,
File "<stdin>", line 1
from socket import AF_*, socket
^
SyntaxError: invalid syntax;
Thoughts?
--- Giampaolo
https://code.google.com/p/pyftpdlib/
https://code.google.com/p/psutil/
https://code.google.com/p/pysendfile/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20131003/56fb3768/attachment.html>
More information about the Python-ideas
mailing list