[Python-Dev] eggs now mandatory for pypi?

P.J. Eby pje at telecommunity.com
Tue Oct 6 20:11:40 CEST 2009

At 06:03 PM 10/6/2009 +0200, M.-A. Lemburg wrote:
>Chris Withers wrote:
> > Well yeah, and the only sane way I can think to handle this is to have a
> > metadata file that gets uploaded with each distribution that covers all
> > these things (and the other things that other people need) and then have
> > the index (which would hopefully be PyPI on the whole) be queryable
> > along the lines of "give me a download url for a distribution named X
> > that is for Python 2.6, Win32, UCS4, PostGreSQL 8.5, BlagBlah"...
>So you want the indirection to happen even before fetching
>the download package ?
>That's a good idea - and also a lot better than the web page
>link scanning that setuptools is doing.

They're not mutually exclusive, btw.  More information could be added 
to the PyPI "Simple" API to include this sort of thing, visible to 
newer installers and invisible to older ones.

The main reason why easy_install has a relatively simple, REST 
outgoing API is that it allows people to make their own compatible 
indexes just by throwing some files in a directory and turning on 
Apache directory indexing.  By using a... what do they call it, 
"microformat"? to mark up other information in the file, it'd still 
be possible for someone to slap up a web page and use it as a package index.

>It goes a bit in the direction of what we had in mind with writing
>for our clients: a tool that looks at the Python installation and
>automatically finds/downloads/installs the right package from
>our website. Only that we wanted to put up a single index file
>for that tool to use, not one per package.

That'd get a bit big for PyPI, though, with thousands of listed 
packages.  It's already pretty slow whenever somebody miscapitalizes 
or mis-punctuates a package name and easy_install has to read the 
"file" that just lists all the package names.  That, of course, is 
more a function of the fact that PyPI's "simple" API doesn't support 
canonicalization, although I believe certain other PyPI-mirroring and 
package indexing apps do.

More information about the Python-Dev mailing list