Assembla home | Assembla project page
 

Yolk

Yolk is a Python command-line tool and library for obtaining information about packages installed by setuptools, easy_install and distutils (Python 2.5) and for querying PyPI (Python Package Index a.k.a. The Cheese Shop).

You can download yolk from the Python Package Index or install via easy_install:

$ easy_install yolk

Yolk is available in Gentoo Linux as dev-python/yolk

Here's what people are saying about yolk:

"What a gross name." - davidw

News

11 August 2008 - New release - 0.4.1

  • Adds HTTP proxy support for XML-RPC
  • Adds case-insensitive search for -f option
  • A few bug fixes

20 July 2007 - New option to use PyPI mirror

Jim Fulton has set up an experimental PyPI mirror that uses static pages. I added a --pypi-index (-I) option so you can specify a mirror. Testing with Jim's mirror I am getting two to four times faster results with the -D option. Great work, Jim! Yolk still uses the primary PyPI for XML-RPC requests.

$ time yolk -D yolk

http://cheeseshop.python.org/packages/source/y/yolk/yolk-0.3.0.tar.gz
http://cheeseshop.python.org/packages/2.5/y/yolk/yolk-0.3.0-py2.5.egg
http://anonymous@tools.assembla.com/svn/yolk/trunk/

real    0m3.821s
user    0m0.328s
sys     0m0.020s

$ time yolk -D yolk -I http://download.zope.org/ppix/

http://cheeseshop.python.org/packages/source/y/yolk/yolk-0.3.0.tar.gz
http://cheeseshop.python.org/packages/2.5/y/yolk/yolk-0.3.0-py2.5.egg
http://anonymous@tools.assembla.com/svn/yolk/trunk/

real    0m0.878s
user    0m0.248s
sys     0m0.028s


16 July 2007 - 0.3.0 Release

I've added the -F option to fetch source, egg or do a subversion checkout.

A couple of new XML-RPC methods were added to The Cheese Shop recently. They show the latest releases since the date you give it or a detailed changelog of PyPI. I've replaced the -L option with this method and dropped the RSS feed method. Try yolk -L 24 to see the releases for the last 24 hours or yolk -C 24 for complete Changelog of The Cheese Shop.

19 May 2007 - QYolk

Piotr MaliƄski has written a tutorial on PyQT4 creating a GUI front-end for yolk. Looks great, Piotr!

I put an ebuild for g-pypi in my public overlay. g-pypi uses yolklib to create ebuilds for Gentoo.

18 May 2007 - New release 0.1.0

This is mainly a bugfix release but it also has a new feature. You can now use -f with -M to show specific fields when querying metadata from PyPI.

22 Apr 2007 - New release 0.0.7

Note: If the -U option gives you a traceback it probably means you've got a corrupt egg somewhere, possibly because you manually tried to remove an egg and left some cruft around. This is fixed in [116].

Yolk has the beginnings of a plugin system. The first plugin available is 'yolk-portage', which shows if a Python package was installed by Gentoo's Portage package manager or directly by setuptools/distutils. For instance if you're running Gentoo Linux it will show:

$ yolk -l --portage

Cheesecake      - 0.6          - non-active
Cheesecake      - 0.6.1        - non-active
Django          - 0.95.1       - active        dev-python/django (portage)
Genshi          - 0.3.6        - active        dev-python/genshi (portage)

...

You can see Cheesecake was installed directly with easy_install, not Portage. Great for figuring out what you installed outside of your distribution's official packages.

Features

  • Show which packages have newer versions available by querying PyPI
  • List Python packages installed by setuptools, easy_install or distutils (python 2.5)
  • Determine which packages are activated or not (--multi-version)
  • Determine which packages are deployed in development mode
  • Examine package metadata
  • Show dependencies of packages if available
  • Query PyPI for various package information using XML-RPC interface
  • Examine entry maps and entry points for setuptools deployed Python packages
  • Determine download URL of a package (yolk -D <pkg name>)

Usage Examples

yolk -l

List all installed Python packages

Note: On Python 2.5 it shows all packages, but with Python<=2.4 it only shows packages installed by setuptools or easy_install.

yolk -l paste

Show all versions of Paste installed (activated and non-activated)

yolk -n

List only the non-activated (--multi-version) packages installed

yolk -a

List only the activated packages installed (Activated packages are normal packages on sys.path you can import)

yolk -l -f License,Author

Show the license and author for each installed package

yolk --entry-points nose.plugins

Show entry points for nose plugins.

PyPI options: (All these options query PyPI for info)

yolk -U

Shows all Python packages on your system that have new releases available on PyPI.

Note: On Python 2.5 it shows all packages, <=Python2.4 it only shows packages installed by setuptools or easy_install.

yolk -L <hours>

Show Cheese Shop releases for the last number of <hours>

yolk -C <hours>

Show Cheese Shop Changelog for the last number of <hours>

yolk -F <pkgname> <-T svn, egg or svn>

Download or do a subversion checkout for a package The svn checkout will be in a directory named 'pkgname_svn' in your current directory.

yolk -M Paste==1.3

Show all the metadata for Paste version 1.3

yolk -M Paste

Show all the metadata for each version of Paste listed on PyPi?

yolk -D cheesecake

Show all URL's for cheesecake packages you can download

yolk -T source -D cheesecake

Show only source code releases for cheesecake

yolk -H twisted

Launches your web browser at Twisted's home page

Bug Reports/Contact

If you don't have an account on assembla and can't create a ticket, please mail Rob Cakebread <gentoodev A T gmail com>

License

yolk is Copyright 2006, 2007 Rob Cakebread and released under the terms of the GPL-2