Note that you don't need the class redirection:
py> ref('') Traceback (most recent call last): File "<interactive input>", line 1, in ? TypeError: cannot create weak reference to 'str' object
But I don't know why strings aren't valid arguments to ref...
None of the native types (int, float, list, tuple, etc.) can have weak references, but wrapping them in a class is supposed to get around that. And it does -- for all classes except str.
Interesting. Is the wrapping thing documented somewhere? I didn't see it in the documentation for weakref.ref (though I have been known to be blind occasionally) ;)
STeVe -- http://mail.python.org/mailman/listinfo/python-list