[Catalog-sig] Standardized way of getting to a package download URL in Cheeseshop
Grig Gheorghiu
grig at gheorghiu.net
Wed Nov 9 23:16:00 CET 2005
--- "Phillip J. Eby" <pje at telecommunity.com> wrote:
> At 01:33 PM 11/9/2005 -0800, Grig Gheorghiu wrote:
> >I'm working on a project I called "Cheesecake" which aims to
> quantify
> >the "goodness" of Python packages based on various indicators such
> as
> >presence of special files (README, LICENSE, etc.), special
> directories
> >(tests, doc, etc.), percentage of modules/classes/methods/functions
> >with docstrings, etc.
> >
> >It would be nice if there was a standardized way to get to a
> download
> >URL for a given package listed at the Cheeseshop.
>
> setuptools' "package_index" module has facilities to scan Cheeseshop
> pages
> and the pages they link to for URLs that are downloadable
> distributions. Also, the "easy_install" command-line tool can be
> used to
> fetch and extract editable source (or check out from subversion) the
> source
> code of a project. For example:
>
> $ easy_install -eb~/projects SQLObject
> Searching for SQLObject
> Reading http://www.python.org/pypi/SQLObject/
> Reading http://sqlobject.org
> Best match: SQLObject 0.7.0
> Downloading
>
http://cheeseshop.python.org/packages/source/S/SQLObject/SQLObject-0.7.0.tar.gz#md5=dccb921b5df6a15312b56630ac4ac205
> Processing SQLObject-0.7.0.tar.gz
>
> Extracted editable version of SQLObject to ~/projects/sqlobject
>
> Notice that this works even with projects not hosted at the
> Cheeseshop,
> even if they are on Sourceforge mirrors:
>
> $ easy_install -eb~/projects ctypes
> Searching for ctypes
> Reading http://www.python.org/pypi/ctypes/
> Reading http://starship.python.net/crew/theller/ctypes/
> Reading
> http://sourceforge.net/project/showfiles.php?group_id=71702
> Best match: ctypes 0.9.6
> Downloading
> http://prdownloads.sourceforge.net/ctypes/ctypes-0.9.6.zip?download
> Requesting redirect to (randomly selected) 'surfnet' mirror
> Downloading
> http://surfnet.dl.sourceforge.net/sourceforge/ctypes/ctypes-0.9.6.zip
> Processing ctypes-0.9.6.zip
>
> Extracted editable version of ctypes to ~/projects/ctypes
>
> As long as a download link is available from one of these three
> places, it
> can be found:
>
> 1. The cheeseshop page for the package
> 2. The page referenced by the cheeseshop "download url" link
> 3. The page referenced by the cheeseshop "home page" link
>
> I would say that any project whose download URL(s) can't be found by
> easy_install should get a bad score on your metrics, since it's going
> to be
> pretty tough for the *user* to find the package!
>
> EasyInstall is not limited to source downloads, however. It's just
> that
> the '-e' option tells it you want an "editable" distribution (e.g., a
>
> Subversion checkout preferably, with a source distribution being
> second
> best), and the '-b' option tells it the base directory under which
> the
> project directory should be created. (Ordinarily, EasyInstall just
> attempts to get binaries or build and install them.)
>
>
Thanks a lot for the explanation, this is exactly what I was looking
for! Once again EasyInstall saves the day :-)
Grig
More information about the Catalog-sig
mailing list