Skip to content
This repository

Command-line tool for querying PyPI and Python packages installed on your system.

branch: develop

Merge pull request #12 from mbologna/develop

Added support for python3, while maintaining compatibility with python2
latest commit ee8c9f529a
Rob Cakebread authored
Octocat-spinner-32 docs Initial commit.
Octocat-spinner-32 examples Add docs.
Octocat-spinner-32 tests Fixes #7 -U - Thanks mordillo123
Octocat-spinner-32 yolk Fixes #7 -U - Thanks mordillo123
Octocat-spinner-32 .gitignore Added build/
Octocat-spinner-32 AUTHORS Prep for 0.4.2 release
Octocat-spinner-32 COPYING Prep for 0.4.2 release
Octocat-spinner-32 CREDITS Prep for 0.4.2 release
Octocat-spinner-32 ChangeLog Prep for 0.4.3 release.
Octocat-spinner-32 FAQ Update for 0.7 release
Octocat-spinner-32 INSTALL Prep for 0.4.2 release
Octocat-spinner-32 MANIFEST.in Prep for 0.4.3 release.
Octocat-spinner-32 NEWS Version bump
Octocat-spinner-32 README Tidy docs.
Octocat-spinner-32 README.rst Tidy docs.
Octocat-spinner-32 THANKS Prep for 0.4.2 release
Octocat-spinner-32 TODO Prep for 0.4.2 release
Octocat-spinner-32 requires.txt Tidy up.
Octocat-spinner-32 setup.py Removed test
Octocat-spinner-32 tox.ini Add new interpreters
README.rst

yolk 0.4.3

Installation

You can install yolk with pip install yolk or via your distro's package manager, if available.

As of 0.0.7 yolk is in Gentoo's Portage tree as dev-python/yolk and a plugin for Portage named dev-python/yolk-portage. The portage plugin shows you which Python packages were installed via Portage and which were installed directly with pip (or easy_install). Check out that plugin and make one for your favorite distro. It's a great way to find Python cruft.

Summary

Yolk is a Python tool for obtaining information about installed Python packages and querying packages avilable on PyPI (Python Package Index).

You can see which packages are active, non-active or in development mode and show you which have newer versions available by querying PyPI.

Usage Examples:

$ yolk -l
     List all installed Python packages

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

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

$ yolk -l -f License,Author nose==1.0
     Show the license and author for version 1.0 of the package `nose`

$ yolk --entry-map nose
     Show entry map for the nose package

$ yolk --entry-points nose.plugins
     Show all setuptools entry points for nose.plugins

These options query PyPI:

$ yolk -U pkg_name
     Shows if an update for pkg_name is available by querying PyPI

$ yolk -U
     Checks PyPI to see if any installed Python packages have updates available.

$ yolk -F Paste
     Download source tarball for latest version of Paste to your current directory

$ yolk -F Paste -T svn
     Do a subversion checkout for Paste to a directory named Paste_svn in your current directory.

$ yolk -L 2
     Show list of CheeseShop releases in the last two hours

$ yolk -C 2
     Show detailed list of changes in the CheeseShop in the last two hours

$ yolk -M Paste==1.0
     Show all the metadata for Paste version 1.0

$ yolk -M Paste
     Show all the metadata for the latest version of Paste listed on PyPi

$ yolk -D cheesecake
     Show all (source, egg, svn) URL's for the latest version of cheesecake packages

 $ yolk -T source -D cheesecake
     Show only source code releases for cheesecake

 $ yolk -H twisted
     Launches your web browser at Twisted's home page

Tips and Tricks

  • Use yolk inside your virtualenv to see which packages are installed.
  • Upgrade all installed Python packages:

Warning: You only want to do this inside a virtualenv. If you're using Linux, use your package manager to install Python packages globally whenever possible. Think twice before upgrading all packages system-wide on OSX.

$ pip install -U yolk -U | awk '{print $1}'

Changes

0.4.3: Added missing documentation and license files

0.4.2: Fix for -C when an integer isn't supplied

Fix for --entry-map from Jesus Rivero (Neurogeek) neurogeek@gentoo.org. Thanks, Jesus!

Switch to BSD license from GPL-2

0.4.1: Fix for -f fields

Add check for integer with -L

0.4.0: Added http proxy support for XML-RPC

Added case-insensitive search for -f

Non-existent packages with -S no longer show entire index (bug was with PyPI)

Fixed exception when package has no metadata

0.3.0: Added -C and -L options for new PyPI XML-RPC methods changelog and updated_releases

Always check package name cache on disk before querying PyPi to see if a package exists and has proper case.

Added -F option to download source, egg or subversion checkouts.

Removed -L RSS feed option because the new updated_releases XML-RPC method is much nicer

Fixed '-D -T egg' so it won't return source if no egg is available

Major refactoring.

Removed dependency on elementtree

0.2.0: Added 'svn' type for -T

A kablillion bug fixes

0.1.0: You can now use -f with -M

More accurate URL's with -D using pip

Ability to check for a single package with -U

Uses std Python logging module

Fixed bug so we have correct exit codes

0.0.7: New options: --entry-map and -entry-points

Improved results with --download-links

New plugin system. First plugin available: yolk-portage for Gentoo Linux.

-v option is now --version

-v is now a new option: --verbose

Many bug fixes.

0.0.6: Fix Windows problem which showed all pkgs in develop mode

on some systems.

Fix bad interpreter shebang in rss_feed.py example

Start using nose unit tests from setup.py

Use restructuredtext in docstrings

0.0.5: Show packages installed in 'development' mode.

Improved output of -l, -n and -a. You can get the previous (<=0.0.4) output by adding '-f Summary'

More sanity checking for various options.

Don't throw exception if there is no package metadata

0.0.4: Added -U option to query PyPI for new versions of packages you have
installed

Requirements

  • setuptools (Distribute preferred)
  • elementtree (For RSS feed option extra_requires [RSS]) (included in Python >=2.5)
Something went wrong with that request. Please try again.