|
Project Information
Links
|
Python 2.7 & 3.1 include a WeakSet class, a collection for storing objects using weak references (see the Python weakref module). This project is a backport of the weakrefset module for Python 2.5 and 2.6. The tests require the unittest2 package. You can install it with: pip install weakrefset Usage is straightforward. You don't need to deal with weak references themselves, the WeakSet manages the references and you can add / remove / iterate over your objects directly: >>> from weakrefset import WeakSet
>>> class Foo(object): pass
...
>>> f1 = Foo()
>>> f2 = Foo()
>>> refs = WeakSet([f1, f2])
>>> f3 = Foo()
>>> refs.add(f3)
>>> refs.remove(f1)
>>> del f2
>>> f3 in refs
True
>>> for f in refs:
... print f
...
<__main__.Foo object at 0x40e410>To be compatible with Python 2.5, 2.6 and future versions of Python you can import it like this: try:
# location in Python 2.7 and 3.1
from weakref import WeakSet
except ImportError:
# separately installed
from weakrefset import WeakSet
|