Yolk
Table of Contents
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