[Python-Dev] PEP 376

Nick Coghlan ncoghlan at gmail.com
Tue Jun 30 23:11:36 CEST 2009

Tarek Ziadé wrote:
> 2009/6/30 P.J. Eby <pje at telecommunity.com>:
>> At 07:57 PM 6/29/2009 +0200, Tarek Ziadé wrote:
>>> Hello,
>>> If no one objects, I'd like to push PEP 376 in the "accepted"
>>> status and go ahead with its implementation, with continuous
>>> feedback at Distutils-SIG as we did to build it.
>> I do have a question about the current draft...  Do zipped
>> distributions use EGG-INFO or a project-version.egg-info?  This
>> isn't spelled out in the PEP, although I get the general idea that
>> the EGG-INFO format isn't supported, and thus the PEP and API do
>> not support existing .egg files.  This should probably be made
>> clear, if that's the intention.
> The intention is to have only one standard for the egg-info, I have 
> explained it in this section:
> http://www.python.org/dev/peps/pep-0376/#egg-info-becomes-a-directory
> previous formats will not be supported but that won't break anything
> of course since the new APIs will work only over the distribution
> installed with the new version of distutils.

To address PJE's question in the PEP, it may be worth expanding on this
in the backwards compatibility section explaining how the new distutils
metadata system avoids getting confused by the old pre-standardisation
installation formats (e.g. it may be that the directory names and/or
filenames all deliberately differ from current approaches precisely so
they can coexist without interfering with each other)

Also, I find the following paragraph (near the start of the section
linked above) confusing:

[PEP 376]
> Notice that this change is based on the standard proposed by
> EggFormats, although this standard proposes two ways to install
> files:
> * A self-contained directory that can be zipped or left unzipped and
> contains the distribution files and the .egg-info directory.
> * A distinct .egg-info directory located in the site-packages directory.

This is unclear as to what "this standard" is referring to (since the
PEP itself is proposing a standard, but the sentence is also referring
to the existing EggFormats de facto standard). If the PEP only supports
the latter of the two options (which appears to be the case) it should
say so explicitly.

Another minor nit from the same section:

[PEP 376]
> Any '-' characters are currently replaced with '_'.

This should say something like "Any '-' characters other than the one in
'egg-info' and the one separating the name from the version number are
included in the replacement of non-alphanumeric characters with '_'"

Other questions/comments:

- What is a "local absolute path"? Absolute path I understand, relative
path I understand, but "local absolute" is a novel term to me.

- In DistributionDirMap constructor description: "is not not" -> "is not

 - as Paul Moore suggested, exposing a distutils based uninstall command
at the command line may make sense (and if it doesn't, the PEP should
say why not)

Otherwise, from a non-expert point of view I actually find the PEP
pretty readable and clear, and it all looks like a pretty sensible
design to me.


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-Dev mailing list