The PLIB.CLASSES package contains a number of useful packages and modules that extend the Python standard library.

Note: PLIB.CLASSES works with Python 2.7. If you are using Python 3, see the PLIB3.CLASSES package, available at

The script for PLIB.CLASSES uses the setuputils helper module, which helps to automate away much of the boilerplate in Python setup scripts. This module is available as a separate release at


The following classes are available in the plib.classes namespace:

  • The StateMachine class implements a basic finite state machine with customizable code to be run at each state transition.


To install PLIB.CLASSES, you can simply run:

$ python install

at a shell prompt from the directory into which you unzipped the source tarball (the same directory that this README file is in). This will install PLIB and then run each of the post-install scripts in the scripts directory.

The Zen of PLIB

There is no single unifying purpose or theme to PLIB, but like Python itself, it does have a 'Zen' of sorts:

  • Express everything possible in terms of built-in Python data structures.
  • Once you've expressed it that way, what the code is going to do with it should be obvious.
  • Avoid boilerplate code, and boilerplate data. Every piece of data your program needs should have one and only one source.