From b03cec1d3f7fb5ac820bd5334ab3337a9221c29d Mon Sep 17 00:00:00 2001 From: Debian Science Team Date: Tue, 24 Apr 2018 20:09:20 +0100 Subject: [PATCH] matplotlib2.2 Gbp-Pq: Name matplotlib2.2.patch --- pandas/plotting/_compat.py | 84 ++++++---------------- pandas/tests/plotting/common.py | 1 + pandas/tests/plotting/test_datetimelike.py | 17 ++--- 3 files changed, 30 insertions(+), 72 deletions(-) diff --git a/pandas/plotting/_compat.py b/pandas/plotting/_compat.py index d527bc08..46ebd421 100644 --- a/pandas/plotting/_compat.py +++ b/pandas/plotting/_compat.py @@ -1,75 +1,31 @@ # being a bit too dynamic # pylint: disable=E1101 from __future__ import division +import operator from distutils.version import LooseVersion -def _mpl_le_1_2_1(): - try: - import matplotlib as mpl - return (str(mpl.__version__) <= LooseVersion('1.2.1') and +def _mpl_version(version, op): + def inner(): + try: + import matplotlib as mpl + except ImportError: + return False + return (op(LooseVersion(mpl.__version__), LooseVersion(version)) and str(mpl.__version__)[0] != '0') - except ImportError: - return False + return inner -def _mpl_ge_1_3_1(): - try: - import matplotlib - # The or v[0] == '0' is because their versioneer is - # messed up on dev - return (matplotlib.__version__ >= LooseVersion('1.3.1') or - matplotlib.__version__[0] == '0') - except ImportError: - return False - -def _mpl_ge_1_4_0(): - try: - import matplotlib - return (matplotlib.__version__ >= LooseVersion('1.4') or - matplotlib.__version__[0] == '0') - except ImportError: - return False - - -def _mpl_ge_1_5_0(): - try: - import matplotlib - return (matplotlib.__version__ >= LooseVersion('1.5') or - matplotlib.__version__[0] == '0') - except ImportError: - return False - - -def _mpl_ge_2_0_0(): - try: - import matplotlib - return matplotlib.__version__ >= LooseVersion('2.0') - except ImportError: - return False - - -def _mpl_le_2_0_0(): - try: - import matplotlib - return matplotlib.compare_versions('2.0.0', matplotlib.__version__) - except ImportError: - return False - - -def _mpl_ge_2_0_1(): - try: - import matplotlib - return matplotlib.__version__ >= LooseVersion('2.0.1') - except ImportError: - return False - - -def _mpl_ge_2_1_0(): - try: - import matplotlib - return matplotlib.__version__ >= LooseVersion('2.1') - except ImportError: - return False +_mpl_ge_1_2_1 = _mpl_version('1.2.1', operator.ge) +_mpl_le_1_2_1 = _mpl_version('1.2.1', operator.le) +_mpl_ge_1_3_1 = _mpl_version('1.3.1', operator.ge) +_mpl_ge_1_4_0 = _mpl_version('1.4.0', operator.ge) +_mpl_ge_1_4_1 = _mpl_version('1.4.1', operator.ge) +_mpl_ge_1_5_0 = _mpl_version('1.5.0', operator.ge) +_mpl_ge_2_0_0 = _mpl_version('2.0.0', operator.ge) +_mpl_le_2_0_0 = _mpl_version('2.0.0', operator.le) +_mpl_ge_2_0_1 = _mpl_version('2.0.1', operator.ge) +_mpl_ge_2_1_0 = _mpl_version('2.1.0', operator.ge) +_mpl_ge_2_2_0 = _mpl_version('2.2.0', operator.ge) diff --git a/pandas/tests/plotting/common.py b/pandas/tests/plotting/common.py index dfab539e..6858840e 100644 --- a/pandas/tests/plotting/common.py +++ b/pandas/tests/plotting/common.py @@ -56,6 +56,7 @@ class TestPlotBase(object): self.mpl_ge_1_5_0 = plotting._compat._mpl_ge_1_5_0() self.mpl_ge_2_0_0 = plotting._compat._mpl_ge_2_0_0() self.mpl_ge_2_0_1 = plotting._compat._mpl_ge_2_0_1() + self.mpl_ge_2_2_0 = plotting._compat._mpl_ge_2_2_0() if self.mpl_ge_1_4_0: self.bp_n_objects = 7 diff --git a/pandas/tests/plotting/test_datetimelike.py b/pandas/tests/plotting/test_datetimelike.py index d6cedac7..f0b456c7 100644 --- a/pandas/tests/plotting/test_datetimelike.py +++ b/pandas/tests/plotting/test_datetimelike.py @@ -8,7 +8,7 @@ from pandas.compat import lrange, zip import numpy as np from pandas import Index, Series, DataFrame, NaT -from pandas.compat import is_platform_mac, PY3 +from pandas.compat import PY3 from pandas.core.indexes.datetimes import date_range, bdate_range from pandas.core.indexes.timedeltas import timedelta_range from pandas.tseries.offsets import DateOffset @@ -1326,10 +1326,11 @@ class TestTSPlot(TestPlotBase): ax.plot(values) def test_format_timedelta_ticks_narrow(self): - if is_platform_mac(): - pytest.skip("skip on mac for precision display issue on older mpl") - - if self.mpl_ge_2_0_0: + if self.mpl_ge_2_2_0: + expected_labels = (['-1 days 23:59:59.999999998'] + + ['00:00:00.0000000{:0>2d}'.format(2 * i) + for i in range(6)]) + elif self.mpl_ge_2_0_0: expected_labels = [''] + [ '00:00:00.00000000{:d}'.format(2 * i) for i in range(5)] + [''] @@ -1349,9 +1350,6 @@ class TestTSPlot(TestPlotBase): assert l.get_text() == l_expected def test_format_timedelta_ticks_wide(self): - if is_platform_mac(): - pytest.skip("skip on mac for precision display issue on older mpl") - if self.mpl_ge_2_0_0: expected_labels = [ '', @@ -1366,6 +1364,9 @@ class TestTSPlot(TestPlotBase): '9 days 06:13:20', '' ] + if self.mpl_ge_2_2_0: + expected_labels[0] = '-2 days 20:13:20' + expected_labels[-1] = '10 days 10:00:00' else: expected_labels = [ '00:00:00', -- 2.30.2