waterworks 0.2.5: Because everyone has their own utility library

# waterworks (version 0.2.5)

Collected library tools by David McClosky, Drew Perttula, and Micha Elsner. While Drew and Micha have contributed code, they should not be considered on the hook for supporting this code.

## Version history

- 0.1e - (December 29, 2006) e for embarassing, initial "release"
- 0.1f - (March 1, 2007) barely less embarassing, some bug fixes and more documentation
- 0.2 - (July 13, 2009) still pretty embarassing, several new modules (ClusterMetrics, FunctionPickler, HeapQueue, PrecRec, Probably, robust_apply, TerminalTitle, vimdiff)
- 0.2.5 - (June 26, 2010) add QuickColorize, waterworks.Numbers, bugfixes and other minor things

## Contents

- AIMA - Provide some widely useful utilities. (not written by us, but slightly modified from the original -- see http://aima.cs.berkeley.edu/python/readme.html)
- ClusterMetrics - a metric cluster**** of cluster metrics!
- ExitCodes - Create textual descriptions of exit statuses.
- FigUtil - Tools for creating tables and figures in papers.
- FunctionPickler - Allows you to create pickle-able references to functions.
- HeapQueue - A more object-oriented wrapper of the heapq module.
- Histogram - Tools for creating and displaying histograms.
- IntRange - Integer Range Parser and Generator
- IntShelve - Just like shelve, but keys are always integers instead of strings.
- LazyList - Lets you treat an interator as a list by filling in the list on demand.
- PrecRec - standard calculation of precision, recall and f-score.
- Probably - Potentially useful functions for probability, statistics, and machine learning
- Selectron - A selecting widget for Tix.
- Tailer - `tail -f` for multiple files written natively in Python.
- TeXTable - Convert a Python table into a LaTeX/TeX table.
- TerminalTitle - Lets you change the title of your terminal in *NIX.
- ThreadedJobs - Wraps twisted.python.threadpool in a way that makes more sense to me.
- TkGeomSavers - Common geometry behaviors for Tk/Tix
- diffprint - Helps visualize diffs by giving you two parallel lists to print.
- iterextras - Some useful iterator functions from py2.4 test_itertools.py plus a couple added items
- robust_apply - Simple front-end to louie.robustapply.robust_apply.
- vimdiff - Simple interface for visualizing differences between two strings using vimdiff (or similar differs)

### Data structure specific collections

- waterworks.Dictionaries
- waterworks.Files
- waterworks.Numbers
- waterworks.Processes - for creating system processes
- waterworks.Sequences - ists, tuples, etc.
- waterworks.Streams - file-like streams
- waterworks.Strings
- waterworks.Tools - general tools and debugging helpers
- waterworks.new_isinstance - version of isinstance which can handle module reload()ing better

## Installation

Standard Python distutils install (`python setup.py install`) should work. Please email me if you have any problems. Most code should work anywhere, some is *NIX/Linux specific.

## Download

Source: `http://cs.brown.edu/~dmcc/software/waterworks/waterworks-0.2.tar.gz`

## License

GPLv2.

## Authors

David McClosky, primary curator `(dmcc+py AT cs DOT brown DOT edu)`
Homepage: `http://cs.brown.edu/~dmcc/`
Software: `http://cs.brown.edu/~dmcc/software.html`

Drew Perttula `(drewp AT bigasterisk DOT com)`
Homepage: `http://bigasterisk.com/`

Micha Elsner `(melsner AT cs DOT brown DOT edu)`
Homepage: `http://cs.brown.edu/~melsner/`