2018-11-08 21:11:31 +00:00
|
|
|
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
|
|
|
|
index c5accc3c3..472680fe6 100644
|
|
|
|
--- a/lib/matplotlib/__init__.py
|
|
|
|
+++ b/lib/matplotlib/__init__.py
|
|
|
|
@@ -130,7 +130,6 @@ from matplotlib.compat import subprocess
|
|
|
|
from matplotlib.rcsetup import defaultParams, validate_backend, cycler
|
|
|
|
|
|
|
|
import numpy
|
|
|
|
-from six.moves.urllib.request import urlopen
|
|
|
|
from six.moves import reload_module as reload
|
|
|
|
|
|
|
|
# Get the version from the _version.py versioneer file. For a git checkout,
|
|
|
|
@@ -1023,6 +1022,7 @@ def _url_lines(f):
|
|
|
|
@contextlib.contextmanager
|
|
|
|
def _open_file_or_url(fname):
|
|
|
|
if is_url(fname):
|
|
|
|
+ from six.moves.urllib.request import urlopen
|
|
|
|
f = urlopen(fname)
|
|
|
|
yield _url_lines(f)
|
|
|
|
f.close()
|
|
|
|
diff --git a/lib/matplotlib/_layoutbox.py b/lib/matplotlib/_layoutbox.py
|
|
|
|
index cb6f03158..0cc6bdf88 100644
|
|
|
|
--- a/lib/matplotlib/_layoutbox.py
|
|
|
|
+++ b/lib/matplotlib/_layoutbox.py
|
|
|
|
@@ -20,7 +20,6 @@ from __future__ import (absolute_import, division, print_function,
|
|
|
|
unicode_literals)
|
|
|
|
|
|
|
|
import itertools
|
|
|
|
-import kiwisolver as kiwi
|
|
|
|
import logging
|
|
|
|
import numpy as np
|
|
|
|
import warnings
|
|
|
|
@@ -58,6 +57,8 @@ class LayoutBox(object):
|
|
|
|
tightheight=False, artist=None,
|
|
|
|
lower_left=(0, 0), upper_right=(1, 1), pos=False,
|
|
|
|
subplot=False, h_pad=None, w_pad=None):
|
|
|
|
+ import kiwisolver as kiwi
|
|
|
|
+
|
|
|
|
Variable = kiwi.Variable
|
|
|
|
self.parent = parent
|
|
|
|
self.name = name
|
|
|
|
diff --git a/lib/matplotlib/backends/backend_agg.py b/lib/matplotlib/backends/backend_agg.py
|
|
|
|
index aff6cddf4..c4d2d0713 100644
|
|
|
|
--- a/lib/matplotlib/backends/backend_agg.py
|
|
|
|
+++ b/lib/matplotlib/backends/backend_agg.py
|
|
|
|
@@ -46,7 +46,6 @@ from matplotlib.transforms import Bbox, BboxBase
|
|
|
|
from matplotlib import colors as mcolors
|
|
|
|
|
|
|
|
from matplotlib.backends._backend_agg import RendererAgg as _RendererAgg
|
|
|
|
-from matplotlib import _png
|
|
|
|
|
|
|
|
try:
|
|
|
|
from PIL import Image
|
|
|
|
@@ -514,6 +513,8 @@ class FigureCanvasAgg(FigureCanvasBase):
|
|
|
|
print_rgba = print_raw
|
|
|
|
|
|
|
|
def print_png(self, filename_or_obj, *args, **kwargs):
|
|
|
|
+ from matplotlib import _png
|
|
|
|
+
|
|
|
|
FigureCanvasAgg.draw(self)
|
|
|
|
renderer = self.get_renderer()
|
|
|
|
original_dpi = renderer.dpi
|
|
|
|
diff --git a/lib/matplotlib/cbook/__init__.py b/lib/matplotlib/cbook/__init__.py
|
|
|
|
index dcb2d0549..3dfc49589 100644
|
|
|
|
--- a/lib/matplotlib/cbook/__init__.py
|
|
|
|
+++ b/lib/matplotlib/cbook/__init__.py
|
|
|
|
@@ -16,7 +16,6 @@ import datetime
|
|
|
|
import errno
|
|
|
|
import functools
|
|
|
|
import glob
|
|
|
|
-import gzip
|
|
|
|
import io
|
|
|
|
from itertools import repeat
|
|
|
|
import locale
|
|
|
|
@@ -597,6 +596,7 @@ def to_filehandle(fname, flag='rU', return_opened=False, encoding=None):
|
|
|
|
flag=flag, return_opened=return_opened, encoding=encoding)
|
|
|
|
if isinstance(fname, six.string_types):
|
|
|
|
if fname.endswith('.gz'):
|
|
|
|
+ import gzip
|
|
|
|
# get rid of 'U' in flag for gzipped files.
|
|
|
|
flag = flag.replace('U', '')
|
|
|
|
fh = gzip.open(fname, flag)
|
|
|
|
diff --git a/lib/matplotlib/contour.py b/lib/matplotlib/contour.py
|
|
|
|
index f6fdfd61c..c06431910 100644
|
|
|
|
--- a/lib/matplotlib/contour.py
|
|
|
|
+++ b/lib/matplotlib/contour.py
|
|
|
|
@@ -11,7 +11,6 @@ import warnings
|
|
|
|
import matplotlib as mpl
|
|
|
|
import numpy as np
|
|
|
|
from numpy import ma
|
|
|
|
-import matplotlib._contour as _contour
|
|
|
|
import matplotlib.path as mpath
|
|
|
|
import matplotlib.ticker as ticker
|
|
|
|
import matplotlib.cm as cm
|
|
|
|
@@ -1469,6 +1468,8 @@ class QuadContourSet(ContourSet):
|
|
|
|
self._mins = args[0]._mins
|
|
|
|
self._maxs = args[0]._maxs
|
|
|
|
else:
|
2018-11-08 22:21:45 +00:00
|
|
|
+ import matplotlib._contour as _contour
|
2018-11-08 21:11:31 +00:00
|
|
|
+
|
|
|
|
self._corner_mask = kwargs.pop('corner_mask', None)
|
|
|
|
if self._corner_mask is None:
|
|
|
|
self._corner_mask = mpl.rcParams['contour.corner_mask']
|
|
|
|
diff --git a/lib/matplotlib/font_manager.py b/lib/matplotlib/font_manager.py
|
|
|
|
index 5900fc9b1..f23f5a438 100644
|
|
|
|
--- a/lib/matplotlib/font_manager.py
|
|
|
|
+++ b/lib/matplotlib/font_manager.py
|
|
|
|
@@ -55,7 +55,7 @@ except ImportError:
|
|
|
|
import warnings
|
|
|
|
import logging
|
|
|
|
|
|
|
|
-from matplotlib import afm, cbook, ft2font, rcParams, get_cachedir
|
|
|
|
+from matplotlib import cbook, ft2font, rcParams, get_cachedir
|
|
|
|
from matplotlib.compat import subprocess
|
|
|
|
from matplotlib.fontconfig_pattern import (
|
|
|
|
parse_fontconfig_pattern, generate_fontconfig_pattern)
|
|
|
|
@@ -569,6 +569,7 @@ def createFontList(fontfiles, fontext='ttf'):
|
|
|
|
else:
|
|
|
|
seen.add(fname)
|
|
|
|
if fontext == 'afm':
|
|
|
|
+ from matplotlib import afm
|
|
|
|
try:
|
|
|
|
fh = open(fpath, 'rb')
|
|
|
|
except EnvironmentError:
|
|
|
|
diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py
|
|
|
|
index 3ea0cb70d..5b3056a18 100644
|
|
|
|
--- a/lib/matplotlib/image.py
|
|
|
|
+++ b/lib/matplotlib/image.py
|
|
|
|
@@ -26,7 +26,6 @@ import matplotlib.cbook as cbook
|
|
|
|
|
|
|
|
# For clarity, names from _image are given explicitly in this module:
|
|
|
|
import matplotlib._image as _image
|
|
|
|
-import matplotlib._png as _png
|
|
|
|
|
|
|
|
# For user convenience, the names from _image are also imported into
|
|
|
|
# the image namespace:
|
|
|
|
@@ -623,6 +622,7 @@ class _ImageBase(martist.Artist, cm.ScalarMappable):
|
|
|
|
|
|
|
|
def write_png(self, fname):
|
|
|
|
"""Write the image to png file with fname"""
|
|
|
|
+ from matplotlib import _png
|
|
|
|
im = self.to_rgba(self._A[::-1] if self.origin == 'lower' else self._A,
|
|
|
|
bytes=True, norm=True)
|
|
|
|
_png.write_png(im, fname)
|
|
|
|
@@ -1335,7 +1335,11 @@ def imread(fname, format=None):
|
|
|
|
with Image.open(fname) as image:
|
|
|
|
return pil_to_array(image)
|
|
|
|
|
|
|
|
- handlers = {'png': _png.read_png, }
|
|
|
|
+ def read_png(*args, **kwargs):
|
|
|
|
+ from matplotlib import _png
|
|
|
|
+ return _png.read_png(*args, **kwargs)
|
|
|
|
+
|
|
|
|
+ handlers = {'png': read_png, }
|
|
|
|
if format is None:
|
|
|
|
if isinstance(fname, six.string_types):
|
|
|
|
parsed = urlparse(fname)
|
|
|
|
diff --git a/lib/matplotlib/mathtext.py b/lib/matplotlib/mathtext.py
|
|
|
|
index dee778b0d..428582ace 100644
|
|
|
|
--- a/lib/matplotlib/mathtext.py
|
|
|
|
+++ b/lib/matplotlib/mathtext.py
|
|
|
|
@@ -35,7 +35,7 @@ from pyparsing import (
|
|
|
|
|
|
|
|
ParserElement.enablePackrat()
|
|
|
|
|
|
|
|
-from matplotlib import _png, colors as mcolors, get_data_path, rcParams
|
|
|
|
+from matplotlib import colors as mcolors, get_data_path, rcParams
|
|
|
|
from matplotlib.afm import AFM
|
|
|
|
from matplotlib.cbook import Bunch, get_realpath_and_stat, maxdict
|
|
|
|
from matplotlib.ft2font import FT2Image, KERNING_DEFAULT, LOAD_NO_HINTING
|
|
|
|
@@ -3379,6 +3379,7 @@ class MathTextParser(object):
|
|
|
|
Returns the offset of the baseline from the bottom of the
|
|
|
|
image in pixels.
|
|
|
|
"""
|
|
|
|
+ from matplotlib import _png
|
|
|
|
rgba, depth = self.to_rgba(texstr, color=color, dpi=dpi, fontsize=fontsize)
|
|
|
|
_png.write_png(rgba, filename)
|
|
|
|
return depth
|
|
|
|
diff --git a/lib/matplotlib/tri/triangulation.py b/lib/matplotlib/tri/triangulation.py
|
|
|
|
index b80aaf87b..45bf9eb5c 100644
|
|
|
|
--- a/lib/matplotlib/tri/triangulation.py
|
|
|
|
+++ b/lib/matplotlib/tri/triangulation.py
|
|
|
|
@@ -3,8 +3,6 @@ from __future__ import (absolute_import, division, print_function,
|
|
|
|
|
|
|
|
import six
|
|
|
|
|
|
|
|
-import matplotlib._tri as _tri
|
|
|
|
-import matplotlib._qhull as _qhull
|
|
|
|
import numpy as np
|
|
|
|
|
|
|
|
|
|
|
|
@@ -39,6 +37,8 @@ class Triangulation(object):
|
|
|
|
triangles formed from colinear points, or overlapping triangles.
|
|
|
|
"""
|
|
|
|
def __init__(self, x, y, triangles=None, mask=None):
|
|
|
|
+ from matplotlib import _qhull
|
|
|
|
+
|
|
|
|
self.x = np.asarray(x, dtype=np.float64)
|
|
|
|
self.y = np.asarray(y, dtype=np.float64)
|
|
|
|
if self.x.shape != self.y.shape or self.x.ndim != 1:
|
|
|
|
@@ -103,6 +103,7 @@ class Triangulation(object):
|
|
|
|
def get_cpp_triangulation(self):
|
|
|
|
# Return the underlying C++ Triangulation object, creating it
|
|
|
|
# if necessary.
|
|
|
|
+ from matplotlib import _tri
|
|
|
|
if self._cpp_triangulation is None:
|
|
|
|
self._cpp_triangulation = _tri.Triangulation(
|
|
|
|
self.x, self.y, self.triangles, self.mask, self._edges,
|