According to docs, unpickling may call __getattr__(), and __init__() is not necessarily called.
This causes an infinite recursion when unpickling TableBundle: __getattr__() calls unique(), which asks for self._tables_named, which calls __getattr__("_tables_named") presumably because self._tables_named was never initialized in __init__().
Unfortunately this means that TableBundle cannot be pickled!