diff --git a/doc/api/api_changes/2017-12-06-imports-AL.rst b/doc/api/api_changes/2017-12-06-imports-AL.rst new file mode 100644 index 000000000000..64f472c48b6f --- /dev/null +++ b/doc/api/api_changes/2017-12-06-imports-AL.rst @@ -0,0 +1,6 @@ +Removal of unused imports +````````````````````````` +Many unused imports were removed from the codebase. As a result, +trying to import certain classes or functions from the "wrong" module +(e.g. `~.Figure` from :mod:`matplotlib.backends.backend_agg` instead of +:mod:`matplotlib.figure`) will now raise an `ImportError`. diff --git a/lib/matplotlib/afm.py b/lib/matplotlib/afm.py index 49a85c20af5e..5a2cffbfbb7b 100644 --- a/lib/matplotlib/afm.py +++ b/lib/matplotlib/afm.py @@ -41,7 +41,6 @@ from six.moves import map import sys -import os import re from ._mathtext_data import uni2type1 diff --git a/lib/matplotlib/animation.py b/lib/matplotlib/animation.py index 30bfd37ea4fc..9d4bb794cee1 100644 --- a/lib/matplotlib/animation.py +++ b/lib/matplotlib/animation.py @@ -23,33 +23,31 @@ import six from six.moves import xrange, zip -import numpy as np +import abc +import contextlib +import itertools +import logging import os import platform import sys -import itertools -try: - # python3 - from base64 import encodebytes -except ImportError: - # python2 - from base64 import encodestring as encodebytes -import abc -import contextlib import tempfile import uuid -import warnings -import logging + +import numpy as np from matplotlib._animation_data import (DISPLAY_TEMPLATE, INCLUDED_FRAMES, JS_INCLUDE) from matplotlib.cbook import iterable, deprecated from matplotlib.compat import subprocess from matplotlib import rcParams, rcParamsDefault, rc_context -if sys.version_info < (3, 0): - from cStringIO import StringIO as InMemory + +if six.PY2: + from base64 import encodestring as encodebytes + from cStringIO import StringIO as BytesIO else: - from io import BytesIO as InMemory + from base64 import encodebytes + from io import BytesIO + _log = logging.getLogger(__name__) @@ -875,7 +873,7 @@ def grab_frame(self, **savefig_kwargs): if self._hit_limit: return suffix = '.' + self.frame_format - f = InMemory() + f = BytesIO() self.fig.savefig(f, format=self.frame_format, dpi=self.dpi, **savefig_kwargs) imgdata64 = encodebytes(f.getvalue()).decode('ascii') diff --git a/lib/matplotlib/axes/_subplots.py b/lib/matplotlib/axes/_subplots.py index 90d55d21cc4c..10979bfd2c2f 100644 --- a/lib/matplotlib/axes/_subplots.py +++ b/lib/matplotlib/axes/_subplots.py @@ -9,9 +9,6 @@ import matplotlib.artist as martist from matplotlib.axes._axes import Axes -import warnings -from matplotlib.cbook import mplDeprecation - class SubplotBase(object): """ diff --git a/lib/matplotlib/backend_bases.py b/lib/matplotlib/backend_bases.py index 2c40fdafbc86..5fcb52805ea1 100644 --- a/lib/matplotlib/backend_bases.py +++ b/lib/matplotlib/backend_bases.py @@ -49,23 +49,13 @@ from weakref import WeakKeyDictionary import numpy as np -import matplotlib.cbook as cbook -import matplotlib.colors as colors -import matplotlib.transforms as transforms -import matplotlib.widgets as widgets -from matplotlib import rcParams -from matplotlib import is_interactive -from matplotlib import get_backend -from matplotlib import lines -from matplotlib._pylab_helpers import Gcf +from matplotlib import ( + backend_tools as tools, cbook, colors, textpath, tight_bbox, transforms, + widgets, get_backend, is_interactive, rcParams) +from matplotlib._pylab_helpers import Gcf from matplotlib.transforms import Bbox, TransformedBbox, Affine2D - -import matplotlib.tight_bbox as tight_bbox -import matplotlib.textpath as textpath from matplotlib.path import Path -from matplotlib.cbook import warn_deprecated -import matplotlib.backend_tools as tools try: from PIL import Image @@ -2384,7 +2374,7 @@ def on_press(event): """ if s == 'idle_event': - warn_deprecated(1.5, + cbook.warn_deprecated(1.5, "idle_event is only implemented for the wx backend, and will " "be removed in matplotlib 2.1. Use the animations module " "instead.") diff --git a/lib/matplotlib/backends/backend_agg.py b/lib/matplotlib/backends/backend_agg.py index 50a2c9d9a4d3..a740336f80c7 100644 --- a/lib/matplotlib/backends/backend_agg.py +++ b/lib/matplotlib/backends/backend_agg.py @@ -31,7 +31,6 @@ from matplotlib import cbook, rcParams, __version__ from matplotlib.backend_bases import ( _Backend, FigureCanvasBase, FigureManagerBase, RendererBase, cursors) -from matplotlib.figure import Figure from matplotlib.font_manager import findfont, get_font from matplotlib.ft2font import (LOAD_FORCE_AUTOHINT, LOAD_NO_HINTING, LOAD_DEFAULT, LOAD_NO_AUTOHINT) diff --git a/lib/matplotlib/backends/backend_cairo.py b/lib/matplotlib/backends/backend_cairo.py index 895a8dea72ed..3e8e977ab608 100644 --- a/lib/matplotlib/backends/backend_cairo.py +++ b/lib/matplotlib/backends/backend_cairo.py @@ -24,7 +24,6 @@ import six import gzip -import os import sys import warnings @@ -54,10 +53,9 @@ from matplotlib.backend_bases import ( _Backend, FigureCanvasBase, FigureManagerBase, GraphicsContextBase, RendererBase) -from matplotlib.figure import Figure from matplotlib.mathtext import MathTextParser from matplotlib.path import Path -from matplotlib.transforms import Bbox, Affine2D +from matplotlib.transforms import Affine2D from matplotlib.font_manager import ttfFontProperty diff --git a/lib/matplotlib/backends/backend_gdk.py b/lib/matplotlib/backends/backend_gdk.py index 0937eb780112..ced57a881a3b 100644 --- a/lib/matplotlib/backends/backend_gdk.py +++ b/lib/matplotlib/backends/backend_gdk.py @@ -3,9 +3,6 @@ import six -import math -import os -import sys import warnings import gobject @@ -27,7 +24,6 @@ _Backend, FigureCanvasBase, FigureManagerBase, GraphicsContextBase, RendererBase) from matplotlib.cbook import warn_deprecated -from matplotlib.figure import Figure from matplotlib.mathtext import MathTextParser from matplotlib.transforms import Affine2D from matplotlib.backends._backend_gdk import pixbuf_get_pixels_array diff --git a/lib/matplotlib/backends/backend_gtk3.py b/lib/matplotlib/backends/backend_gtk3.py index 606b01977cdd..070056c090e1 100644 --- a/lib/matplotlib/backends/backend_gtk3.py +++ b/lib/matplotlib/backends/backend_gtk3.py @@ -8,15 +8,12 @@ import sys import matplotlib -from matplotlib import ( - backend_tools, cbook, colors as mcolors, lines, rcParams) +from matplotlib import backend_tools, rcParams from matplotlib._pylab_helpers import Gcf from matplotlib.backend_bases import ( - _Backend, FigureCanvasBase, FigureManagerBase, GraphicsContextBase, - NavigationToolbar2, RendererBase, StatusbarBase, TimerBase, - ToolContainerBase, cursors) + _Backend, FigureCanvasBase, FigureManagerBase, NavigationToolbar2, + StatusbarBase, TimerBase, ToolContainerBase, cursors) from matplotlib.backend_managers import ToolManager -from matplotlib.cbook import is_writable_file_like from matplotlib.figure import Figure from matplotlib.widgets import SubplotTool from ._gtk3_compat import GLib, GObject, Gtk, Gdk diff --git a/lib/matplotlib/backends/backend_gtk3agg.py b/lib/matplotlib/backends/backend_gtk3agg.py index 5d175ec7eccc..53c625b8a50f 100644 --- a/lib/matplotlib/backends/backend_gtk3agg.py +++ b/lib/matplotlib/backends/backend_gtk3agg.py @@ -9,7 +9,6 @@ from . import backend_agg, backend_gtk3 from .backend_cairo import cairo, HAS_CAIRO_CFFI from .backend_gtk3 import _BackendGTK3 -from matplotlib.figure import Figure from matplotlib import transforms if six.PY3 and not HAS_CAIRO_CFFI: diff --git a/lib/matplotlib/backends/backend_gtk3cairo.py b/lib/matplotlib/backends/backend_gtk3cairo.py index f27d38ecdb26..b0e4127605e2 100644 --- a/lib/matplotlib/backends/backend_gtk3cairo.py +++ b/lib/matplotlib/backends/backend_gtk3cairo.py @@ -7,7 +7,6 @@ from .backend_cairo import cairo, HAS_CAIRO_CFFI from .backend_gtk3 import _BackendGTK3 from matplotlib.backend_bases import cursors -from matplotlib.figure import Figure class RendererGTK3Cairo(backend_cairo.RendererCairo): diff --git a/lib/matplotlib/backends/backend_gtkagg.py b/lib/matplotlib/backends/backend_gtkagg.py index 1de53c84f382..f513bf70bb19 100644 --- a/lib/matplotlib/backends/backend_gtkagg.py +++ b/lib/matplotlib/backends/backend_gtkagg.py @@ -6,10 +6,7 @@ import six -import os - import matplotlib -from matplotlib.figure import Figure from matplotlib.backends.backend_agg import FigureCanvasAgg from matplotlib.backends.backend_gtk import ( gtk, _BackendGTK, FigureCanvasGTK, FigureManagerGTK, NavigationToolbar2GTK, diff --git a/lib/matplotlib/backends/backend_macosx.py b/lib/matplotlib/backends/backend_macosx.py index de403f79ce76..20ec3a909b3d 100644 --- a/lib/matplotlib/backends/backend_macosx.py +++ b/lib/matplotlib/backends/backend_macosx.py @@ -16,7 +16,7 @@ import matplotlib from matplotlib.backends import _macosx -from .backend_agg import RendererAgg, FigureCanvasAgg +from .backend_agg import FigureCanvasAgg ######################################################################## diff --git a/lib/matplotlib/backends/backend_nbagg.py b/lib/matplotlib/backends/backend_nbagg.py index 408a6284e130..12c1064d1dec 100644 --- a/lib/matplotlib/backends/backend_nbagg.py +++ b/lib/matplotlib/backends/backend_nbagg.py @@ -3,15 +3,13 @@ # lib/matplotlib/backends/web_backend/nbagg_uat.ipynb to help verify # that changes made maintain expected behaviour. -import datetime +import six + from base64 import b64encode -import json import io +import json import os -import six -from uuid import uuid4 as uuid - -import tornado.ioloop +import uuid from IPython.display import display, Javascript, HTML try: @@ -23,19 +21,11 @@ from matplotlib import rcParams, is_interactive from matplotlib._pylab_helpers import Gcf +from matplotlib.backend_bases import ( + _Backend, FigureCanvasBase, NavigationToolbar2) from matplotlib.backends.backend_webagg_core import ( FigureCanvasWebAggCore, FigureManagerWebAgg, NavigationToolbar2WebAgg, TimerTornado) -from matplotlib.backend_bases import ( - _Backend, FigureCanvasBase, NavigationToolbar2) -from matplotlib.figure import Figure -from matplotlib import is_interactive -from matplotlib.backends.backend_webagg_core import (FigureManagerWebAgg, - FigureCanvasWebAggCore, - NavigationToolbar2WebAgg, - TimerTornado) -from matplotlib.backend_bases import (ShowBase, NavigationToolbar2, - FigureCanvasBase) def connection_info(): @@ -174,7 +164,7 @@ class CommSocket(object): def __init__(self, manager): self.supports_binary = None self.manager = manager - self.uuid = str(uuid()) + self.uuid = str(uuid.uuid4()) # Publish an output area with a unique ID. The javascript can then # hook into this area. display(HTML("
" % self.uuid)) diff --git a/lib/matplotlib/backends/backend_pdf.py b/lib/matplotlib/backends/backend_pdf.py index f84b3d539afd..f9783943da4c 100644 --- a/lib/matplotlib/backends/backend_pdf.py +++ b/lib/matplotlib/backends/backend_pdf.py @@ -8,28 +8,25 @@ unicode_literals) import six +from six import unichr import codecs +import collections +from datetime import datetime +from functools import total_ordering +from io import BytesIO +import logging +from math import ceil, cos, floor, pi, sin import os import re import struct import sys import time import warnings -import logging import zlib -import collections -from io import BytesIO -from functools import total_ordering import numpy as np -from six import unichr - - -from datetime import datetime, tzinfo, timedelta -from math import ceil, cos, floor, pi, sin -import matplotlib from matplotlib import __version__, rcParams from matplotlib._pylab_helpers import Gcf from matplotlib.backend_bases import ( diff --git a/lib/matplotlib/backends/backend_pgf.py b/lib/matplotlib/backends/backend_pgf.py index e75c08f8bd74..6e3c6914b738 100644 --- a/lib/matplotlib/backends/backend_pgf.py +++ b/lib/matplotlib/backends/backend_pgf.py @@ -3,32 +3,28 @@ import six +import atexit +import codecs +import errno import math import os -import sys -import errno import re import shutil +import sys import tempfile -import codecs -import atexit -import weakref import warnings - -import numpy as np +import weakref import matplotlib as mpl +from matplotlib import _png, rcParams from matplotlib.backend_bases import ( _Backend, FigureCanvasBase, FigureManagerBase, GraphicsContextBase, RendererBase) from matplotlib.backends.backend_mixed import MixedModeRenderer -from matplotlib.figure import Figure -from matplotlib.text import Text -from matplotlib.path import Path -from matplotlib import _png, rcParams from matplotlib.cbook import is_writable_file_like from matplotlib.compat import subprocess from matplotlib.compat.subprocess import check_output +from matplotlib.path import Path ############################################################################### diff --git a/lib/matplotlib/backends/backend_ps.py b/lib/matplotlib/backends/backend_ps.py index d160ea5cd6f8..a86b39abafd8 100644 --- a/lib/matplotlib/backends/backend_ps.py +++ b/lib/matplotlib/backends/backend_ps.py @@ -22,7 +22,6 @@ from matplotlib.cbook import (get_realpath_and_stat, is_writable_file_like, maxdict, file_requires_unicode) from matplotlib.compat.subprocess import subprocess -from matplotlib.figure import Figure from matplotlib.font_manager import findfont, is_opentype_cff_font, get_font from matplotlib.ft2font import KERNING_DEFAULT, LOAD_NO_HINTING diff --git a/lib/matplotlib/backends/backend_svg.py b/lib/matplotlib/backends/backend_svg.py index bf09351655a0..1d4e12925bd5 100644 --- a/lib/matplotlib/backends/backend_svg.py +++ b/lib/matplotlib/backends/backend_svg.py @@ -7,32 +7,31 @@ from six import unichr from six.moves import xrange -import os, base64, tempfile, gzip, io, sys, codecs, re - -import numpy as np +import base64 +import codecs +import gzip +import hashlib +import io import logging - -from hashlib import md5 +import re import uuid +import numpy as np + from matplotlib import __version__, rcParams from matplotlib.backend_bases import ( - _Backend, FigureCanvasBase, FigureManagerBase, GraphicsContextBase, - RendererBase) + _Backend, FigureCanvasBase, FigureManagerBase, RendererBase) from matplotlib.backends.backend_mixed import MixedModeRenderer from matplotlib.cbook import is_writable_file_like from matplotlib.colors import rgb2hex -from matplotlib.figure import Figure -from matplotlib.font_manager import findfont, FontProperties, get_font -from matplotlib.ft2font import KERNING_DEFAULT, LOAD_NO_HINTING +from matplotlib.font_manager import findfont, get_font +from matplotlib.ft2font import LOAD_NO_HINTING from matplotlib.mathtext import MathTextParser from matplotlib.path import Path from matplotlib import _path from matplotlib.transforms import Affine2D, Affine2DBase from matplotlib import _png -from xml.sax.saxutils import escape as escape_xml_text - _log = logging.getLogger(__name__) backend_version = __version__ @@ -325,7 +324,7 @@ def _make_id(self, type, content): if six.PY3: content = content.encode('utf8') salt = salt.encode('utf8') - m = md5() + m = hashlib.md5() m.update(salt) m.update(content) return '%s%s' % (type, m.hexdigest()[:10]) diff --git a/lib/matplotlib/backends/backend_template.py b/lib/matplotlib/backends/backend_template.py index 771b0be045de..c4c9482f52be 100644 --- a/lib/matplotlib/backends/backend_template.py +++ b/lib/matplotlib/backends/backend_template.py @@ -67,12 +67,10 @@ import six -import matplotlib from matplotlib._pylab_helpers import Gcf -from matplotlib.backend_bases import RendererBase, GraphicsContextBase,\ - FigureManagerBase, FigureCanvasBase +from matplotlib.backend_bases import ( + FigureCanvasBase, FigureManagerBase, GraphicsContextBase, RendererBase) from matplotlib.figure import Figure -from matplotlib.transforms import Bbox class RendererTemplate(RendererBase): diff --git a/lib/matplotlib/backends/backend_tkagg.py b/lib/matplotlib/backends/backend_tkagg.py index bf53a1bc222a..fc2f4291be6a 100644 --- a/lib/matplotlib/backends/backend_tkagg.py +++ b/lib/matplotlib/backends/backend_tkagg.py @@ -4,11 +4,10 @@ import six from six.moves import tkinter as Tk -from six.moves import tkinter_filedialog as FileDialog -import os, sys, math -import os.path import logging +import os.path +import sys # Paint image to Tk photo blitter extension import matplotlib.backends.tkagg as tkagg @@ -17,24 +16,18 @@ import matplotlib.backends.windowing as windowing import matplotlib +from matplotlib import backend_tools, rcParams from matplotlib.backend_bases import ( - _Backend, FigureCanvasBase, FigureManagerBase, GraphicsContextBase, - NavigationToolbar2, RendererBase, StatusbarBase, TimerBase, - ToolContainerBase, cursors) + _Backend, FigureCanvasBase, FigureManagerBase, NavigationToolbar2, + StatusbarBase, TimerBase, ToolContainerBase, cursors) from matplotlib.backend_managers import ToolManager -from matplotlib import backend_tools from matplotlib._pylab_helpers import Gcf - from matplotlib.figure import Figure - from matplotlib.widgets import SubplotTool -import matplotlib.cbook as cbook _log = logging.getLogger(__name__) -rcParams = matplotlib.rcParams - backend_version = Tk.TkVersion # the true dots per inch on the screen; should be display dependent diff --git a/lib/matplotlib/backends/backend_webagg.py b/lib/matplotlib/backends/backend_webagg.py index 007552d85040..c917a162ab19 100644 --- a/lib/matplotlib/backends/backend_webagg.py +++ b/lib/matplotlib/backends/backend_webagg.py @@ -15,6 +15,7 @@ import six +from contextlib import contextmanager import errno import json import os @@ -23,7 +24,6 @@ import signal import socket import threading -from contextlib import contextmanager try: import tornado @@ -34,11 +34,8 @@ import tornado.ioloop import tornado.websocket -import matplotlib from matplotlib import rcParams -from matplotlib import backend_bases from matplotlib.backend_bases import _Backend -from matplotlib.figure import Figure from matplotlib._pylab_helpers import Gcf from . import backend_webagg_core as core from .backend_webagg_core import TimerTornado diff --git a/lib/matplotlib/backends/backend_webagg_core.py b/lib/matplotlib/backends/backend_webagg_core.py index bbe491f37665..e75014b1e632 100644 --- a/lib/matplotlib/backends/backend_webagg_core.py +++ b/lib/matplotlib/backends/backend_webagg_core.py @@ -15,19 +15,17 @@ import six +import datetime import io import json import os -import time import warnings import numpy as np import tornado -import datetime from matplotlib.backends import backend_agg from matplotlib.backend_bases import _Backend -from matplotlib.figure import Figure from matplotlib import backend_bases from matplotlib import _png diff --git a/lib/matplotlib/backends/backend_wx.py b/lib/matplotlib/backends/backend_wx.py index 7be2117f483e..7d108f819b4a 100644 --- a/lib/matplotlib/backends/backend_wx.py +++ b/lib/matplotlib/backends/backend_wx.py @@ -25,8 +25,6 @@ import weakref import warnings -import numpy as np - import matplotlib from matplotlib.backend_bases import ( _Backend, FigureCanvasBase, FigureManagerBase, GraphicsContextBase, diff --git a/lib/matplotlib/backends/backend_wxagg.py b/lib/matplotlib/backends/backend_wxagg.py index 368115e27646..8383f50cde89 100644 --- a/lib/matplotlib/backends/backend_wxagg.py +++ b/lib/matplotlib/backends/backend_wxagg.py @@ -3,17 +3,14 @@ import six -import matplotlib -from matplotlib.figure import Figure - -from .backend_agg import FigureCanvasAgg +import wx +import matplotlib from . import wx_compat as wxc from . import backend_wx -from .backend_wx import (_BackendWx, FigureManagerWx, FigureCanvasWx, - FigureFrameWx, DEBUG_MSG, NavigationToolbar2Wx, Toolbar) - -import wx +from .backend_agg import FigureCanvasAgg +from .backend_wx import ( + _BackendWx, FigureCanvasWx, FigureFrameWx, NavigationToolbar2Wx, DEBUG_MSG) class FigureFrameWxAgg(FigureFrameWx): diff --git a/lib/matplotlib/backends/qt_editor/formsubplottool.py b/lib/matplotlib/backends/qt_editor/formsubplottool.py index 4bce2824707f..4906af588a7a 100644 --- a/lib/matplotlib/backends/qt_editor/formsubplottool.py +++ b/lib/matplotlib/backends/qt_editor/formsubplottool.py @@ -1,4 +1,4 @@ -from matplotlib.backends.qt_compat import QtCore, QtGui, QtWidgets +from matplotlib.backends.qt_compat import QtWidgets class UiSubplotTool(QtWidgets.QDialog): diff --git a/lib/matplotlib/backends/tkagg.py b/lib/matplotlib/backends/tkagg.py index 979bc3cc24fa..060f4726c060 100644 --- a/lib/matplotlib/backends/tkagg.py +++ b/lib/matplotlib/backends/tkagg.py @@ -32,7 +32,6 @@ def blit(photoimage, aggimage, bbox=None, colormode=1): raise def test(aggimage): - import time r = Tk.Tk() c = Tk.Canvas(r, width=aggimage.width, height=aggimage.height) c.pack() diff --git a/lib/matplotlib/cbook/__init__.py b/lib/matplotlib/cbook/__init__.py index eb2bdfad4de7..18f8acc15e0d 100644 --- a/lib/matplotlib/cbook/__init__.py +++ b/lib/matplotlib/cbook/__init__.py @@ -29,26 +29,25 @@ import types import warnings from weakref import ref, WeakKeyDictionary -from .deprecation import deprecated, warn_deprecated -from .deprecation import mplDeprecation, MatplotlibDeprecationWarning import numpy as np +import matplotlib +from .deprecation import deprecated, warn_deprecated +from .deprecation import mplDeprecation, MatplotlibDeprecationWarning -# On some systems, locale.getpreferredencoding returns None, -# which can break unicode; and the sage project reports that -# some systems have incorrect locale specifications, e.g., -# an encoding instead of a valid locale name. Another -# pathological case that has been reported is an empty string. - -# On some systems, getpreferredencoding sets the locale, which has -# side effects. Passing False eliminates those side effects. def unicode_safe(s): - import matplotlib if isinstance(s, bytes): try: + # On some systems, locale.getpreferredencoding returns None, + # which can break unicode; and the sage project reports that + # some systems have incorrect locale specifications, e.g., + # an encoding instead of a valid locale name. Another + # pathological case that has been reported is an empty string. + # On some systems, getpreferredencoding sets the locale, which has + # side effects. Passing False eliminates those side effects. preferredencoding = locale.getpreferredencoding( matplotlib.rcParams['axes.formatter.use_locale']).strip() if not preferredencoding: @@ -644,8 +643,6 @@ def get_sample_data(fname, asfileobj=True): If the filename ends in .gz, the file is implicitly ungzipped. """ - import matplotlib - if matplotlib.rcParams['examples.directory']: root = matplotlib.rcParams['examples.directory'] else: diff --git a/lib/matplotlib/cbook/deprecation.py b/lib/matplotlib/cbook/deprecation.py index 851d53d69033..ca7ae333f272 100644 --- a/lib/matplotlib/cbook/deprecation.py +++ b/lib/matplotlib/cbook/deprecation.py @@ -1,5 +1,6 @@ -import warnings import functools +import textwrap +import warnings class MatplotlibDeprecationWarning(UserWarning): @@ -161,7 +162,6 @@ def the_function_to_deprecate(): def deprecate(obj, message=message, name=name, alternative=alternative, pending=pending, addendum=addendum): - import textwrap if not name: name = obj.__name__ diff --git a/lib/matplotlib/cm.py b/lib/matplotlib/cm.py index 03a121e49549..e26f31a3d585 100644 --- a/lib/matplotlib/cm.py +++ b/lib/matplotlib/cm.py @@ -9,7 +9,6 @@ import six -import os import numpy as np from numpy import ma import matplotlib as mpl diff --git a/lib/matplotlib/collections.py b/lib/matplotlib/collections.py index 4e2aa1926bd9..4e15176e060a 100644 --- a/lib/matplotlib/collections.py +++ b/lib/matplotlib/collections.py @@ -23,17 +23,8 @@ import numpy as np import matplotlib as mpl -import matplotlib.cbook as cbook -import matplotlib.colors as mcolors -import matplotlib.cm as cm -from matplotlib import docstring -import matplotlib.transforms as transforms -import matplotlib.artist as artist -from matplotlib.artist import allow_rasterization -import matplotlib.path as mpath -from matplotlib import _path -import matplotlib.mlab as mlab -import matplotlib.lines as mlines +from . import (_path, artist, cbook, cm, colors as mcolors, docstring, + lines as mlines, mlab, path as mpath, transforms) CIRCLE_AREA_FACTOR = 1.0 / np.sqrt(np.pi) @@ -264,7 +255,7 @@ def _prepare_points(self): return transform, transOffset, offsets, paths - @allow_rasterization + @artist.allow_rasterization def draw(self, renderer): if not self.get_visible(): return @@ -917,7 +908,7 @@ def set_sizes(self, sizes, dpi=72.0): self._transforms[:, 2, 2] = 1.0 self.stale = True - @allow_rasterization + @artist.allow_rasterization def draw(self, renderer): self.set_sizes(self._sizes, self.figure.dpi) Collection.draw(self, renderer) @@ -1118,7 +1109,7 @@ def get_numsides(self): def get_rotation(self): return self._rotation - @allow_rasterization + @artist.allow_rasterization def draw(self, renderer): self.set_sizes(self._sizes, self.figure.dpi) self._transforms = [ @@ -1691,7 +1682,7 @@ def _set_transforms(self): m[:2, 2:] = 0 self.set_transform(_affine(m)) - @allow_rasterization + @artist.allow_rasterization def draw(self, renderer): self._set_transforms() Collection.draw(self, renderer) @@ -1797,7 +1788,7 @@ def convert_mesh_to_paths(tri): tri.y[triangles][..., np.newaxis]), axis=2) return [Path(x) for x in verts] - @allow_rasterization + @artist.allow_rasterization def draw(self, renderer): if not self.get_visible(): return @@ -1949,7 +1940,7 @@ def convert_mesh_to_triangles(self, meshWidth, meshHeight, coordinates): return triangles, colors - @allow_rasterization + @artist.allow_rasterization def draw(self, renderer): if not self.get_visible(): return diff --git a/lib/matplotlib/dviread.py b/lib/matplotlib/dviread.py index 4bc254c79f3c..9553beaaedd8 100644 --- a/lib/matplotlib/dviread.py +++ b/lib/matplotlib/dviread.py @@ -23,20 +23,17 @@ from six.moves import xrange from collections import namedtuple -import errno from functools import partial, wraps import logging import numpy as np +import os import re import struct import sys import textwrap -import os -import matplotlib -import matplotlib.cbook as mpl_cbook +from matplotlib import cbook, rcParams from matplotlib.compat import subprocess -from matplotlib import rcParams try: from functools import lru_cache @@ -65,7 +62,7 @@ def ord(x): # just stops reading) # finale: the finale (unimplemented in our current implementation) -_dvistate = mpl_cbook.Bunch(pre=0, outer=1, inpage=2, post_post=3, finale=4) +_dvistate = cbook.Bunch(pre=0, outer=1, inpage=2, post_post=3, finale=4) # The marks on a page consist of text and boxes. A page also has dimensions. Page = namedtuple('Page', 'text boxes height width descent') diff --git a/lib/matplotlib/font_manager.py b/lib/matplotlib/font_manager.py index 67d2a4f8bb1d..8290388a1dab 100644 --- a/lib/matplotlib/font_manager.py +++ b/lib/matplotlib/font_manager.py @@ -22,7 +22,6 @@ from __future__ import absolute_import, division, print_function import six -from six.moves import cPickle as pickle """ KNOWN ISSUES @@ -53,7 +52,6 @@ import warnings import logging -import matplotlib from matplotlib import afm, cbook, ft2font, rcParams, get_cachedir from matplotlib.compat import subprocess from matplotlib.fontconfig_pattern import ( @@ -1375,7 +1373,6 @@ def get_font(filename, hinting_factor=None): # The experimental fontconfig-based backend. if USE_FONTCONFIG and sys.platform != 'win32': - import re def fc_match(pattern, fontext): fontexts = get_fontext_synonyms(fontext) diff --git a/lib/matplotlib/fontconfig_pattern.py b/lib/matplotlib/fontconfig_pattern.py index d7513eae48f3..d1eda70d8ef4 100644 --- a/lib/matplotlib/fontconfig_pattern.py +++ b/lib/matplotlib/fontconfig_pattern.py @@ -22,7 +22,6 @@ import six import re -import sys from pyparsing import (Literal, ZeroOrMore, Optional, Regex, StringEnd, ParseException, Suppress) diff --git a/lib/matplotlib/gridspec.py b/lib/matplotlib/gridspec.py index cd9d6ebbf5e3..f9b7056ccc42 100644 --- a/lib/matplotlib/gridspec.py +++ b/lib/matplotlib/gridspec.py @@ -18,17 +18,15 @@ unicode_literals) import six -from six.moves import zip import copy import warnings -import matplotlib +import numpy as np + from matplotlib import rcParams import matplotlib.transforms as mtransforms -import numpy as np - class GridSpecBase(object): """ diff --git a/lib/matplotlib/lines.py b/lib/matplotlib/lines.py index 043b3a5b7cd0..326644652aca 100644 --- a/lib/matplotlib/lines.py +++ b/lib/matplotlib/lines.py @@ -24,7 +24,6 @@ # Imported here for backward compatibility, even though they don't # really belong. -from numpy import ma from . import _path from .markers import ( CARETLEFT, CARETRIGHT, CARETUP, CARETDOWN, diff --git a/lib/matplotlib/mathtext.py b/lib/matplotlib/mathtext.py index e49865321fda..a1353235e529 100644 --- a/lib/matplotlib/mathtext.py +++ b/lib/matplotlib/mathtext.py @@ -18,9 +18,9 @@ unicode_literals) import six - -import os, sys from six import unichr + +import os from math import ceil import unicodedata from warnings import warn @@ -30,29 +30,23 @@ except ImportError: # Py2 from backports.functools_lru_cache import lru_cache -from numpy import inf, isinf import numpy as np -import pyparsing -from pyparsing import (Combine, Group, Optional, Forward, - Literal, OneOrMore, ZeroOrMore, ParseException, Empty, - ParseResults, Suppress, oneOf, StringEnd, ParseFatalException, - FollowedBy, Regex, ParserElement, QuotedString, ParseBaseException) +from pyparsing import ( + Combine, Empty, FollowedBy, Forward, Group, Literal, oneOf, OneOrMore, + Optional, ParseBaseException, ParseFatalException, ParserElement, + QuotedString, Regex, StringEnd, Suppress, ZeroOrMore) ParserElement.enablePackrat() +from matplotlib import _png, colors as mcolors, get_data_path, rcParams from matplotlib.afm import AFM from matplotlib.cbook import Bunch, get_realpath_and_stat -from matplotlib.ft2font import (FT2Image, KERNING_DEFAULT, LOAD_FORCE_AUTOHINT, - LOAD_NO_HINTING) +from matplotlib.ft2font import FT2Image, KERNING_DEFAULT, LOAD_NO_HINTING from matplotlib.font_manager import findfont, FontProperties, get_font from matplotlib._mathtext_data import (latex_to_bakoma, latex_to_standard, tex2uni, latex_to_cmex, stix_virtual_fonts) -from matplotlib import get_data_path, rcParams - -import matplotlib.colors as mcolors -import matplotlib._png as _png #################### @@ -1691,7 +1685,7 @@ def hpack(self, w=0., m='additional'): d = max(d, p.depth) elif isinstance(p, Box): x += p.width - if not isinf(p.height) and not isinf(p.depth): + if not np.isinf(p.height) and not np.isinf(p.depth): s = getattr(p, 'shift_amount', 0.) h = max(h, p.height - s) d = max(d, p.depth + s) @@ -1728,7 +1722,7 @@ def __init__(self, elements, h=0., m='additional'): List.__init__(self, elements) self.vpack() - def vpack(self, h=0., m='additional', l=float(inf)): + def vpack(self, h=0., m='additional', l=np.inf): """ The main duty of :meth:`vpack` is to compute the dimensions of the resulting boxes, and to adjust the glue if one of those @@ -1755,7 +1749,7 @@ def vpack(self, h=0., m='additional', l=float(inf)): if isinstance(p, Box): x += d + p.height d = p.depth - if not isinf(p.width): + if not np.isinf(p.width): s = getattr(p, 'shift_amount', 0.) w = max(w, p.width + s) elif isinstance(p, Glue): @@ -1820,7 +1814,7 @@ def __init__(self, state, thickness=None): thickness = state.font_output.get_underline_thickness( state.font, state.fontsize, state.dpi) height = depth = thickness * 0.5 - Rule.__init__(self, inf, height, depth, state) + Rule.__init__(self, np.inf, height, depth, state) class Vrule(Rule): """ @@ -1829,7 +1823,7 @@ class Vrule(Rule): def __init__(self, state): thickness = state.font_output.get_underline_thickness( state.font, state.fontsize, state.dpi) - Rule.__init__(self, thickness, inf, inf, state) + Rule.__init__(self, thickness, np.inf, np.inf, state) class Glue(Node): """ @@ -2114,9 +2108,9 @@ def hlist_out(self, box): rule_height = p.height rule_depth = p.depth rule_width = p.width - if isinf(rule_height): + if np.isinf(rule_height): rule_height = box.height - if isinf(rule_depth): + if np.isinf(rule_depth): rule_depth = box.depth if rule_height > 0 and rule_width > 0: self.cur_v = baseline + rule_depth @@ -2174,7 +2168,7 @@ def vlist_out(self, box): rule_height = p.height rule_depth = p.depth rule_width = p.width - if isinf(rule_width): + if np.isinf(rule_width): rule_width = box.width rule_height += rule_depth if rule_height > 0 and rule_depth > 0: diff --git a/lib/matplotlib/patches.py b/lib/matplotlib/patches.py index c6390a371c89..71210acd1f3e 100644 --- a/lib/matplotlib/patches.py +++ b/lib/matplotlib/patches.py @@ -5,27 +5,19 @@ import six from six.moves import map, zip -import warnings import math +import warnings -import matplotlib as mpl import numpy as np -import matplotlib.cbook as cbook -import matplotlib.artist as artist -from matplotlib.artist import allow_rasterization -import matplotlib.colors as colors -from matplotlib import docstring -import matplotlib.transforms as transforms -from matplotlib.path import Path -import matplotlib.lines as mlines - -from matplotlib.bezier import split_bezier_intersecting_with_closedpath -from matplotlib.bezier import get_intersection, inside_circle, get_parallels -from matplotlib.bezier import make_wedged_bezier2 -from matplotlib.bezier import split_path_inout, get_cos_sin -from matplotlib.bezier import make_path_regular, concatenate_paths +import matplotlib as mpl +from . import artist, cbook, colors, docstring, lines as mlines, transforms +from .bezier import ( + concatenate_paths, get_cos_sin, get_intersection, get_parallels, + inside_circle, make_path_regular, make_wedged_bezier2, + split_bezier_intersecting_with_closedpath, split_path_inout) +from .path import Path _patch_alias_map = { 'antialiased': ['aa'], @@ -490,7 +482,7 @@ def get_hatch(self): 'Return the current hatching pattern' return self._hatch - @allow_rasterization + @artist.allow_rasterization def draw(self, renderer): 'Draw the :class:`Patch` to the given *renderer*.' if not self.get_visible(): @@ -1579,7 +1571,7 @@ def __init__(self, xy, width, height, angle=0.0, self.theta1 = theta1 self.theta2 = theta2 - @allow_rasterization + @artist.allow_rasterization def draw(self, renderer): """ Ellipses are normally drawn using an approximation that uses diff --git a/lib/matplotlib/projections/geo.py b/lib/matplotlib/projections/geo.py index cb2c581fb5fe..27a6b1068fa0 100644 --- a/lib/matplotlib/projections/geo.py +++ b/lib/matplotlib/projections/geo.py @@ -3,20 +3,17 @@ import six -import math - import numpy as np -import numpy.ma as ma import matplotlib -rcParams = matplotlib.rcParams +from matplotlib import rcParams from matplotlib.axes import Axes -from matplotlib import cbook +import matplotlib.axis as maxis from matplotlib.patches import Circle from matplotlib.path import Path import matplotlib.spines as mspines -import matplotlib.axis as maxis -from matplotlib.ticker import Formatter, Locator, NullLocator, FixedLocator, NullFormatter +from matplotlib.ticker import ( + Formatter, NullLocator, FixedLocator, NullFormatter) from matplotlib.transforms import Affine2D, BboxTransformTo, Transform diff --git a/lib/matplotlib/projections/polar.py b/lib/matplotlib/projections/polar.py index fe9f3e536171..532be710c58e 100644 --- a/lib/matplotlib/projections/polar.py +++ b/lib/matplotlib/projections/polar.py @@ -7,7 +7,6 @@ import numpy as np -import matplotlib.artist as martist from matplotlib.axes import Axes import matplotlib.axis as maxis from matplotlib import cbook diff --git a/lib/matplotlib/pylab.py b/lib/matplotlib/pylab.py index 9c13db58f69d..67bb7fa1f1c6 100644 --- a/lib/matplotlib/pylab.py +++ b/lib/matplotlib/pylab.py @@ -217,7 +217,7 @@ import six -import sys, warnings +import warnings from matplotlib.cbook import ( flatten, exception_to_str, silent_list, iterable, dedent) diff --git a/lib/matplotlib/pyplot.py b/lib/matplotlib/pyplot.py index 2fa3417f2241..6a17c3b7711b 100644 --- a/lib/matplotlib/pyplot.py +++ b/lib/matplotlib/pyplot.py @@ -24,7 +24,6 @@ import sys import time -import types import warnings from cycler import cycler diff --git a/lib/matplotlib/quiver.py b/lib/matplotlib/quiver.py index dd628f7e7a2f..2f5e8e6ab3ee 100644 --- a/lib/matplotlib/quiver.py +++ b/lib/matplotlib/quiver.py @@ -18,6 +18,8 @@ unicode_literals) import six + +import math import weakref import numpy as np @@ -29,10 +31,8 @@ from matplotlib.artist import allow_rasterization from matplotlib import docstring import matplotlib.font_manager as font_manager -import matplotlib.cbook as cbook from matplotlib.cbook import delete_masked_points from matplotlib.patches import CirclePolygon -import math _quiver_doc = """ diff --git a/lib/matplotlib/scale.py b/lib/matplotlib/scale.py index 459c1c0326c5..1fb0b00edd53 100644 --- a/lib/matplotlib/scale.py +++ b/lib/matplotlib/scale.py @@ -6,13 +6,11 @@ import numpy as np from numpy import ma -from matplotlib.cbook import dedent -from matplotlib.ticker import (NullFormatter, ScalarFormatter, - LogFormatterSciNotation, LogitFormatter) -from matplotlib.ticker import (NullLocator, LogLocator, AutoLocator, - SymmetricalLogLocator, LogitLocator) +from matplotlib import cbook, docstring +from matplotlib.ticker import ( + NullFormatter, ScalarFormatter, LogFormatterSciNotation, LogitFormatter, + NullLocator, LogLocator, AutoLocator, SymmetricalLogLocator, LogitLocator) from matplotlib.transforms import Transform, IdentityTransform -from matplotlib import docstring class ScaleBase(object): @@ -551,7 +549,7 @@ def scale_factory(scale, axis, **kwargs): raise ValueError("Unknown scale type '%s'" % scale) return _scale_mapping[scale](axis, **kwargs) -scale_factory.__doc__ = dedent(scale_factory.__doc__) % \ +scale_factory.__doc__ = cbook.dedent(scale_factory.__doc__) % \ {'names': " | ".join(get_scale_names())} @@ -573,7 +571,7 @@ def get_scale_docs(): scale_class = _scale_mapping[name] docs.append(" '%s'" % name) docs.append("") - class_docs = dedent(scale_class.__init__.__doc__) + class_docs = cbook.dedent(scale_class.__init__.__doc__) class_docs = "".join([" %s\n" % x for x in class_docs.split("\n")]) docs.append(class_docs) diff --git a/lib/matplotlib/sphinxext/only_directives.py b/lib/matplotlib/sphinxext/only_directives.py index 18205cc7de71..0a5ed70f800e 100644 --- a/lib/matplotlib/sphinxext/only_directives.py +++ b/lib/matplotlib/sphinxext/only_directives.py @@ -9,7 +9,7 @@ import six from docutils.nodes import Body, Element -from docutils.parsers.rst import directives + class only_base(Body, Element): def dont_traverse(self, *args, **kwargs): diff --git a/lib/matplotlib/sphinxext/tests/test_tinypages.py b/lib/matplotlib/sphinxext/tests/test_tinypages.py index 89610e95edaa..748a3f381900 100644 --- a/lib/matplotlib/sphinxext/tests/test_tinypages.py +++ b/lib/matplotlib/sphinxext/tests/test_tinypages.py @@ -2,7 +2,6 @@ import filecmp from os.path import join as pjoin, dirname, isdir -import shutil from subprocess import call, Popen, PIPE import sys diff --git a/lib/matplotlib/spines.py b/lib/matplotlib/spines.py index d8f98fa13c0f..5f4f798cfef8 100644 --- a/lib/matplotlib/spines.py +++ b/lib/matplotlib/spines.py @@ -5,14 +5,11 @@ import matplotlib -import matplotlib.artist as martist from matplotlib.artist import allow_rasterization from matplotlib import docstring import matplotlib.transforms as mtransforms -import matplotlib.lines as mlines import matplotlib.patches as mpatches import matplotlib.path as mpath -import matplotlib.cbook as cbook import numpy as np import warnings diff --git a/lib/matplotlib/style/core.py b/lib/matplotlib/style/core.py index bd35f902eab2..49467c4c9553 100644 --- a/lib/matplotlib/style/core.py +++ b/lib/matplotlib/style/core.py @@ -20,7 +20,6 @@ import warnings import matplotlib as mpl -from matplotlib import cbook from matplotlib import rc_params_from_file, rcParamsDefault diff --git a/lib/matplotlib/testing/__init__.py b/lib/matplotlib/testing/__init__.py index cafbbc667bab..36a7403698f2 100644 --- a/lib/matplotlib/testing/__init__.py +++ b/lib/matplotlib/testing/__init__.py @@ -2,18 +2,15 @@ unicode_literals) import functools -import inspect import warnings -from contextlib import contextmanager import matplotlib -from matplotlib.cbook import iterable -from matplotlib import rcParams, rcdefaults, use +from matplotlib import cbook, rcParams, rcdefaults, use def _is_list_like(obj): """Returns whether the obj is iterable and not a string""" - return not isinstance(obj, six.string_types) and iterable(obj) + return not isinstance(obj, six.string_types) and cbook.iterable(obj) def is_called_from_pytest(): @@ -42,7 +39,6 @@ def setup(): # The baseline images are created in this locale, so we should use # it during all of the tests. import locale - import warnings from matplotlib.backends import backend_agg, backend_pdf, backend_svg try: diff --git a/lib/matplotlib/testing/_nose/decorators.py b/lib/matplotlib/testing/_nose/decorators.py index e6e2eb4dc847..1f0807df2004 100644 --- a/lib/matplotlib/testing/_nose/decorators.py +++ b/lib/matplotlib/testing/_nose/decorators.py @@ -1,9 +1,7 @@ from __future__ import (absolute_import, division, print_function, unicode_literals) -import os import six -import sys from .. import _copy_metadata from . import knownfail from .exceptions import KnownFailureDidNotFailTest diff --git a/lib/matplotlib/testing/jpl_units/UnitDblConverter.py b/lib/matplotlib/testing/jpl_units/UnitDblConverter.py index 73bda0bb7f5b..fb85a1a8e218 100644 --- a/lib/matplotlib/testing/jpl_units/UnitDblConverter.py +++ b/lib/matplotlib/testing/jpl_units/UnitDblConverter.py @@ -17,7 +17,6 @@ import numpy as np import matplotlib.units as units -import matplotlib.ticker as ticker import matplotlib.projections.polar as polar from matplotlib.cbook import iterable # diff --git a/lib/matplotlib/text.py b/lib/matplotlib/text.py index 84d7f1242155..090073f2abb7 100644 --- a/lib/matplotlib/text.py +++ b/lib/matplotlib/text.py @@ -6,32 +6,23 @@ import six from six.moves import zip +import contextlib +import logging import math import warnings -import logging import weakref -import contextlib - import numpy as np -from matplotlib import cbook -from matplotlib import rcParams -import matplotlib.artist as artist -from matplotlib.artist import Artist -from matplotlib.cbook import maxdict -from matplotlib import docstring -from matplotlib.font_manager import FontProperties -from matplotlib.patches import FancyBboxPatch -from matplotlib.patches import FancyArrowPatch, Rectangle -import matplotlib.transforms as mtransforms -from matplotlib.transforms import Affine2D, Bbox, Transform -from matplotlib.transforms import BboxBase, BboxTransformTo -from matplotlib.lines import Line2D -from matplotlib.path import Path -from matplotlib.artist import allow_rasterization - -from matplotlib.textpath import TextPath +from . import artist, cbook, docstring, rcParams +from .artist import Artist +from .font_manager import FontProperties +from .lines import Line2D +from .patches import FancyArrowPatch, FancyBboxPatch, Rectangle +from .textpath import TextPath # Unused, but imported by others. +from .transforms import ( + Affine2D, Bbox, BboxBase, BboxTransformTo, IdentityTransform, Transform) + _log = logging.getLogger(__name__) @@ -101,7 +92,7 @@ def _get_textbox(text, renderer): projected_ys = [] theta = np.deg2rad(text.get_rotation()) - tr = mtransforms.Affine2D().rotate(-theta) + tr = Affine2D().rotate(-theta) _, parts, d = text._get_layout(renderer) @@ -118,7 +109,7 @@ def _get_textbox(text, renderer): xt_box, yt_box = min(projected_xs), min(projected_ys) w_box, h_box = max(projected_xs) - xt_box, max(projected_ys) - yt_box - tr = mtransforms.Affine2D().rotate(theta) + tr = Affine2D().rotate(theta) x_box, y_box = tr.transform_point((xt_box, yt_box)) @@ -130,7 +121,7 @@ class Text(Artist): Handle storing and drawing of text in window or data coordinates. """ zorder = 3 - _cached = maxdict(50) + _cached = cbook.maxdict(50) def __repr__(self): return "Text(%g,%g,%s)" % (self._x, self._y, repr(self._text)) @@ -474,7 +465,7 @@ def set_bbox(self, rectprops): 1., 1., boxstyle=boxstyle, bbox_transmuter=bbox_transmuter, - transform=mtransforms.IdentityTransform(), + transform=IdentityTransform(), **props) else: self._bbox_patch = None @@ -509,7 +500,7 @@ def update_bbox_position_size(self, renderer): x_box, y_box, w_box, h_box = _get_textbox(self, renderer) self._bbox_patch.set_bounds(0., 0., w_box, h_box) theta = np.deg2rad(self.get_rotation()) - tr = mtransforms.Affine2D().rotate(theta) + tr = Affine2D().rotate(theta) tr = tr.translate(posx + x_box, posy + y_box) self._bbox_patch.set_transform(tr) fontsize_in_pixel = renderer.points_to_pixels(self.get_size()) @@ -524,7 +515,7 @@ def _draw_bbox(self, renderer, posx, posy): x_box, y_box, w_box, h_box = _get_textbox(self, renderer) self._bbox_patch.set_bounds(0., 0., w_box, h_box) theta = np.deg2rad(self.get_rotation()) - tr = mtransforms.Affine2D().rotate(theta) + tr = Affine2D().rotate(theta) tr = tr.translate(posx + x_box, posy + y_box) self._bbox_patch.set_transform(tr) fontsize_in_pixel = renderer.points_to_pixels(self.get_size()) @@ -699,7 +690,7 @@ def _get_wrapped_text(self): return wrapped_str + line - @allow_rasterization + @artist.allow_rasterization def draw(self, renderer): """ Draws the :class:`Text` object to the given *renderer*. @@ -2280,12 +2271,12 @@ def _update_position_xytext(self, renderer, xy_pixel): width=w, height=h, ) - r.set_transform(mtransforms.IdentityTransform()) + r.set_transform(IdentityTransform()) r.set_clip_on(False) self.arrow_patch.set_patchA(r) - @allow_rasterization + @artist.allow_rasterization def draw(self, renderer): """ Draw the :class:`Annotation` object to the given *renderer*. diff --git a/lib/matplotlib/tight_bbox.py b/lib/matplotlib/tight_bbox.py index 69ff23abf426..7bffb3531297 100644 --- a/lib/matplotlib/tight_bbox.py +++ b/lib/matplotlib/tight_bbox.py @@ -7,7 +7,6 @@ import six -import warnings from matplotlib.transforms import Bbox, TransformedBbox, Affine2D diff --git a/lib/matplotlib/type1font.py b/lib/matplotlib/type1font.py index b161b53ee8c8..a971a336f05a 100644 --- a/lib/matplotlib/type1font.py +++ b/lib/matplotlib/type1font.py @@ -26,15 +26,14 @@ unicode_literals) import six -from six import unichr import binascii import io import itertools -import numpy as np import re import struct -import sys + +import numpy as np if six.PY3: def ord(x): diff --git a/lib/mpl_toolkits/axes_grid1/axes_grid.py b/lib/mpl_toolkits/axes_grid1/axes_grid.py index f63daa73fa1f..24e45cac15a6 100644 --- a/lib/mpl_toolkits/axes_grid1/axes_grid.py +++ b/lib/mpl_toolkits/axes_grid1/axes_grid.py @@ -3,11 +3,8 @@ import six -import matplotlib as mpl import matplotlib.axes as maxes import matplotlib.cbook as cbook -import matplotlib.lines as mlines -import matplotlib.patches as mpatches import matplotlib.ticker as ticker from matplotlib.gridspec import SubplotSpec diff --git a/lib/mpl_toolkits/axes_grid1/mpl_axes.py b/lib/mpl_toolkits/axes_grid1/mpl_axes.py index 3350278508df..9e1b775e6998 100644 --- a/lib/mpl_toolkits/axes_grid1/mpl_axes.py +++ b/lib/mpl_toolkits/axes_grid1/mpl_axes.py @@ -3,8 +3,6 @@ import six -import warnings - import matplotlib.axes as maxes from matplotlib.artist import Artist from matplotlib.axis import XAxis, YAxis diff --git a/lib/mpl_toolkits/axes_grid1/parasite_axes.py b/lib/mpl_toolkits/axes_grid1/parasite_axes.py index 5d347af1da4c..f8b7add3b6f2 100644 --- a/lib/mpl_toolkits/axes_grid1/parasite_axes.py +++ b/lib/mpl_toolkits/axes_grid1/parasite_axes.py @@ -3,25 +3,15 @@ import six -import warnings - -import matplotlib -rcParams = matplotlib.rcParams -import matplotlib.artist as martist -import matplotlib.transforms as mtransforms -import matplotlib.collections as mcoll -import matplotlib.legend as mlegend - +from matplotlib import ( + artist as martist, collections as mcoll, transforms as mtransforms, + rcParams) from matplotlib.axes import subplot_class_factory -from .mpl_axes import Axes - from matplotlib.transforms import Bbox +from .mpl_axes import Axes import numpy as np -import matplotlib.cbook as cbook -is_string_like = cbook.is_string_like - class ParasiteAxesBase(object): diff --git a/lib/mpl_toolkits/axisartist/axis_artist.py b/lib/mpl_toolkits/axisartist/axis_artist.py index 7c88fc07c3ba..a90535652336 100644 --- a/lib/mpl_toolkits/axisartist/axis_artist.py +++ b/lib/mpl_toolkits/axisartist/axis_artist.py @@ -89,18 +89,16 @@ import six # FIXME : +# angles are given in data coordinate - need to convert it to canvas coordinate -# * : angles are given in data coordinate - need to convert it to canvas coordinate - -import matplotlib.axes as maxes import matplotlib.artist as martist import matplotlib.text as mtext import matplotlib.font_manager as font_manager from matplotlib.path import Path -from matplotlib.transforms import Affine2D, ScaledTranslation, \ - IdentityTransform, TransformedPath, Bbox +from matplotlib.transforms import ( + Affine2D, Bbox, IdentityTransform, ScaledTranslation, TransformedPath) from matplotlib.collections import LineCollection from matplotlib import rcParams diff --git a/lib/mpl_toolkits/axisartist/axislines.py b/lib/mpl_toolkits/axisartist/axislines.py index ca735b94bdf2..3c4e47ea53dc 100644 --- a/lib/mpl_toolkits/axisartist/axislines.py +++ b/lib/mpl_toolkits/axisartist/axislines.py @@ -46,31 +46,19 @@ import six -import matplotlib.axes as maxes -import matplotlib.artist as martist -import matplotlib.text as mtext -import matplotlib.font_manager as font_manager - -from matplotlib.path import Path -from matplotlib.transforms import Affine2D, ScaledTranslation, \ - IdentityTransform, TransformedPath, Bbox -from matplotlib.collections import LineCollection - -from matplotlib import rcParams - -from matplotlib.artist import allow_rasterization - import warnings import numpy as np - -import matplotlib.lines as mlines +from matplotlib import rcParams +import matplotlib.artist as martist +import matplotlib.axes as maxes +from matplotlib.path import Path +from matplotlib.transforms import Bbox from .axisline_style import AxislineStyle - - from .axis_artist import AxisArtist, GridlinesCollection + class AxisArtistHelper(object): """ AxisArtistHelper should define diff --git a/lib/mpl_toolkits/axisartist/floating_axes.py b/lib/mpl_toolkits/axisartist/floating_axes.py index 38332b3d46ee..48d1260d3ce2 100644 --- a/lib/mpl_toolkits/axisartist/floating_axes.py +++ b/lib/mpl_toolkits/axisartist/floating_axes.py @@ -8,25 +8,22 @@ from six.moves import zip # TODO : +# see if tick_iterator method can be simplified by reusing the parent method. -# *. see if tick_iterator method can be simplified by reusing the parent method. - -from itertools import chain -from .grid_finder import GridFinder - -from .axislines import AxisArtistHelper, GridHelperBase -from .axis_artist import AxisArtist -from matplotlib.transforms import Affine2D, IdentityTransform import numpy as np - +from matplotlib.transforms import Affine2D, IdentityTransform from . import grid_helper_curvelinear +from .axislines import AxisArtistHelper, GridHelperBase +from .axis_artist import AxisArtist +from .grid_finder import GridFinder + class FloatingAxisArtistHelper(grid_helper_curvelinear.FloatingAxisArtistHelper): pass -class FixedAxisArtistHelper(grid_helper_curvelinear.FloatingAxisArtistHelper): +class FixedAxisArtistHelper(grid_helper_curvelinear.FloatingAxisArtistHelper): def __init__(self, grid_helper, side, nth_coord_ticks=None): """ diff --git a/lib/mpl_toolkits/axisartist/grid_finder.py b/lib/mpl_toolkits/axisartist/grid_finder.py index 93c7e69214c9..d41841ff6b9e 100644 --- a/lib/mpl_toolkits/axisartist/grid_finder.py +++ b/lib/mpl_toolkits/axisartist/grid_finder.py @@ -4,7 +4,6 @@ import six import numpy as np -import matplotlib.cbook as mcbook from matplotlib.transforms import Bbox from . import clip_path clip_line_to_rect = clip_path.clip_line_to_rect diff --git a/lib/mpl_toolkits/mplot3d/art3d.py b/lib/mpl_toolkits/mplot3d/art3d.py index e183e7405fd1..19d3ed9e14e8 100644 --- a/lib/mpl_toolkits/mplot3d/art3d.py +++ b/lib/mpl_toolkits/mplot3d/art3d.py @@ -12,20 +12,18 @@ import six from six.moves import zip +import math + +import numpy as np + from matplotlib import ( artist, cbook, colors as mcolors, lines, text as mtext, path as mpath) from matplotlib.cbook import _backports from matplotlib.collections import ( Collection, LineCollection, PolyCollection, PatchCollection, PathCollection) -from matplotlib.cm import ScalarMappable -from matplotlib.patches import Patch from matplotlib.colors import Normalize -from matplotlib.cbook import iterable - -import warnings -import numpy as np -import math +from matplotlib.patches import Patch from . import proj3d @@ -54,7 +52,7 @@ def get_dir_vector(zdir): return np.array((0, 0, 1)) elif zdir is None: return np.array((0, 0, 0)) - elif iterable(zdir) and len(zdir) == 3: + elif cbook.iterable(zdir) and len(zdir) == 3: return zdir else: raise ValueError("'x', 'y', 'z', None or vector of length 3 expected")Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: