Skip to content

Commit

Permalink
DEPR: add shims for util + TST: test that we work in downstream packa…
Browse files Browse the repository at this point in the history
…ges (#16250)
  • Loading branch information
jreback authored and jorisvandenbossche committed May 5, 2017
1 parent 9f33f3c commit 1d17618
Show file tree
Hide file tree
Showing 9 changed files with 159 additions and 14 deletions.
10 changes: 10 additions & 0 deletions ci/install_release_build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

# this requires cython to be installed

# this builds the release cleanly
rm -rf dist
git clean -xfd
python setup.py clean
python setup.py cython
python setup.py sdist --formats=gztar
26 changes: 13 additions & 13 deletions ci/install_travis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -123,12 +123,9 @@ if [ "$BUILD_TEST" ]; then

# build & install testing
echo ["Starting installation test."]
rm -rf dist
python setup.py clean
python setup.py build_ext --inplace
python setup.py sdist --formats=gztar
conda uninstall cython
pip install dist/*tar.gz || exit 1
bash ci/install_release_build.sh
conda uninstall -y cython
time pip install dist/*tar.gz || exit 1

else

Expand Down Expand Up @@ -162,14 +159,13 @@ if [ -e ${REQ} ]; then
time bash $REQ || exit 1
fi

# finish install if we are not doing a build-testk
if [ -z "$BUILD_TEST" ]; then
# remove any installed pandas package
# w/o removing anything else
echo
echo "[removing installed pandas]"
conda remove pandas --force

# remove any installed pandas package
# w/o removing anything else
echo
echo "[removing installed pandas]"
conda remove pandas --force
if [ -z "$BUILD_TEST" ]; then

# install our pandas
echo
Expand All @@ -178,6 +174,10 @@ if [ -z "$BUILD_TEST" ]; then

fi

echo
echo "[show pandas]"
conda list pandas

echo
echo "[done]"
exit 0
7 changes: 7 additions & 0 deletions ci/requirements-2.7_BUILD_TEST.pip
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
xarray
geopandas
seaborn
pandas_gbq
pandas_datareader
statsmodels
scikit-learn
7 changes: 7 additions & 0 deletions ci/requirements-2.7_BUILD_TEST.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

source activate pandas

echo "install 27 BUILD_TEST"

conda install -n pandas -c conda-forge pyarrow dask
85 changes: 85 additions & 0 deletions pandas/tests/test_downstream.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
"""
Testing that we work in the downstream packages
"""
import pytest
import numpy as np # noqa
from pandas import DataFrame
from pandas.util import testing as tm


@pytest.fixture
def df():
return DataFrame({'A': [1, 2, 3]})


def test_dask(df):

toolz = pytest.importorskip('toolz') # noqa
dask = pytest.importorskip('dask') # noqa

import dask.dataframe as dd

ddf = dd.from_pandas(df, npartitions=3)
assert ddf.A is not None
assert ddf.compute() is not None


def test_xarray(df):

xarray = pytest.importorskip('xarray') # noqa

assert df.to_xarray() is not None


def test_statsmodels():

statsmodels = pytest.importorskip('statsmodels') # noqa
import statsmodels.api as sm
import statsmodels.formula.api as smf
df = sm.datasets.get_rdataset("Guerry", "HistData").data
smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=df).fit()


def test_scikit_learn(df):

sklearn = pytest.importorskip('sklearn') # noqa
from sklearn import svm, datasets

digits = datasets.load_digits()
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(digits.data[:-1], digits.target[:-1])
clf.predict(digits.data[-1:])


def test_seaborn():

seaborn = pytest.importorskip('seaborn')
tips = seaborn.load_dataset("tips")
seaborn.stripplot(x="day", y="total_bill", data=tips)


def test_pandas_gbq(df):

pandas_gbq = pytest.importorskip('pandas-gbq') # noqa


@tm.network
def test_pandas_datareader():

pandas_datareader = pytest.importorskip('pandas-datareader') # noqa
pandas_datareader.get_data_yahoo('AAPL')


def test_geopandas():

geopandas = pytest.importorskip('geopandas') # noqa
fp = geopandas.datasets.get_path('naturalearth_lowres')
assert geopandas.read_file(fp) is not None


def test_pyarrow(df):

pyarrow = pytest.importorskip('pyarrow') # noqa
table = pyarrow.Table.from_pandas(df)
result = table.to_pandas()
tm.assert_frame_equal(result, df)
8 changes: 8 additions & 0 deletions pandas/types/common.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import warnings

warnings.warn("pandas.types.common is deprecated and will be "
"removed in a future version, import "
"from pandas.api.types",
DeprecationWarning, stacklevel=3)

from pandas.core.dtypes.common import * # noqa
8 changes: 8 additions & 0 deletions pandas/util/decorators.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import warnings

warnings.warn("pandas.util.decorators is deprecated and will be "
"removed in a future version, import "
"from pandas.util",
DeprecationWarning, stacklevel=3)

from pandas.util._decorators import * # noqa
18 changes: 18 additions & 0 deletions pandas/util/hashing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import warnings
import sys

m = sys.modules['pandas.util.hashing']
for t in ['hash_pandas_object', 'hash_array']:

def outer(t=t):

def wrapper(*args, **kwargs):
from pandas import util
warnings.warn("pandas.util.hashing is deprecated and will be "
"removed in a future version, import "
"from pandas.util",
DeprecationWarning, stacklevel=3)
return getattr(util, t)(*args, **kwargs)
return wrapper

setattr(m, t, outer(t))
4 changes: 3 additions & 1 deletion scripts/build_dist.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ read -p "Ok to continue (y/n)? " answer
case ${answer:0:1} in
y|Y )
echo "Building distribution"
rm -rf dist
git clean -xfd
python setup.py clean
python setup.py build_ext --inplace
python setup.py cython
python setup.py sdist --formats=gztar
;;
* )
Expand Down

0 comments on commit 1d17618

Please sign in to comment.