
                Weak Data Structures for Python
                Contact: est@hyperreal.org

See weak.txt or libweak.tex to see what this package provides.

To install this, make sure Python (http://www.python.org/) 1.5 or
newer is installed.  You will also need distutils
(http://www.python.org/sigs/distutils-sig/) which will be included
with Python 1.6.  Make sure python is in your path.  Then do:

      python setup.py install

You can then read and run example/testdict.py and
example/testproxymap.py if you want to see the package in action.

I'd like to give special thanks to Neil Schemenauer.  A trick I
encountered in his work (attaching cleanup objects via a specially
named attribute in weakly referenced objects) made these weak
dictionaries *far* less cumbersome to use.


Design notes:

The weak dictionaries are a good candidate for moving to C since the
code is really quite simple and can be implemented by a mapping method
table.  This could also get us thread safety.

Perhaps a weak proxy map should optionally raise an exception if
someone tries store a new object under a key for which there's already
an object in memory.


Developer's note:

I've found distutils 1.3 a little difficult to use for the development
cycle when it involves extension modules (see late February 2000
traffic on the develpment process in the distutils-sig archive).  So,
for the moment, I use Makefiles for development builds directly in the
source directory.  Note that the CFLAGS definition in the top-level
Makefile will have to be changed when Python 1.6 comes out.  However,
hopefully by then disutils will be easier to use for development. :)
