Skip to content

Commit

Permalink
MAINT: Fix pandas imports
Browse files Browse the repository at this point in the history
Modernize pandas compat imports to reflect min version
  • Loading branch information
bashtage committed Jul 8, 2019
1 parent cf81e42 commit 7188973
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 32 deletions.
38 changes: 14 additions & 24 deletions statsmodels/compat/pandas.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,25 @@

import pandas

__all__ = ['assert_frame_equal', 'assert_index_equal', 'assert_series_equal',
'data_klasses', 'frequencies', 'is_numeric_dtype', 'testing']

version = LooseVersion(pandas.__version__)
pandas_lte_0_19_2 = version <= LooseVersion('0.19.2')
pandas_gt_0_19_2 = version > LooseVersion('0.19.2')
pandas_ge_20_0 = version >= LooseVersion('0.20.0')
pandas_ge_25_0 = version >= LooseVersion('0.25.0')
pandas_lt_25_0 = version < LooseVersion('0.25.0')

try:
from pandas.api.types import is_numeric_dtype # noqa:F401
from pandas.api.types import is_numeric_dtype
except ImportError:
from pandas.core.common import is_numeric_dtype # noqa:F401

if pandas_ge_25_0:
from pandas.tseries import frequencies # noqa:F401
data_klasses = (pandas.Series, pandas.DataFrame)
elif pandas_ge_20_0:
try:
from pandas.tseries import offsets as frequencies
except ImportError:
from pandas.tseries import frequencies
data_klasses = (pandas.Series, pandas.DataFrame, pandas.Panel)
else:
try:
import pandas.tseries.frequencies as frequencies
except ImportError:
from pandas.core import datetools as frequencies # noqa

data_klasses = (pandas.Series, pandas.DataFrame, pandas.Panel,
pandas.WidePanel)
from pandas.core.common import is_numeric_dtype

try:
from pandas.tseries import offsets as frequencies
except ImportError:
from pandas.tseries import frequencies

data_klasses = (pandas.Series, pandas.DataFrame)
if pandas_lt_25_0:
data_klasses += (pandas.Panel,)

try:
import pandas.testing as testing
Expand Down
3 changes: 0 additions & 3 deletions statsmodels/graphics/tests/test_tsaplots.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import pytest

import statsmodels.api as sm
from statsmodels.compat.pandas import pandas_lte_0_19_2
from statsmodels.graphics.tsaplots import (plot_acf, plot_pacf, month_plot,
quarter_plot, seasonal_plot)
import statsmodels.tsa.arima_process as tsp
Expand Down Expand Up @@ -153,7 +152,6 @@ def test_plot_pacf_irregular(close_figures):
plot_pacf(pacf, ax=ax, alpha=None, zero=False)


@pytest.mark.skipif(pandas_lte_0_19_2, reason='pandas too old')
@pytest.mark.matplotlib
def test_plot_month(close_figures):
dta = sm.datasets.elnino.load_pandas().data
Expand All @@ -177,7 +175,6 @@ def test_plot_month(close_figures):
fig = month_plot(dta)


@pytest.mark.skipif(pandas_lte_0_19_2, reason='pandas too old')
@pytest.mark.matplotlib
def test_plot_quarter(close_figures):
dta = sm.datasets.macrodata.load_pandas().data
Expand Down
7 changes: 2 additions & 5 deletions statsmodels/tsa/vector_ar/tests/test_dynamic.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@

import numpy as np
import pandas as pd
import pytest
from numpy.testing import assert_allclose
from pandas.util.testing import assert_frame_equal, assert_series_equal

from statsmodels.compat.pandas import pandas_gt_0_19_2

pytestmark = pytest.mark.skipif(pandas_gt_0_19_2,
reason='Requires pandas <= 0.19.2')
pytestmark = pytest.mark.skip('Deprecated, pending removal. Reuqires pandas'
'< 0.19.2, which are unsupported.')

from statsmodels.tsa.vector_ar.dynamic import _window_ols # noqa:E402

Expand Down

0 comments on commit 7188973

Please sign in to comment.