--- /dev/null
+.. change::
+ :tags: bug, misc, py3k
+ :tickets: 4339
+
+ Fixed additional warnings generated by Python 3.7 due to changes in the
+ organization of the Python ``collections`` and ``collections.abc`` packages.
+ Previous ``collections`` warnings were fixed in version 1.2.11. Pull request
+ courtesy xtreak.
from __future__ import absolute_import
import json
-import collections
from .base import ischema_names, colspecs
from ... import types as sqltypes
super_proc = self.string_bind_processor(dialect)
def process(value):
- assert isinstance(value, collections.Sequence)
+ assert isinstance(value, util.collections_abc.Sequence)
tokens = [util.text_type(elem)for elem in value]
value = "{%s}" % (", ".join(tokens))
if super_proc:
super_proc = self.string_literal_processor(dialect)
def process(value):
- assert isinstance(value, collections.Sequence)
+ assert isinstance(value, util.collections_abc.Sequence)
tokens = [util.text_type(elem)for elem in value]
value = "{%s}" % (", ".join(tokens))
if super_proc:
try:
# Register RowProxy with Sequence,
# so sequence protocol is implemented
- from collections import Sequence
- Sequence.register(RowProxy)
+ util.collections_abc.Sequence.register(RowProxy)
except ImportError:
pass
import itertools
from .visitors import ClauseVisitor
import re
-import collections
PARSE_AUTOCOMMIT = util.symbol('PARSE_AUTOCOMMIT')
NO_ARG = util.symbol('NO_ARG')
return self
-class _DialectArgView(collections.MutableMapping):
+class _DialectArgView(util.collections_abc.MutableMapping):
"""A dictionary view of dialect-level arguments in the form
<dialectname>_<argument_name>.
)
-class _DialectArgDict(collections.MutableMapping):
+class _DialectArgDict(util.collections_abc.MutableMapping):
"""A dictionary view of dialect-level arguments for a specific
dialect.
@util.dependencies('sqlalchemy.sql.default_comparator')
def _setup_getitem(self, default_comparator, index):
if not isinstance(index, util.string_types) and \
- isinstance(index, collections.Sequence):
+ isinstance(index, compat.collections_abc.Sequence):
index = default_comparator._check_literal(
self.expr, operators.json_path_getitem_op,
index, bindparam_type=JSON.JSONPathType
eq_(len(mock_rowcount.__get__.mock_calls), 2)
def test_rowproxy_is_sequence(self):
- import collections
+ from sqlalchemy.util import collections_abc
from sqlalchemy.engine import RowProxy
row = RowProxy(
object(), ['value'], [None],
{'key': (None, None, 0), 0: (None, None, 0)})
- assert isinstance(row, collections.Sequence)
+ assert isinstance(row, collections_abc.Sequence)
@testing.provide_metadata
def test_rowproxy_getitem_indexes_compiled(self):