[Python-Dev] PEP 376 : Changing the .egg-info structure
P.J. Eby
pje at telecommunity.com
Fri May 15 07:00:55 CEST 2009
At 12:21 AM 5/15/2009 +0200, Tarek Ziadé wrote:
>Hello
>
>I'm proposing this PEP, which has been discussed in Distutils-SIG, for
>inclusion in Python 2.7 and 3.2
>
>http://www.python.org/dev/peps/pep-0376/
>
>Please comment !
I'd like to reiterate my suggestion that the uninstall record include
size and checksum information, ala PEP 262's "FILES" section. This
would allow the uninstall function to validate whether a file has
been modified, and thus prevent uninstalling a locally-modified file,
or a file installed in some other way.
It may also be that providing an uninstall API that simply yields
files to be uninstalled, with data about their existence/modification
status, would be more useful than a blind uninstall operation with a
filter function.
Also, the PEP doesn't document what happens if a single file was
installed by more than one package. Ideally, a file with identical
size/checksum that belongs to more than one project should be
silently left alone, and a file installed by more than one project
with *different* size/checksum should be warned about and left alone.
Next, the doc for the metadata API functions seems quite
sparse. ISTR that I've previously commented on such issues as case-
and punctuation-insensitivity of project names, and '/' separation in
egg_info subpaths, but these don't seem to have been incorporated
into the current version of the PEP.
These are important considerations in general, btw, because project
name and version canonicalization and escaping are an important part
of both generating and parsing .egg-info filenemaes. At minimum, the
relevant setuptools docs that define these standards should be cited.
Finally, the "Definitions" section also claims that a project
installs one or more packages, but a project may not contain *any*
packages; it may have a standalone module, or just a script, data, or metadata.
More information about the Python-Dev
mailing list