[Distutils] pkg_resources: parsing requires.txt without .egg-info/ directory

Sridhar Ratnakumar sridharr at activestate.com
Wed Jul 22 21:08:04 CEST 2009


On Tue, 21 Jul 2009 21:23:00 -0700, P.J. Eby <pje at telecommunity.com> wrote:


> If I were trying to do what you're doing, I'd just run a bdist_egg on  
> the package and inspect it via the API.  Or, alternately, I'd run the  
> egg_info command with an explicit target directory, then load it via the  
> regular API.  (By "regular API" I mean such things as a  
> find_distributions() call aimed at the parent of the .egg-info  
> directory.)
>
> And I'd do it that way because then I wouldn't need to care whether the  
> distribution was created with setuptools or not.

How can you run egg_info ('python setup.py egg_info') on a distribution  
that does not use setuptools?

>
> Actually, I'd probably just use "easy_install -zmaxNd sometmpdir  
> Projectname", followed by looping over find_distributions('sometmpdir')  
> and returning the _dep_map of the first yielded Distribution.  (The  
> "zmaxNd" means "install as a zipfile, don't munge .pth files or  
> sys.path, ensure that you copy the needed file to the target directory,  
> exclude scripts, no dependencies, and here's the directory to put it  
> in".)

But bdist_egg and -zmaxNd will also *build* the distribution .. which I  
don't want to do just for extracting the metadata.

> This recipe will handle source, eggs, or win32 .exe files without  
> complaint, and work on distutils or setuptools-based projects, as long  
> as they don't break sandboxing or do something silly in their setup.py.

Actually .. I am only downloading source dists.

-srid

PS: what I am actually doing is this: download the source tarballs for  
*all* packages registered in PyPI; and extract (cache) their metadata  
(PKG-INFO and requires.txt) outside the tarball.






More information about the Distutils-SIG mailing list