Hi!
I have a few tests that require a network connection. Typically, the
target will be localhost on port 20000. However, sometimes these
settings differ, so I want to be able to optionally set them.
What I'm currently doing is this:
try:
from settings import REMOTE_HOST, REMOTE_PORT
except ImportError:
REMOTE_HOST = 'localhost'
REMOTE_PORT = 20000
This works fine. However, there are actually a few more settings that
can be overridden, so I changed the whole thing to this:
try:
from settings import *
if not 'REMOTE_HOST' in locals():
REMOTE_HOST = 'localhost'
if not 'REMOTE_PORT' in locals():
REMOTE_PORT = 20000
except ImportError:
REMOTE_HOST = 'localhost'
REMOTE_PORT = 20000
Yes, wildcard imports are dangerous, but that's something I don't mind
actually, this is an internal tool for clueful users. Still, this is
ugly, since the defaults are stored redundantly, so I went to this variant:
REMOTE_HOST = 'localhost'
REMOTE_PORT = 20000
try:
from settings import *
except ImportError:
pass
Now, in order to avoid ambiguities, I thought about using relative
imports, but there I'm stomped because wildcard imports are not
supported for relative imports, it seems.
How would you do it? Any other suggestions?
Cheers!
Uli
--
http://mail.python.org/mailman/listinfo/python-list