Merge "Import from collections.abc" into rel_1_2

This commit is contained in:
mike bayer
2018-09-27 21:55:12 -04:00
committed by Gerrit Code Review
6 changed files with 16 additions and 11 deletions
+8
View File
@@ -0,0 +1,8 @@
.. 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.
+2 -3
View File
@@ -7,7 +7,6 @@
from __future__ import absolute_import
import json
import collections
from .base import ischema_names, colspecs
from ... import types as sqltypes
@@ -61,7 +60,7 @@ class JSONPathType(sqltypes.JSON.JSONPathType):
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:
@@ -74,7 +73,7 @@ class JSONPathType(sqltypes.JSON.JSONPathType):
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:
+1 -2
View File
@@ -179,8 +179,7 @@ class RowProxy(BaseRowProxy):
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
+2 -3
View File
@@ -14,7 +14,6 @@ from .. import util, exc
import itertools
from .visitors import ClauseVisitor
import re
import collections
PARSE_AUTOCOMMIT = util.symbol('PARSE_AUTOCOMMIT')
NO_ARG = util.symbol('NO_ARG')
@@ -46,7 +45,7 @@ def _generative(fn, *args, **kw):
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>.
@@ -99,7 +98,7 @@ class _DialectArgView(collections.MutableMapping):
)
class _DialectArgDict(collections.MutableMapping):
class _DialectArgDict(util.collections_abc.MutableMapping):
"""A dictionary view of dialect-level arguments for a specific
dialect.
+1 -1
View File
@@ -2094,7 +2094,7 @@ class JSON(Indexable, TypeEngine):
@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
+2 -2
View File
@@ -1062,13 +1062,13 @@ class ResultProxyTest(fixtures.TablesTest):
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):