diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py index c5accc3c301f..8f1ee76efcef 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py @@ -104,7 +104,10 @@ import six import atexit -from collections import MutableMapping +try: + from collections.abc import MutableMapping +except ImportError: + from collections import MutableMapping import contextlib import distutils.version import functools diff --git a/lib/matplotlib/cbook/__init__.py b/lib/matplotlib/cbook/__init__.py index 188b56298c17..3af589131e76 100644 --- a/lib/matplotlib/cbook/__init__.py +++ b/lib/matplotlib/cbook/__init__.py @@ -11,6 +11,11 @@ import six from six.moves import xrange, zip import collections +try: + import collections.abc as cabc +except ImportError: + import collections as cabc + import contextlib import datetime import errno @@ -2293,7 +2298,8 @@ def pts_to_midstep(x, *args): The x location of the steps. May be empty. y1, ..., yp : array - y arrays to be turned into steps; all must be the same length as ``x``. + y arrays to be turned into steps; all must be the same length as + ``x``. Returns ------- @@ -2352,7 +2358,7 @@ def index_of(y): def safe_first_element(obj): - if isinstance(obj, collections.Iterator): + if isinstance(obj, cabc.Iterator): # needed to accept `array.flat` as input. # np.flatiter reports as an instance of collections.Iterator # but can still be indexed via []. @@ -2369,7 +2375,8 @@ def safe_first_element(obj): def sanitize_sequence(data): """Converts dictview object to list""" - return list(data) if isinstance(data, collections.MappingView) else data + return (list(data) if isinstance(data, cabc.MappingView) + else data) def normalize_kwargs(kw, alias_mapping=None, required=(), forbidden=(), diff --git a/lib/matplotlib/colors.py b/lib/matplotlib/colors.py index 49722ff71fbf..d6cd04fdbc12 100644 --- a/lib/matplotlib/colors.py +++ b/lib/matplotlib/colors.py @@ -50,7 +50,10 @@ import six from six.moves import zip -from collections import Sized +try: + from collections.abc import Sized +except ImportError: + from collections import Sized import itertools import re import warnings diff --git a/lib/matplotlib/markers.py b/lib/matplotlib/markers.py index ff27c4b253bf..3669922026f3 100644 --- a/lib/matplotlib/markers.py +++ b/lib/matplotlib/markers.py @@ -88,8 +88,10 @@ import six from six.moves import xrange - -from collections import Sized +try: + from collections.abc import Sized +except ImportError: + from collections import Sized import numpy as np diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index f8d5ad5036d5..902db1c43ff7 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -16,8 +16,10 @@ from __future__ import absolute_import, division, print_function import six - -from collections import Iterable, Mapping +try: + from collections.abc import Iterable, Mapping +except ImportError: + from collections import Iterable, Mapping from functools import reduce import operator import os