diff --git a/.travis.yml b/.travis.yml index e4dab4eb53afb..4e25380a7d941 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,33 +34,32 @@ matrix: - os: osx language: generic env: - - JOB="3.5_OSX" TEST_ARGS="--skip-slow --skip-network" + - JOB="3.5, OSX" ENV_FILE="ci/travis-35-osx.yaml" TEST_ARGS="--skip-slow --skip-network" - dist: trusty env: - - JOB="2.7_LOCALE" LOCALE_OVERRIDE="zh_CN.UTF-8" SLOW=true + - JOB="2.7, locale, slow, old NumPy" ENV_FILE="ci/travis-27-locale.yaml" LOCALE_OVERRIDE="zh_CN.UTF-8" SLOW=true addons: apt: packages: - language-pack-zh-hans - dist: trusty env: - - JOB="2.7" TEST_ARGS="--skip-slow" LINT=true + - JOB="2.7, lint" ENV_FILE="ci/travis-27.yaml" TEST_ARGS="--skip-slow" LINT=true addons: apt: packages: - python-gtk2 - # In allow_failures - dist: trusty env: - - JOB="3.6" TEST_ARGS="--skip-slow --skip-network" PANDAS_TESTING_MODE="deprecate" CONDA_FORGE=true COVERAGE=true + - JOB="3.6, coverage" ENV_FILE="ci/travis-36.yaml" TEST_ARGS="--skip-slow --skip-network" PANDAS_TESTING_MODE="deprecate" COVERAGE=true # In allow_failures - dist: trusty env: - - JOB="3.6_SLOW" SLOW=true + - JOB="3.6, slow" ENV_FILE="ci/travis-36-slow.yaml" SLOW=true # In allow_failures - dist: trusty env: - - JOB="3.6_NUMPY_DEV" TEST_ARGS="--skip-slow --skip-network" PANDAS_TESTING_MODE="deprecate" + - JOB="3.6, NumPy dev" ENV_FILE="ci/travis-36-numpydev.yaml" TEST_ARGS="--skip-slow --skip-network" PANDAS_TESTING_MODE="deprecate" addons: apt: packages: @@ -68,21 +67,21 @@ matrix: # In allow_failures - dist: trusty env: - - JOB="3.6_DOC" DOC=true + - JOB="3.6, doc" ENV_FILE="ci/travis-36-doc.yaml" DOC=true allow_failures: - dist: trusty env: - - JOB="3.6_SLOW" SLOW=true + - JOB="3.6, slow" ENV_FILE="ci/travis-36-slow.yaml" SLOW=true - dist: trusty env: - - JOB="3.6_NUMPY_DEV" TEST_ARGS="--skip-slow --skip-network" PANDAS_TESTING_MODE="deprecate" + - JOB="3.6, NumPy dev" ENV_FILE="ci/travis-36-numpydev.yaml" TEST_ARGS="--skip-slow --skip-network" PANDAS_TESTING_MODE="deprecate" addons: apt: packages: - xsel - dist: trusty env: - - JOB="3.6_DOC" DOC=true + - JOB="3.6, doc" ENV_FILE="ci/travis-36-doc.yaml" DOC=true before_install: - echo "before_install" diff --git a/appveyor.yml b/appveyor.yml index ba001208864a8..f70fc829ec971 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -73,19 +73,12 @@ install: - cmd: conda info -a # create our env - - cmd: conda create -n pandas python=%PYTHON_VERSION% cython pytest>=3.1.0 pytest-xdist + - cmd: conda env create -q -n pandas --file=ci\appveyor-%CONDA_PY%.yaml - cmd: activate pandas - - cmd: pip install moto - - SET REQ=ci\requirements-%PYTHON_VERSION%_WIN.run - - cmd: echo "installing requirements from %REQ%" - - cmd: conda install -n pandas --file=%REQ% - cmd: conda list -n pandas - - cmd: echo "installing requirements from %REQ% - done" - - # add some pip only reqs to the env - - SET REQ=ci\requirements-%PYTHON_VERSION%_WIN.pip - - cmd: echo "installing requirements from %REQ%" - - cmd: pip install -Ur %REQ% + # uninstall pandas if it's present + - cmd: conda remove pandas -y --force & exit 0 + - cmd: pip uninstall -y pandas & exit 0 # build em using the local source checkout in the correct windows env - cmd: '%CMD_IN_ENV% python setup.py build_ext --inplace' diff --git a/ci/appveyor-27.yaml b/ci/appveyor-27.yaml new file mode 100644 index 0000000000000..84107c605b14f --- /dev/null +++ b/ci/appveyor-27.yaml @@ -0,0 +1,29 @@ +name: pandas +channels: + - defaults + - conda-forge +dependencies: + - beautifulsoup4 + - bottleneck + - dateutil + - html5lib + - jinja2=2.8 + - lxml + - matplotlib + - numexpr + - numpy=1.10* + - openpyxl + - pytables==3.2.2 + - python=2.7.* + - pytz + - s3fs + - scipy + - sqlalchemy + - xlrd + - xlsxwriter + - xlwt + # universal + - cython + - pytest + - pytest-xdist + - moto diff --git a/ci/appveyor-36.yaml b/ci/appveyor-36.yaml new file mode 100644 index 0000000000000..5e370de39958a --- /dev/null +++ b/ci/appveyor-36.yaml @@ -0,0 +1,27 @@ +name: pandas +channels: + - defaults + - conda-forge +dependencies: + - blosc + - bottleneck + - fastparquet + - feather-format + - matplotlib + - numexpr + - numpy=1.13* + - openpyxl + - pyarrow + - pytables + - python-dateutil + - python=3.6.* + - pytz + - scipy + - thrift=0.10* + - xlrd + - xlsxwriter + - xlwt + # universal + - cython + - pytest + - pytest-xdist diff --git a/ci/circle-27-compat.yaml b/ci/circle-27-compat.yaml new file mode 100644 index 0000000000000..81a48d4edf11c --- /dev/null +++ b/ci/circle-27-compat.yaml @@ -0,0 +1,28 @@ +name: pandas +channels: + - defaults + - conda-forge +dependencies: + - bottleneck=1.0.0 + - cython=0.24 + - jinja2=2.8 + - numexpr=2.4.4 # we test that we correctly don't use an unsupported numexpr + - numpy=1.9.2 + - openpyxl + - psycopg2 + - pytables=3.2.2 + - python-dateutil=2.5.0 + - python=2.7* + - pytz=2013b + - scipy=0.14.0 + - sqlalchemy=0.7.8 + - xlrd=0.9.2 + - xlsxwriter=0.5.2 + - xlwt=0.7.5 + # universal + - pytest + - pytest-xdist + - pip: + - html5lib==1.0b2 + - beautifulsoup4==4.2.1 + - pymysql==0.6.0 diff --git a/ci/circle-35-ascii.yaml b/ci/circle-35-ascii.yaml new file mode 100644 index 0000000000000..602c414b49bb2 --- /dev/null +++ b/ci/circle-35-ascii.yaml @@ -0,0 +1,13 @@ +name: pandas +channels: + - defaults +dependencies: + - cython + - nomkl + - numpy + - python-dateutil + - python=3.5* + - pytz + # universal + - pytest + - pytest-xdist diff --git a/ci/circle-36-locale.yaml b/ci/circle-36-locale.yaml new file mode 100644 index 0000000000000..cc852c1e2aeeb --- /dev/null +++ b/ci/circle-36-locale.yaml @@ -0,0 +1,33 @@ +name: pandas +channels: + - defaults + - conda-forge +dependencies: + - beautifulsoup4 + - cython + - html5lib + - ipython + - jinja2 + - lxml + - matplotlib + - nomkl + - numexpr + - numpy + - openpyxl + - psycopg2 + - pymysql + - pytables + - python-dateutil + - python=3.6* + - pytz + - s3fs + - scipy + - sqlalchemy + - xarray + - xlrd + - xlsxwriter + - xlwt + # universal + - pytest + - pytest-xdist + - moto diff --git a/ci/circle-36-locale_slow.yaml b/ci/circle-36-locale_slow.yaml new file mode 100644 index 0000000000000..cc852c1e2aeeb --- /dev/null +++ b/ci/circle-36-locale_slow.yaml @@ -0,0 +1,33 @@ +name: pandas +channels: + - defaults + - conda-forge +dependencies: + - beautifulsoup4 + - cython + - html5lib + - ipython + - jinja2 + - lxml + - matplotlib + - nomkl + - numexpr + - numpy + - openpyxl + - psycopg2 + - pymysql + - pytables + - python-dateutil + - python=3.6* + - pytz + - s3fs + - scipy + - sqlalchemy + - xarray + - xlrd + - xlsxwriter + - xlwt + # universal + - pytest + - pytest-xdist + - moto diff --git a/ci/install_circle.sh b/ci/install_circle.sh index fd79f907625e9..5ffff84c88488 100755 --- a/ci/install_circle.sh +++ b/ci/install_circle.sh @@ -46,10 +46,6 @@ echo "[environmental variable file]" cat $ENVS_FILE source $ENVS_FILE -export REQ_BUILD=ci/requirements-${JOB}.build -export REQ_RUN=ci/requirements-${JOB}.run -export REQ_PIP=ci/requirements-${JOB}.pip - # edit the locale override if needed if [ -n "$LOCALE_OVERRIDE" ]; then echo "[Adding locale to the first line of pandas/__init__.py]" @@ -62,25 +58,23 @@ if [ -n "$LOCALE_OVERRIDE" ]; then fi # create envbuild deps -echo "[create env: ${REQ_BUILD}]" -time conda create -n pandas -q --file=${REQ_BUILD} || exit 1 -time conda install -n pandas pytest>=3.1.0 || exit 1 +echo "[create env]" +time conda env create -q -n pandas --file="${ENV_FILE}" || exit 1 source activate pandas -time pip install moto || exit 1 + +# remove any installed pandas package +# w/o removing anything else +echo +echo "[removing installed pandas]" +conda remove pandas -y --force +pip uninstall -y pandas # build but don't install echo "[build em]" time python setup.py build_ext --inplace || exit 1 -# we may have run installations -echo "[conda installs: ${REQ_RUN}]" -if [ -e ${REQ_RUN} ]; then - time conda install -q --file=${REQ_RUN} || exit 1 -fi +echo +echo "[show environment]" -# we may have additional pip installs -echo "[pip installs: ${REQ_PIP}]" -if [ -e ${REQ_PIP} ]; then - pip install -r $REQ_PIP -fi +conda list diff --git a/ci/install_travis.sh b/ci/install_travis.sh index 9ccb4baf25505..fd4a36f86db6c 100755 --- a/ci/install_travis.sh +++ b/ci/install_travis.sh @@ -50,16 +50,6 @@ conda config --set ssl_verify false || exit 1 conda config --set quiet true --set always_yes true --set changeps1 false || exit 1 conda update -q conda -echo -echo "[add channels]" -conda config --remove channels defaults || exit 1 -conda config --add channels defaults || exit 1 - -if [ "$CONDA_FORGE" ]; then - # add conda-forge channel as priority - conda config --add channels conda-forge || exit 1 -fi - # Useful for debugging any issues with conda conda info -a || exit 1 @@ -90,55 +80,10 @@ echo echo "[create env]" # create our environment -REQ="ci/requirements-${JOB}.build" -time conda create -n pandas --file=${REQ} || exit 1 +time conda env create -q -n pandas --file="${ENV_FILE}" || exit 1 source activate pandas -# may have addtl installation instructions for this build -echo -echo "[build addtl installs]" -REQ="ci/requirements-${JOB}.build.sh" -if [ -e ${REQ} ]; then - time bash $REQ || exit 1 -fi - -time conda install -n pandas pytest>=3.1.0 -time pip install -q pytest-xdist moto - -if [ "$LINT" ]; then - conda install flake8=3.4.1 - pip install cpplint -fi - -if [ "$COVERAGE" ]; then - pip install coverage pytest-cov -fi - -# we may have run installations -echo -echo "[conda installs]" -REQ="ci/requirements-${JOB}.run" -if [ -e ${REQ} ]; then - time conda install -n pandas --file=${REQ} || exit 1 -fi - -# we may have additional pip installs -echo -echo "[pip installs]" -REQ="ci/requirements-${JOB}.pip" -if [ -e ${REQ} ]; then - pip install -r $REQ -fi - -# may have addtl installation instructions for this build -echo -echo "[addtl installs]" -REQ="ci/requirements-${JOB}.sh" -if [ -e ${REQ} ]; then - time bash $REQ || exit 1 -fi - # remove any installed pandas package # w/o removing anything else echo @@ -156,8 +101,8 @@ echo "[running setup.py develop]" python setup.py develop || exit 1 echo -echo "[show pandas]" -conda list pandas +echo "[show environment]" +conda list echo echo "[done]" diff --git a/ci/requirements-2.7.build b/ci/requirements-2.7.build deleted file mode 100644 index 17d34f3895c64..0000000000000 --- a/ci/requirements-2.7.build +++ /dev/null @@ -1,6 +0,0 @@ -python=2.7* -python-dateutil=2.5.0 -pytz=2013b -nomkl -numpy=1.13* -cython=0.24 diff --git a/ci/requirements-2.7.pip b/ci/requirements-2.7.pip deleted file mode 100644 index 876d9e978fa84..0000000000000 --- a/ci/requirements-2.7.pip +++ /dev/null @@ -1,10 +0,0 @@ -blosc -pandas-gbq -html5lib -beautifulsoup4 -pathlib -backports.lzma -py -PyCrypto -mock -ipython diff --git a/ci/requirements-2.7.run b/ci/requirements-2.7.run deleted file mode 100644 index 7c10b98fb6e14..0000000000000 --- a/ci/requirements-2.7.run +++ /dev/null @@ -1,20 +0,0 @@ -python-dateutil=2.5.0 -pytz=2013b -numpy -xlwt=0.7.5 -numexpr -pytables -matplotlib -openpyxl=2.4.0 -xlrd=0.9.2 -sqlalchemy=0.9.6 -lxml -scipy -xlsxwriter=0.5.2 -s3fs -bottleneck -psycopg2 -patsy -pymysql=0.6.3 -jinja2=2.8 -xarray=0.8.0 diff --git a/ci/requirements-2.7.sh b/ci/requirements-2.7.sh deleted file mode 100644 index 95169e5dcce57..0000000000000 --- a/ci/requirements-2.7.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -source activate pandas - -echo "install 27" - -conda install -n pandas -c conda-forge feather-format pyarrow=0.4.1 jemalloc=4.5.0.post fastparquet diff --git a/ci/requirements-2.7_COMPAT.build b/ci/requirements-2.7_COMPAT.build deleted file mode 100644 index 0a83a7346e8b5..0000000000000 --- a/ci/requirements-2.7_COMPAT.build +++ /dev/null @@ -1,5 +0,0 @@ -python=2.7* -numpy=1.9.2 -cython=0.24 -python-dateutil=2.5.0 -pytz=2013b diff --git a/ci/requirements-2.7_COMPAT.pip b/ci/requirements-2.7_COMPAT.pip deleted file mode 100644 index 0e154dbc07525..0000000000000 --- a/ci/requirements-2.7_COMPAT.pip +++ /dev/null @@ -1,4 +0,0 @@ -html5lib==1.0b2 -beautifulsoup4==4.2.1 -openpyxl -argparse diff --git a/ci/requirements-2.7_COMPAT.run b/ci/requirements-2.7_COMPAT.run deleted file mode 100644 index c3daed6e6e1da..0000000000000 --- a/ci/requirements-2.7_COMPAT.run +++ /dev/null @@ -1,14 +0,0 @@ -numpy=1.9.2 -python-dateutil=2.5.0 -pytz=2013b -scipy=0.14.0 -xlwt=0.7.5 -xlrd=0.9.2 -bottleneck=1.0.0 -numexpr=2.4.4 # we test that we correctly don't use an unsupported numexpr -pytables=3.2.2 -psycopg2 -pymysql=0.6.0 -sqlalchemy=0.7.8 -xlsxwriter=0.5.2 -jinja2=2.8 diff --git a/ci/requirements-2.7_LOCALE.build b/ci/requirements-2.7_LOCALE.build deleted file mode 100644 index a6f2e25387910..0000000000000 --- a/ci/requirements-2.7_LOCALE.build +++ /dev/null @@ -1,5 +0,0 @@ -python=2.7* -python-dateutil -pytz=2013b -numpy=1.9.2 -cython=0.24 diff --git a/ci/requirements-2.7_LOCALE.pip b/ci/requirements-2.7_LOCALE.pip deleted file mode 100644 index 1b825bbf492ca..0000000000000 --- a/ci/requirements-2.7_LOCALE.pip +++ /dev/null @@ -1,3 +0,0 @@ -html5lib==1.0b2 -beautifulsoup4==4.2.1 -blosc diff --git a/ci/requirements-2.7_LOCALE.run b/ci/requirements-2.7_LOCALE.run deleted file mode 100644 index 0a809a7dd6e5d..0000000000000 --- a/ci/requirements-2.7_LOCALE.run +++ /dev/null @@ -1,12 +0,0 @@ -python-dateutil -pytz -numpy=1.9.2 -xlwt=0.7.5 -openpyxl=2.4.0 -xlsxwriter=0.5.2 -xlrd=0.9.2 -bottleneck=1.0.0 -matplotlib=1.4.3 -sqlalchemy=0.8.1 -lxml -scipy diff --git a/ci/requirements-2.7_WIN.pip b/ci/requirements-2.7_WIN.pip deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ci/requirements-2.7_WIN.run b/ci/requirements-2.7_WIN.run deleted file mode 100644 index c4ca7fc736bb1..0000000000000 --- a/ci/requirements-2.7_WIN.run +++ /dev/null @@ -1,18 +0,0 @@ -dateutil -pytz -numpy=1.10* -xlwt -numexpr -pytables==3.2.2 -matplotlib -openpyxl -xlrd -sqlalchemy -lxml -scipy -xlsxwriter -s3fs -bottleneck -html5lib -beautifulsoup4 -jinja2=2.8 diff --git a/ci/requirements-3.5.build b/ci/requirements-3.5.build deleted file mode 100644 index f7befe3b31865..0000000000000 --- a/ci/requirements-3.5.build +++ /dev/null @@ -1,6 +0,0 @@ -python=3.5* -python-dateutil -pytz -nomkl -numpy -cython diff --git a/ci/requirements-3.5.pip b/ci/requirements-3.5.pip deleted file mode 100644 index c9565f2173070..0000000000000 --- a/ci/requirements-3.5.pip +++ /dev/null @@ -1,2 +0,0 @@ -xarray==0.9.1 -pandas_gbq diff --git a/ci/requirements-3.5.run b/ci/requirements-3.5.run deleted file mode 100644 index 669cf437f2164..0000000000000 --- a/ci/requirements-3.5.run +++ /dev/null @@ -1,20 +0,0 @@ -pytz -numpy -openpyxl -xlsxwriter -xlrd -xlwt -scipy -numexpr -pytables -html5lib -lxml -matplotlib -jinja2 -bottleneck -sqlalchemy -pymysql -psycopg2 -s3fs -beautifulsoup4 -ipython diff --git a/ci/requirements-3.5.sh b/ci/requirements-3.5.sh deleted file mode 100644 index 529e1e8742722..0000000000000 --- a/ci/requirements-3.5.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -source activate pandas - -echo "install 35" - -# pip install python-dateutil to get latest -conda remove -n pandas python-dateutil --force -pip install python-dateutil - -conda install -n pandas -c conda-forge feather-format pyarrow=0.7.1 diff --git a/ci/requirements-3.5_ASCII.build b/ci/requirements-3.5_ASCII.build deleted file mode 100644 index f7befe3b31865..0000000000000 --- a/ci/requirements-3.5_ASCII.build +++ /dev/null @@ -1,6 +0,0 @@ -python=3.5* -python-dateutil -pytz -nomkl -numpy -cython diff --git a/ci/requirements-3.5_ASCII.run b/ci/requirements-3.5_ASCII.run deleted file mode 100644 index b9d543f557d06..0000000000000 --- a/ci/requirements-3.5_ASCII.run +++ /dev/null @@ -1,3 +0,0 @@ -python-dateutil -pytz -numpy diff --git a/ci/requirements-3.5_OSX.build b/ci/requirements-3.5_OSX.build deleted file mode 100644 index f5bc01b67a20a..0000000000000 --- a/ci/requirements-3.5_OSX.build +++ /dev/null @@ -1,4 +0,0 @@ -python=3.5* -nomkl -numpy=1.10.4 -cython diff --git a/ci/requirements-3.5_OSX.pip b/ci/requirements-3.5_OSX.pip deleted file mode 100644 index d1fc1fe24a079..0000000000000 --- a/ci/requirements-3.5_OSX.pip +++ /dev/null @@ -1 +0,0 @@ -python-dateutil==2.5.3 diff --git a/ci/requirements-3.5_OSX.run b/ci/requirements-3.5_OSX.run deleted file mode 100644 index 1d83474d10f2f..0000000000000 --- a/ci/requirements-3.5_OSX.run +++ /dev/null @@ -1,16 +0,0 @@ -pytz -numpy=1.10.4 -openpyxl -xlsxwriter -xlrd -xlwt -numexpr -pytables -html5lib -lxml -matplotlib -jinja2 -bottleneck -xarray -s3fs -beautifulsoup4 diff --git a/ci/requirements-3.5_OSX.sh b/ci/requirements-3.5_OSX.sh deleted file mode 100644 index c2978b175968c..0000000000000 --- a/ci/requirements-3.5_OSX.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -source activate pandas - -echo "install 35_OSX" - -conda install -n pandas -c conda-forge feather-format==0.3.1 fastparquet diff --git a/ci/requirements-3.6.build b/ci/requirements-3.6.build deleted file mode 100644 index 1c4b46aea3865..0000000000000 --- a/ci/requirements-3.6.build +++ /dev/null @@ -1,6 +0,0 @@ -python=3.6* -python-dateutil -pytz -nomkl -numpy -cython diff --git a/ci/requirements-3.6.pip b/ci/requirements-3.6.pip deleted file mode 100644 index 753a60d6c119a..0000000000000 --- a/ci/requirements-3.6.pip +++ /dev/null @@ -1 +0,0 @@ -brotlipy diff --git a/ci/requirements-3.6.run b/ci/requirements-3.6.run deleted file mode 100644 index 822144a80bc9a..0000000000000 --- a/ci/requirements-3.6.run +++ /dev/null @@ -1,25 +0,0 @@ -python-dateutil -pytz -numpy -scipy -openpyxl -xlsxwriter -xlrd -xlwt -numexpr -pytables -matplotlib -lxml -html5lib -jinja2 -sqlalchemy -pymysql -feather-format -pyarrow -psycopg2 -python-snappy -fastparquet -beautifulsoup4 -s3fs -xarray -ipython diff --git a/ci/requirements-3.6.sh b/ci/requirements-3.6.sh deleted file mode 100644 index f5c3dbf59a29d..0000000000000 --- a/ci/requirements-3.6.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -source activate pandas - -echo "[install 3.6 downstream deps]" - -conda install -n pandas -c conda-forge pandas-datareader xarray geopandas seaborn statsmodels scikit-learn dask diff --git a/ci/requirements-3.6_DOC.build b/ci/requirements-3.6_DOC.build deleted file mode 100644 index bc72eed2a0d4e..0000000000000 --- a/ci/requirements-3.6_DOC.build +++ /dev/null @@ -1,5 +0,0 @@ -python=3.6* -python-dateutil -pytz -numpy=1.13* -cython diff --git a/ci/requirements-3.6_DOC.run b/ci/requirements-3.6_DOC.run deleted file mode 100644 index 084f38ce17eb2..0000000000000 --- a/ci/requirements-3.6_DOC.run +++ /dev/null @@ -1,25 +0,0 @@ -ipython -ipykernel -ipywidgets -sphinx -nbconvert -nbformat -notebook -matplotlib -seaborn -scipy -lxml -beautifulsoup4 -html5lib -pytables -python-snappy -openpyxl -xlrd -xlwt -xlsxwriter -sqlalchemy -numexpr -bottleneck -statsmodels -xarray -pyqt diff --git a/ci/requirements-3.6_DOC.sh b/ci/requirements-3.6_DOC.sh deleted file mode 100644 index aec0f62148622..0000000000000 --- a/ci/requirements-3.6_DOC.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -source activate pandas - -echo "[install DOC_BUILD deps]" - -pip install pandas-gbq - -conda install -n pandas -c conda-forge feather-format pyarrow nbsphinx pandoc fastparquet - -conda install -n pandas -c r r rpy2 --yes diff --git a/ci/requirements-3.6_LOCALE.build b/ci/requirements-3.6_LOCALE.build deleted file mode 100644 index 1c4b46aea3865..0000000000000 --- a/ci/requirements-3.6_LOCALE.build +++ /dev/null @@ -1,6 +0,0 @@ -python=3.6* -python-dateutil -pytz -nomkl -numpy -cython diff --git a/ci/requirements-3.6_LOCALE.pip b/ci/requirements-3.6_LOCALE.pip deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ci/requirements-3.6_LOCALE.run b/ci/requirements-3.6_LOCALE.run deleted file mode 100644 index ad54284c6f7e3..0000000000000 --- a/ci/requirements-3.6_LOCALE.run +++ /dev/null @@ -1,22 +0,0 @@ -python-dateutil -pytz -numpy -scipy -openpyxl -xlsxwriter -xlrd -xlwt -numexpr -pytables -matplotlib -lxml -html5lib -jinja2 -sqlalchemy -pymysql -# feather-format (not available on defaults ATM) -psycopg2 -beautifulsoup4 -s3fs -xarray -ipython diff --git a/ci/requirements-3.6_LOCALE_SLOW.build b/ci/requirements-3.6_LOCALE_SLOW.build deleted file mode 100644 index 1c4b46aea3865..0000000000000 --- a/ci/requirements-3.6_LOCALE_SLOW.build +++ /dev/null @@ -1,6 +0,0 @@ -python=3.6* -python-dateutil -pytz -nomkl -numpy -cython diff --git a/ci/requirements-3.6_LOCALE_SLOW.pip b/ci/requirements-3.6_LOCALE_SLOW.pip deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ci/requirements-3.6_LOCALE_SLOW.run b/ci/requirements-3.6_LOCALE_SLOW.run deleted file mode 100644 index ad54284c6f7e3..0000000000000 --- a/ci/requirements-3.6_LOCALE_SLOW.run +++ /dev/null @@ -1,22 +0,0 @@ -python-dateutil -pytz -numpy -scipy -openpyxl -xlsxwriter -xlrd -xlwt -numexpr -pytables -matplotlib -lxml -html5lib -jinja2 -sqlalchemy -pymysql -# feather-format (not available on defaults ATM) -psycopg2 -beautifulsoup4 -s3fs -xarray -ipython diff --git a/ci/requirements-3.6_NUMPY_DEV.build b/ci/requirements-3.6_NUMPY_DEV.build deleted file mode 100644 index 336fbe86b57d8..0000000000000 --- a/ci/requirements-3.6_NUMPY_DEV.build +++ /dev/null @@ -1,2 +0,0 @@ -python=3.6* -pytz diff --git a/ci/requirements-3.6_NUMPY_DEV.build.sh b/ci/requirements-3.6_NUMPY_DEV.build.sh deleted file mode 100644 index fd79142c5cebb..0000000000000 --- a/ci/requirements-3.6_NUMPY_DEV.build.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -source activate pandas - -echo "install numpy master wheel" - -# remove the system installed numpy -pip uninstall numpy -y - -# install numpy wheel from master -PRE_WHEELS="https://7933911d6844c6c53a7d-47bd50c35cd79bd838daf386af554a83.ssl.cf2.rackcdn.com" -pip install --pre --upgrade --timeout=60 -f $PRE_WHEELS numpy scipy - -# install dateutil from master -pip install -U git+git://github.com/dateutil/dateutil.git - -# cython via pip -pip install cython - -true diff --git a/ci/requirements-3.6_NUMPY_DEV.pip b/ci/requirements-3.6_NUMPY_DEV.pip deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ci/requirements-3.6_NUMPY_DEV.run b/ci/requirements-3.6_NUMPY_DEV.run deleted file mode 100644 index af44f198c687e..0000000000000 --- a/ci/requirements-3.6_NUMPY_DEV.run +++ /dev/null @@ -1 +0,0 @@ -pytz diff --git a/ci/requirements-3.6_SLOW.build b/ci/requirements-3.6_SLOW.build deleted file mode 100644 index bdcfe28105866..0000000000000 --- a/ci/requirements-3.6_SLOW.build +++ /dev/null @@ -1,5 +0,0 @@ -python=3.6* -python-dateutil -pytz -numpy -cython diff --git a/ci/requirements-3.6_SLOW.pip b/ci/requirements-3.6_SLOW.pip deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ci/requirements-3.6_SLOW.run b/ci/requirements-3.6_SLOW.run deleted file mode 100644 index ab5253ad99e51..0000000000000 --- a/ci/requirements-3.6_SLOW.run +++ /dev/null @@ -1,19 +0,0 @@ -python-dateutil -pytz -numpy -matplotlib -scipy -patsy -xlwt -openpyxl -xlsxwriter -xlrd -numexpr -pytables -sqlalchemy -lxml -s3fs -psycopg2 -pymysql -html5lib -beautifulsoup4 diff --git a/ci/requirements-3.6_WIN.pip b/ci/requirements-3.6_WIN.pip deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ci/requirements-3.6_WIN.run b/ci/requirements-3.6_WIN.run deleted file mode 100644 index 3042888763863..0000000000000 --- a/ci/requirements-3.6_WIN.run +++ /dev/null @@ -1,17 +0,0 @@ -python-dateutil -pytz -numpy=1.13* -bottleneck -openpyxl -xlsxwriter -xlrd -xlwt -scipy -feather-format -numexpr -pytables -matplotlib -blosc -thrift=0.10* -fastparquet -pyarrow diff --git a/ci/travis-27-locale.yaml b/ci/travis-27-locale.yaml new file mode 100644 index 0000000000000..1312c1296d46a --- /dev/null +++ b/ci/travis-27-locale.yaml @@ -0,0 +1,27 @@ +name: pandas +channels: + - defaults + - conda-forge +dependencies: + - bottleneck=1.0.0 + - cython=0.24 + - lxml + - matplotlib=1.4.3 + - numpy=1.9.2 + - openpyxl=2.4.0 + - python-dateutil + - python-blosc + - python=2.7 + - pytz + - pytz=2013b + - scipy + - sqlalchemy=0.8.1 + - xlrd=0.9.2 + - xlsxwriter=0.5.2 + - xlwt=0.7.5 + # universal + - pytest + - pytest-xdist + - pip: + - html5lib==1.0b2 + - beautifulsoup4==4.2.1 diff --git a/ci/travis-27.yaml b/ci/travis-27.yaml new file mode 100644 index 0000000000000..22b993a2da886 --- /dev/null +++ b/ci/travis-27.yaml @@ -0,0 +1,49 @@ +name: pandas +channels: + - defaults + - conda-forge +dependencies: + - beautifulsoup4 + - bottleneck + - cython=0.24 + - fastparquet + - feather-format + - flake8=3.4.1 + - html5lib + - ipython + - jemalloc=4.5.0.post + - jinja2=2.8 + - lxml + - matplotlib + - mock + - nomkl + - numexpr + - numpy=1.13* + - openpyxl=2.4.0 + - patsy + - psycopg2 + - py + - pyarrow=0.4.1 + - PyCrypto + - pymysql=0.6.3 + - pytables + - python-blosc + - python-dateutil=2.5.0 + - python=2.7* + - pytz=2013b + - s3fs + - scipy + - sqlalchemy=0.9.6 + - xarray=0.8.0 + - xlrd=0.9.2 + - xlsxwriter=0.5.2 + - xlwt=0.7.5 + # universal + - pytest + - pytest-xdist + - moto + - pip: + - backports.lzma + - cpplint + - pandas-gbq + - pathlib diff --git a/ci/travis-35-osx.yaml b/ci/travis-35-osx.yaml new file mode 100644 index 0000000000000..e74abac4c9775 --- /dev/null +++ b/ci/travis-35-osx.yaml @@ -0,0 +1,27 @@ +name: pandas +channels: + - defaults +dependencies: + - beautifulsoup4 + - bottleneck + - cython + - html5lib + - jinja2 + - lxml + - matplotlib + - nomkl + - numexpr + - numpy=1.10.4 + - openpyxl + - pytables + - python=3.5* + - pytz + - xarray + - xlrd + - xlsxwriter + - xlwt + # universal + - pytest + - pytest-xdist + - pip: + - python-dateutil==2.5.3 diff --git a/ci/travis-36-doc.yaml b/ci/travis-36-doc.yaml new file mode 100644 index 0000000000000..c22dddbe0ba3f --- /dev/null +++ b/ci/travis-36-doc.yaml @@ -0,0 +1,45 @@ +name: pandas +channels: + - defaults + - conda-forge + - r +dependencies: + - beautifulsoup4 + - bottleneck + - cython + - fastparquet + - feather-format + - html5lib + - ipykernel + - ipython + - ipywidgets + - lxml + - matplotlib + - nbconvert + - nbformat + - nbsphinx + - notebook + - numexpr + - numpy=1.13* + - openpyxl + - pandoc + - pyqt + - pytables + - python-dateutil + - python-snappy + - python=3.6* + - pytz + - r + - rpy2 + - scipy + - seaborn + - sphinx + - sqlalchemy + - statsmodels + - xarray + - xlrd + - xlsxwriter + - xlwt + # universal + - pytest + - pytest-xdist diff --git a/ci/travis-36-numpydev.yaml b/ci/travis-36-numpydev.yaml new file mode 100644 index 0000000000000..455d65feb4242 --- /dev/null +++ b/ci/travis-36-numpydev.yaml @@ -0,0 +1,16 @@ +name: pandas +channels: + - defaults +dependencies: + - python=3.6* + - pytz + - Cython + # universal + - pytest + - pytest-xdist + - pip: + - "git+git://github.com/dateutil/dateutil.git" + - "-f https://7933911d6844c6c53a7d-47bd50c35cd79bd838daf386af554a83.ssl.cf2.rackcdn.com" + - "--pre" + - "numpy" + - "scipy" diff --git a/ci/travis-36-slow.yaml b/ci/travis-36-slow.yaml new file mode 100644 index 0000000000000..6c475dc48723c --- /dev/null +++ b/ci/travis-36-slow.yaml @@ -0,0 +1,30 @@ +name: pandas +channels: + - defaults + - conda-forge +dependencies: + - beautifulsoup4 + - cython + - html5lib + - lxml + - matplotlib + - numexpr + - numpy + - openpyxl + - patsy + - psycopg2 + - pymysql + - pytables + - python-dateutil + - python=3.6* + - pytz + - s3fs + - scipy + - sqlalchemy + - xlrd + - xlsxwriter + - xlwt + # universal + - pytest + - pytest-xdist + - moto diff --git a/ci/travis-36.yaml b/ci/travis-36.yaml new file mode 100644 index 0000000000000..fe057e714761e --- /dev/null +++ b/ci/travis-36.yaml @@ -0,0 +1,47 @@ +name: pandas +channels: + - defaults + - conda-forge +dependencies: + - beautifulsoup4 + - cython + - dask + - fastparquet + - feather-format + - geopandas + - html5lib + - ipython + - jinja2 + - lxml + - matplotlib + - nomkl + - numexpr + - numpy + - openpyxl + - pandas-datareader + - psycopg2 + - pyarrow + - pymysql + - pytables + - python-dateutil + - python-snappy + - python=3.6* + - pytz + - s3fs + - scikit-learn + - scipy + - seaborn + - sqlalchemy + - statsmodels + - xarray + - xlrd + - xlsxwriter + - xlwt + # universal + - pytest + - pytest-xdist + - pytest-cov + - moto + - pip: + - brotlipy + - coverage diff --git a/circle.yml b/circle.yml index 9d49145af54e3..66415defba6fe 100644 --- a/circle.yml +++ b/circle.yml @@ -21,13 +21,13 @@ dependencies: - > case $CIRCLE_NODE_INDEX in 0) - sudo apt-get install language-pack-it && ./ci/install_circle.sh JOB="2.7_COMPAT" LOCALE_OVERRIDE="it_IT.UTF-8" ;; + sudo apt-get install language-pack-it && ./ci/install_circle.sh JOB="2.7_COMPAT" ENV_FILE="ci/circle-27-compat.yaml" LOCALE_OVERRIDE="it_IT.UTF-8" ;; 1) - sudo apt-get install language-pack-zh-hans && ./ci/install_circle.sh JOB="3.6_LOCALE" LOCALE_OVERRIDE="zh_CN.UTF-8" ;; + sudo apt-get install language-pack-zh-hans && ./ci/install_circle.sh JOB="3.6_LOCALE" ENV_FILE="ci/circle-36-locale.yaml" LOCALE_OVERRIDE="zh_CN.UTF-8" ;; 2) - sudo apt-get install language-pack-zh-hans && ./ci/install_circle.sh JOB="3.6_LOCALE_SLOW" LOCALE_OVERRIDE="zh_CN.UTF-8" ;; + sudo apt-get install language-pack-zh-hans && ./ci/install_circle.sh JOB="3.6_LOCALE_SLOW" ENV_FILE="ci/circle-36-locale_slow.yaml" LOCALE_OVERRIDE="zh_CN.UTF-8" ;; 3) - ./ci/install_circle.sh JOB="3.5_ASCII" LOCALE_OVERRIDE="C" ;; + ./ci/install_circle.sh JOB="3.5_ASCII" ENV_FILE="ci/circle-35-ascii.yaml" LOCALE_OVERRIDE="C" ;; esac - ./ci/show_circle.sh diff --git a/pandas/tests/io/parser/test_network.py b/pandas/tests/io/parser/test_network.py index 416535aac3a4c..fdf45f307e953 100644 --- a/pandas/tests/io/parser/test_network.py +++ b/pandas/tests/io/parser/test_network.py @@ -183,7 +183,6 @@ def test_read_csv_handles_boto_s3_object(self, expected = read_csv(tips_file) tm.assert_frame_equal(result, expected) - @pytest.mark.xfail(reason="buggy s3 / moto interaction on CI: gh-20720") def test_read_csv_chunked_download(self, s3_resource, caplog): # 8 MB, S3FS usees 5MB chunks df = DataFrame(np.random.randn(100000, 4), columns=list('abcd')) diff --git a/pandas/tests/io/test_parquet.py b/pandas/tests/io/test_parquet.py index 41a1db57c954b..11cbea8ce6331 100644 --- a/pandas/tests/io/test_parquet.py +++ b/pandas/tests/io/test_parquet.py @@ -432,7 +432,6 @@ def test_categorical_unsupported(self, pa_lt_070): df = pd.DataFrame({'a': pd.Categorical(list('abc'))}) self.check_error_on_write(df, pa, NotImplementedError) - @pytest.mark.xfail(reason="buggy s3 / moto interaction on CI: gh-20720") def test_s3_roundtrip(self, df_compat, s3_resource, pa): # GH #19134 check_round_trip(df_compat, pa, @@ -499,7 +498,6 @@ def test_filter_row_groups(self, fp): result = read_parquet(path, fp, filters=[('a', '==', 0)]) assert len(result) == 1 - @pytest.mark.xfail(reason="buggy s3 / moto interaction on CI: gh-20720") def test_s3_roundtrip(self, df_compat, s3_resource, fp): # GH #19134 check_round_trip(df_compat, fp,