Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
pyodide
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
pyodide
Commits
7710c2a3
Commit
7710c2a3
authored
Dec 07, 2018
by
Roman Yurchak
Committed by
GitHub
Dec 07, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #251 from mdboom/matplotlib-reduce-imports
Reduce the number of mandatory imports in matplotlib
parents
82d0c4cb
d7a85907
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
209 additions
and
0 deletions
+209
-0
packages/matplotlib/meta.yaml
packages/matplotlib/meta.yaml
+1
-0
packages/matplotlib/patches/reduce-imports.patch
packages/matplotlib/patches/reduce-imports.patch
+208
-0
No files found.
packages/matplotlib/meta.yaml
View file @
7710c2a3
...
...
@@ -11,6 +11,7 @@ source:
-
patches/force_malloc_free.patch
-
patches/hardcoded_font_cache.patch
-
patches/reduce_cpp_exceptions.patch
-
patches/reduce-imports.patch
extras
:
-
...
...
packages/matplotlib/patches/reduce-imports.patch
0 → 100644
View file @
7710c2a3
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:
+ import matplotlib._contour as _contour
+
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,
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment