On Mon, Nov 28, 2016 at 6:00 PM, Wolfgang Maier <wolfgang.maier@biologie.uni-freiburg.de> wrote:
On 28.11.2016 23:52, Chris Angelico wrote:

+1, because this also provides a coherent way to reword the try/except
import idiom:

# Current idiom
# somefile.py
try:
    import foo
except ImportError:
    import subst_foo as foo

# New idiom:
# foo.missing.py
import subst_foo as foo
import sys; sys.modules["foo"] = foo
#somefile.py
import foo


Hmm. I would rather take this example as an argument against the proposed behavior. It invites too many clever hacks. I thought that the idea was that .missing.py does *not* act as a replacement module, but, more or less, just as a message generator.


Is there a reason we need a full-blown message generator?  Why couldn't there just be a text file, and the contents of that text file are used as the error message for an ImportError?