1# util/__init__.py
2# Copyright (C) 2005-2016 the SQLAlchemy authors and contributors
3# <see AUTHORS file>
4#
5# This module is part of SQLAlchemy and is released under
6# the MIT License: http://www.opensource.org/licenses/mit-license.php
7
8from .compat import callable, cmp, reduce,  \
9    threading, py3k, py33, py36, py2k, jython, pypy, cpython, win32, \
10    pickle, dottedgetter, parse_qsl, namedtuple, next, reraise, \
11    raise_from_cause, text_type, safe_kwarg, string_types, int_types, \
12    binary_type, nested, \
13    quote_plus, with_metaclass, print_, itertools_filterfalse, u, ue, b,\
14    unquote_plus, unquote, b64decode, b64encode, byte_buffer, itertools_filter,\
15    iterbytes, StringIO, inspect_getargspec, zip_longest
16
17from ._collections import KeyedTuple, ImmutableContainer, immutabledict, \
18    Properties, OrderedProperties, ImmutableProperties, OrderedDict, \
19    OrderedSet, IdentitySet, OrderedIdentitySet, column_set, \
20    column_dict, ordered_column_set, populate_column_dict, unique_list, \
21    UniqueAppender, PopulateDict, EMPTY_SET, to_list, to_set, \
22    to_column_set, update_copy, flatten_iterator, has_intersection, \
23    LRUCache, ScopedRegistry, ThreadLocalRegistry, WeakSequence, \
24    coerce_generator_arg, lightweight_named_tuple
25
26from .langhelpers import iterate_attributes, class_hierarchy, \
27    portable_instancemethod, unbound_method_to_callable, \
28    getargspec_init, format_argspec_init, format_argspec_plus, \
29    get_func_kwargs, get_cls_kwargs, decorator, as_interface, \
30    memoized_property, memoized_instancemethod, md5_hex, \
31    group_expirable_memoized_property, dependencies, decode_slice, \
32    monkeypatch_proxied_specials, asbool, bool_or_str, coerce_kw_type,\
33    duck_type_collection, assert_arg_type, symbol, dictlike_iteritems,\
34    classproperty, set_creation_order, warn_exception, warn, NoneType,\
35    constructor_copy, methods_equivalent, chop_traceback, asint,\
36    generic_repr, counter, PluginLoader, hybridproperty, hybridmethod, \
37    safe_reraise,\
38    get_callable_argspec, only_once, attrsetter, ellipses_string, \
39    warn_limited, map_bits, MemoizedSlots, EnsureKWArgType
40
41from .deprecations import warn_deprecated, warn_pending_deprecation, \
42    deprecated, pending_deprecation, inject_docstring_text
43
44# things that used to be not always available,
45# but are now as of current support Python versions
46from collections import defaultdict
47from functools import partial
48from functools import update_wrapper
49from contextlib import contextmanager
50