On 11/28/2016 01:26 PM, Paul Moore wrote:
On 28 November 2016 at 21:11, Ethan Furman <et...@stoneleaf.us> wrote:
One "successful" use-case that would be impacted is the fallback import
idiom:
try:
# this would do two full searches before getting the error
import BlahBlah
except ImportError:
import blahblah
Under this proposal, the above idiom could potentially now fail. If
there's a BlahBlah.missing.py, then that will get executed rather than
an ImportError being raised, so the fallback wouldn't be executed.
Which is why the strong recommendation is for the .missing.py file to raise an
ImportError exception, but with a useful error message, such as "Tkinter is not
currently installed. Install python-tkinter to get it."
This could actually be a serious issue for code that currently
protects against optional stdlib modules not being available like
this. There's no guarantee that I can see that a .missing.py file
would raise ImportError (even if we said that was the intended
behaviour, there's nothing to enforce it).
Presumably the folks doing the splitting know what they are doing. Any cPython
auto-generated .missing.py files would be correct:
raise ImportError("tkinter was not compiled due to ...") .
Could the proposal execute the .missing.py file and then raise
ImportError? I could imagine that having problems of its own,
though...
Yeah, I don't think that's a good idea.
--
~Ethan~
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/