from .compat import callable, cmp, reduce, \
threading, py3k, py33, py2k, jython, pypy, cpython, win32, \
- pickle, dottedgetter, parse_qsl, namedtuple, next, WeakSet, reraise, \
+ pickle, dottedgetter, parse_qsl, namedtuple, next, reraise, \
raise_from_cause, text_type, string_types, int_types, binary_type, \
quote_plus, with_metaclass, print_, itertools_filterfalse, u, ue, b,\
unquote_plus, b64decode, b64encode, byte_buffer, itertools_filter,\
itertools_imap = itertools.imap
-
-try:
- from weakref import WeakSet
-except:
- import weakref
-
- class WeakSet(object):
- """Implement the small subset of set() which SQLAlchemy needs
- here. """
- def __init__(self, values=None):
- self._storage = weakref.WeakKeyDictionary()
- if values is not None:
- self._storage.update((value, None) for value in values)
-
- def __iter__(self):
- return iter(self._storage)
-
- def union(self, other):
- return WeakSet(set(self).union(other))
-
- def add(self, other):
- self._storage[other] = True
-
import time
if win32 or jython:
time_func = time.clock