On 11/28/2016 05:46 PM, Random832 wrote:
On Mon, Nov 28, 2016, at 15:05, Ethan Furman wrote:

Because it is unfriendly.  Helpful error messages are a great tool to
both beginner and seasoned programmers.

There won't be a helpful error message unless the distributor writes
one.

The purpose of this PEP, if I understand correctly, is to settle on a standard 
for the location of that distributor written helpful error message.  As a 
bonus, cpython itself can use the same mechanism for modules that are possible 
to build in the stdlib, but weren't.  This would be useful for folks that build 
their own version.

Whatever the standard method is, it has to be something we can direct
distributors to modify, it's simply not something Python can do on its
own.

<smart alec>
---
Yo, Distributor!  If you move tkinter to a separate module, please add a 
tkinter.missing file in your main python package where tkinter is supposed to 
be; this file should contain a helpful message on how to install the tkinter 
package!
---

There.  Done.
</smart alec>

 The default exception hook is as good a place as any. Maybe write
most of the logic and get the distributors to just populate an
empty-by-default array of structs with the module name and error message
(and what about localization?)

This might handle the stdlib portion, but the PEP's solution could be easily 
extended to handle any Python application that is installable in pieces.  As 
far as localization -- it's a small text file, surely there are mechanisms 
already to deal with that?  (I don't know, it's not a problem I have to deal 
with.)

And the idea that building a ".missing.py" for every optional module
that's disabled is going to adequate is a bit naive.

Who said disabled?  The PEP says missing, as in not there -- not disabled, as 
in there but ... what? not able to be used?

For one thing, they're not going to *be* disabled,

Ah, whew -- we agree on something! ;)

the distributors are going to build
the whole thing and break up the installed files into packages. And
you've still got to get the distributors to actually put their friendly
error message in those files,

No, we don't.  We provide a mechanism for them to use, and they use it or don't 
at their whim.  It's a quality-of-implementation issue.

and the missing.py files are build
artifacts instead of a source file that they can patch.

They are the ones that decide how to segment the stdlib, so they get to do the 
work.  I would imagine, or at least hope, that they have the build and 
segmentation code under version control -- they can patch that.

--
~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/

Reply via email to