From 4833d99179fe81ad081f2c1e950e87cde96cef48 Mon Sep 17 00:00:00 2001 From: Antony Lee Date: Fri, 31 May 2019 17:00:17 +0200 Subject: [PATCH] Assume that mpl-data is in its standard location. The previous candidates tested in get_candidate_paths were for 1) when matplotlib itself was a namespace package (a long time ago, before mpl_toolkits were move out of matplotlib proper), and 2) py2exe support, which is deprecated (see deprecation of get_py2exe_datafiles). Just to be sure in case someone else is relying on the paths in get_candidate_paths, emit a deprecation warning in case they are needed, but let's not bother with an API changes note (it's not even clear how to word that). Note that redistributors (e.g. linux distro packagers) who may want to move mpl-data out can still do so by patching out the entire `_get_data_path` function. --- lib/matplotlib/__init__.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py index a367dd729f9f..952edd5e2473 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py @@ -607,8 +607,16 @@ def _get_data_path(): "3.1", name="MATPLOTLIBDATA", obj_type="environment variable") return path + path = Path(__file__).with_name("mpl-data") + if path.is_dir(): + return str(path) + + cbook.warn_deprecated( + "3.2", message="Matplotlib installs where the data is not in the " + "mpl-data subdirectory of the package are deprecated since %(since)s " + "and support for them will be removed %(removal)s.") + def get_candidate_paths(): - yield Path(__file__).with_name('mpl-data') # setuptools' namespace_packages may hijack this init file # so need to try something known to be in Matplotlib, not basemap. import matplotlib.afm