mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-28 11:35:19 -04:00
a51b0528d3
Started importing "collections" from "collections.abc" under Python 3.3 and greater for Python 3.8 compatibility. Pull request courtesy Nathaniel Knight. In Python 3.3, the abstract base classes (Iterable, Mapping, etc.) were moved from the `collections` module and put in the `collections.abc` module. They remain in the `collections` module for backwards compatibility, and will until Python 3.8. This commit adds a variable (`collections_abc`) to the `util/compat` module, which will be the `collections` module for Python < 3.3 and before, or the `collections.abc` module for Python >= 3.3. It also uses the new variable, getting rid of some deprecation warnings that were seen when running under Python 3.7. Change-Id: I2d1c0ef97c8ecac7af152cc56263422a40faa6bb Pull-request: https://github.com/zzzeek/sqlalchemy/pull/464
50 lines
2.5 KiB
Python
50 lines
2.5 KiB
Python
# util/__init__.py
|
|
# Copyright (C) 2005-2018 the SQLAlchemy authors and contributors
|
|
# <see AUTHORS file>
|
|
#
|
|
# This module is part of SQLAlchemy and is released under
|
|
# the MIT License: http://www.opensource.org/licenses/mit-license.php
|
|
|
|
from .compat import callable, cmp, reduce, \
|
|
threading, py3k, py33, py36, py2k, jython, pypy, cpython, win32, \
|
|
pickle, dottedgetter, parse_qsl, namedtuple, next, reraise, \
|
|
raise_from_cause, text_type, safe_kwarg, string_types, int_types, \
|
|
binary_type, nested, \
|
|
quote_plus, with_metaclass, print_, itertools_filterfalse, u, ue, b,\
|
|
unquote_plus, unquote, b64decode, b64encode, byte_buffer, itertools_filter,\
|
|
iterbytes, StringIO, inspect_getargspec, zip_longest
|
|
|
|
from ._collections import KeyedTuple, ImmutableContainer, immutabledict, \
|
|
Properties, OrderedProperties, ImmutableProperties, OrderedDict, \
|
|
OrderedSet, IdentitySet, OrderedIdentitySet, column_set, \
|
|
column_dict, ordered_column_set, populate_column_dict, unique_list, \
|
|
UniqueAppender, PopulateDict, EMPTY_SET, to_list, to_set, \
|
|
to_column_set, update_copy, flatten_iterator, has_intersection, \
|
|
LRUCache, ScopedRegistry, ThreadLocalRegistry, WeakSequence, \
|
|
coerce_generator_arg, lightweight_named_tuple, collections_abc
|
|
|
|
from .langhelpers import iterate_attributes, class_hierarchy, \
|
|
portable_instancemethod, unbound_method_to_callable, \
|
|
getargspec_init, format_argspec_init, format_argspec_plus, \
|
|
get_func_kwargs, get_cls_kwargs, decorator, as_interface, \
|
|
memoized_property, memoized_instancemethod, md5_hex, \
|
|
group_expirable_memoized_property, dependencies, decode_slice, \
|
|
monkeypatch_proxied_specials, asbool, bool_or_str, coerce_kw_type,\
|
|
duck_type_collection, assert_arg_type, symbol, dictlike_iteritems,\
|
|
classproperty, set_creation_order, warn_exception, warn, NoneType,\
|
|
constructor_copy, methods_equivalent, chop_traceback, asint,\
|
|
generic_repr, counter, PluginLoader, hybridproperty, hybridmethod, \
|
|
safe_reraise,\
|
|
get_callable_argspec, only_once, attrsetter, ellipses_string, \
|
|
warn_limited, map_bits, MemoizedSlots, EnsureKWArgType, wrap_callable
|
|
|
|
from .deprecations import warn_deprecated, warn_pending_deprecation, \
|
|
deprecated, pending_deprecation, inject_docstring_text
|
|
|
|
# things that used to be not always available,
|
|
# but are now as of current support Python versions
|
|
from collections import defaultdict
|
|
from functools import partial
|
|
from functools import update_wrapper
|
|
from contextlib import contextmanager
|