From 83f25838ca3c8e03c867b19e90acea5027a7123d Mon Sep 17 00:00:00 2001 From: Fangchen Li Date: Sun, 4 Jul 2021 16:44:00 -0500 Subject: [PATCH] DEPS: drop Python 3.7 and NumPy 1.17 from tests (#41678) (#41989) --- .github/workflows/database.yml | 4 +- .github/workflows/posix.yml | 9 ++- .github/workflows/sdist.yml | 2 +- azure-pipelines.yml | 6 +- ci/azure/posix.yml | 6 +- ci/azure/windows.yml | 16 ++---- ci/deps/actions-37-locale_slow.yaml | 30 ---------- ci/deps/actions-37-minimum_versions.yaml | 31 ---------- ci/deps/actions-37.yaml | 28 ---------- ...-37-db-min.yaml => actions-38-db-min.yaml} | 23 ++++---- ...{actions-37-db.yaml => actions-38-db.yaml} | 11 ++-- ci/deps/actions-38-locale.yaml | 8 +-- ci/deps/actions-38-locale_slow.yaml | 30 ++++++++++ ci/deps/actions-38-minimum_versions.yaml | 31 ++++++++++ ci/deps/actions-38-slow.yaml | 8 +-- ci/deps/actions-38.yaml | 6 +- ...numpydev.yaml => actions-39-numpydev.yaml} | 6 +- ...ions-37-slow.yaml => actions-39-slow.yaml} | 9 ++- ci/deps/actions-39.yaml | 6 +- ...zure-macos-37.yaml => azure-macos-38.yaml} | 14 ++--- ci/deps/azure-windows-38.yaml | 14 ++--- ...-windows-37.yaml => azure-windows-39.yaml} | 16 +++--- ...cle-37-arm64.yaml => circle-38-arm64.yaml} | 6 +- doc/source/getting_started/install.rst | 48 ++++++++-------- doc/source/whatsnew/v1.4.0.rst | 56 ++++++++++++++++++- environment.yml | 29 +++++----- pandas/compat/_optional.py | 30 +++++----- pandas/compat/numpy/__init__.py | 2 +- pyproject.toml | 2 +- requirements-dev.txt | 29 +++++----- setup.cfg | 13 ++--- 31 files changed, 271 insertions(+), 258 deletions(-) delete mode 100644 ci/deps/actions-37-locale_slow.yaml delete mode 100644 ci/deps/actions-37-minimum_versions.yaml delete mode 100644 ci/deps/actions-37.yaml rename ci/deps/{actions-37-db-min.yaml => actions-38-db-min.yaml} (66%) rename ci/deps/{actions-37-db.yaml => actions-38-db.yaml} (84%) create mode 100644 ci/deps/actions-38-locale_slow.yaml create mode 100644 ci/deps/actions-38-minimum_versions.yaml rename ci/deps/{actions-38-numpydev.yaml => actions-39-numpydev.yaml} (84%) rename ci/deps/{actions-37-slow.yaml => actions-39-slow.yaml} (84%) rename ci/deps/{azure-macos-37.yaml => azure-macos-38.yaml} (73%) rename ci/deps/{azure-windows-37.yaml => azure-windows-39.yaml} (75%) rename ci/deps/{circle-37-arm64.yaml => circle-38-arm64.yaml} (78%) diff --git a/.github/workflows/database.yml b/.github/workflows/database.yml index 4b700c48979f7..54a55cc78914d 100644 --- a/.github/workflows/database.yml +++ b/.github/workflows/database.yml @@ -19,7 +19,7 @@ env: COVERAGE: true jobs: - Linux_py37_IO: + Linux_py38_IO: runs-on: ubuntu-latest defaults: run: @@ -27,7 +27,7 @@ jobs: strategy: matrix: - ENV_FILE: [ci/deps/actions-37-db-min.yaml, ci/deps/actions-37-db.yaml] + ENV_FILE: [ci/deps/actions-38-db-min.yaml, ci/deps/actions-38-db.yaml] fail-fast: false concurrency: diff --git a/.github/workflows/posix.yml b/.github/workflows/posix.yml index e831bd0f8c181..42a8c0052246a 100644 --- a/.github/workflows/posix.yml +++ b/.github/workflows/posix.yml @@ -25,14 +25,13 @@ jobs: strategy: matrix: settings: [ - [actions-37-minimum_versions.yaml, "not slow and not network and not clipboard", "", "", "", "", ""], - [actions-37.yaml, "not slow and not network and not clipboard", "", "", "", "", ""], - [actions-37-locale_slow.yaml, "slow", "language-pack-it xsel", "it_IT.utf8", "it_IT.utf8", "", ""], - [actions-37-slow.yaml, "slow", "", "", "", "", ""], + [actions-38-minimum_versions.yaml, "not slow and not network and not clipboard", "", "", "", "", ""], + [actions-38-locale_slow.yaml, "slow", "language-pack-it xsel", "it_IT.utf8", "it_IT.utf8", "", ""], [actions-38.yaml, "not slow and not network and not clipboard", "", "", "", "", ""], [actions-38-slow.yaml, "slow", "", "", "", "", ""], [actions-38-locale.yaml, "not slow and not network", "language-pack-zh-hans xsel", "zh_CN.utf8", "zh_CN.utf8", "", ""], - [actions-38-numpydev.yaml, "not slow and not network", "xsel", "", "", "deprecate", "-W error"], + [actions-39-slow.yaml, "slow", "", "", "", "", ""], + [actions-39-numpydev.yaml, "not slow and not network", "xsel", "", "", "deprecate", "-W error"], [actions-39.yaml, "not slow and not network and not clipboard", "", "", "", "", ""] ] fail-fast: false diff --git a/.github/workflows/sdist.yml b/.github/workflows/sdist.yml index 0c2e30a74bbdb..22029eb2f7481 100644 --- a/.github/workflows/sdist.yml +++ b/.github/workflows/sdist.yml @@ -23,7 +23,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.7", "3.8", "3.9"] + python-version: ["3.8", "3.9"] steps: - uses: actions/checkout@v2 diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5ba4471c8d303..98a32d4e6af2c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -29,7 +29,7 @@ jobs: name: Windows vmImage: vs2017-win2016 -- job: py37_32bit +- job: py38_32bit pool: vmImage: ubuntu-18.04 @@ -38,7 +38,7 @@ jobs: docker pull quay.io/pypa/manylinux2014_i686 docker run -v $(pwd):/pandas quay.io/pypa/manylinux2014_i686 \ /bin/bash -xc "cd pandas && \ - /opt/python/cp37-cp37m/bin/python -m venv ~/virtualenvs/pandas-dev && \ + /opt/python/cp38-cp38/bin/python -m venv ~/virtualenvs/pandas-dev && \ . ~/virtualenvs/pandas-dev/bin/activate && \ python -m pip install --no-deps -U pip wheel setuptools && \ pip install cython numpy python-dateutil pytz pytest pytest-xdist hypothesis pytest-azurepipelines && \ @@ -52,4 +52,4 @@ jobs: inputs: testResultsFiles: '**/test-*.xml' failTaskOnFailedTests: true - testRunTitle: 'Publish test results for Python 3.7-32 bit full Linux' + testRunTitle: 'Publish test results for Python 3.8-32 bit full Linux' diff --git a/ci/azure/posix.yml b/ci/azure/posix.yml index 2caacf3a07290..8b0167e52b813 100644 --- a/ci/azure/posix.yml +++ b/ci/azure/posix.yml @@ -9,9 +9,9 @@ jobs: strategy: matrix: ${{ if eq(parameters.name, 'macOS') }}: - py37_macos: - ENV_FILE: ci/deps/azure-macos-37.yaml - CONDA_PY: "37" + py38_macos: + ENV_FILE: ci/deps/azure-macos-38.yaml + CONDA_PY: "38" PATTERN: "not slow and not network" steps: diff --git a/ci/azure/windows.yml b/ci/azure/windows.yml index 7c088622f9638..05ba7c57ad6c4 100644 --- a/ci/azure/windows.yml +++ b/ci/azure/windows.yml @@ -8,15 +8,15 @@ jobs: vmImage: ${{ parameters.vmImage }} strategy: matrix: - py37_np17: - ENV_FILE: ci/deps/azure-windows-37.yaml - CONDA_PY: "37" - PATTERN: "not slow and not network" - PYTEST_WORKERS: 2 # GH-42236 - py38_np18: ENV_FILE: ci/deps/azure-windows-38.yaml CONDA_PY: "38" + PATTERN: "not slow and not network" + PYTEST_WORKERS: 2 # GH-42236 + + py39: + ENV_FILE: ci/deps/azure-windows-39.yaml + CONDA_PY: "39" PATTERN: "not slow and not network and not high_memory" PYTEST_WORKERS: 2 # GH-42236 @@ -25,26 +25,22 @@ jobs: Write-Host "##vso[task.prependpath]$env:CONDA\Scripts" Write-Host "##vso[task.prependpath]$HOME/miniconda3/bin" displayName: 'Add conda to PATH' - - script: conda update -q -n base conda displayName: 'Update conda' - bash: | conda env create -q --file ci\\deps\\azure-windows-$(CONDA_PY).yaml displayName: 'Create anaconda environment' - - bash: | source activate pandas-dev conda list python setup.py build_ext -q -j 4 python -m pip install --no-build-isolation -e . displayName: 'Build' - - bash: | source activate pandas-dev ci/run_tests.sh displayName: 'Test' - - task: PublishTestResults@2 condition: succeededOrFailed() inputs: diff --git a/ci/deps/actions-37-locale_slow.yaml b/ci/deps/actions-37-locale_slow.yaml deleted file mode 100644 index c6eb3b00a63ac..0000000000000 --- a/ci/deps/actions-37-locale_slow.yaml +++ /dev/null @@ -1,30 +0,0 @@ -name: pandas-dev -channels: - - defaults - - conda-forge -dependencies: - - python=3.7.* - - # tools - - cython>=0.29.21 - - pytest>=6.0 - - pytest-cov - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 - - # pandas dependencies - - beautifulsoup4=4.6.0 - - bottleneck=1.2.* - - lxml - - matplotlib=3.0.0 - - numpy=1.17.* - - openpyxl=3.0.0 - - python-dateutil - - python-blosc - - pytz=2017.3 - - scipy - - sqlalchemy=1.3.0 - - xlrd=1.2.0 - - xlsxwriter=1.0.2 - - xlwt=1.3.0 - - html5lib=1.0.1 diff --git a/ci/deps/actions-37-minimum_versions.yaml b/ci/deps/actions-37-minimum_versions.yaml deleted file mode 100644 index b97601d18917c..0000000000000 --- a/ci/deps/actions-37-minimum_versions.yaml +++ /dev/null @@ -1,31 +0,0 @@ -name: pandas-dev -channels: - - conda-forge -dependencies: - - python=3.7.1 - - # tools - - cython=0.29.21 - - pytest>=6.0 - - pytest-cov - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 - - psutil - - # pandas dependencies - - beautifulsoup4=4.6.0 - - bottleneck=1.2.1 - - jinja2=2.10 - - numba=0.46.0 - - numexpr=2.7.0 - - numpy=1.17.3 - - openpyxl=3.0.0 - - pytables=3.5.1 - - python-dateutil=2.7.3 - - pytz=2017.3 - - pyarrow=0.17.0 - - scipy=1.2 - - xlrd=1.2.0 - - xlsxwriter=1.0.2 - - xlwt=1.3.0 - - html5lib=1.0.1 diff --git a/ci/deps/actions-37.yaml b/ci/deps/actions-37.yaml deleted file mode 100644 index 2272f8470e209..0000000000000 --- a/ci/deps/actions-37.yaml +++ /dev/null @@ -1,28 +0,0 @@ -name: pandas-dev -channels: - - defaults - - conda-forge -dependencies: - - python=3.7.* - - # tools - - cython>=0.29.21 - - pytest>=6.0 - - pytest-cov - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 - - # pandas dependencies - - botocore>=1.11 - - fsspec>=0.7.4, <2021.6.0 - - numpy=1.19 - - python-dateutil - - nomkl - - pyarrow - - pytz - - s3fs>=0.4.0 - - moto>=1.3.14 - - flask - - tabulate - - pyreadstat - - pip diff --git a/ci/deps/actions-37-db-min.yaml b/ci/deps/actions-38-db-min.yaml similarity index 66% rename from ci/deps/actions-37-db-min.yaml rename to ci/deps/actions-38-db-min.yaml index cae4361ca37a7..c93f791b7dba7 100644 --- a/ci/deps/actions-37-db-min.yaml +++ b/ci/deps/actions-38-db-min.yaml @@ -2,14 +2,14 @@ name: pandas-dev channels: - conda-forge dependencies: - - python=3.7.* + - python=3.8 # tools - cython>=0.29.21 - pytest>=6.0 - pytest-cov - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 # required - numpy<1.20 # GH#39541 compat for pyarrow<3 @@ -18,31 +18,30 @@ dependencies: # optional - beautifulsoup4 - - blosc=1.17.0 + - blosc=1.20.1 - python-blosc - fastparquet=0.4.0 - html5lib - ipython - jinja2 - - lxml=4.3.0 + - lxml=4.5.0 - matplotlib - nomkl - numexpr - openpyxl - pandas-gbq - - google-cloud-bigquery>=1.27.2 # GH 36436 - protobuf>=3.12.4 - pyarrow=0.17.1 # GH 38803 - - pytables>=3.5.1 + - pytables>=3.6.1 - scipy - - xarray=0.12.3 - - xlrd<2.0 + - xarray=0.15.1 + - xlrd - xlsxwriter - xlwt - moto - flask # sql - - psycopg2=2.7 - - pymysql=0.8.1 - - sqlalchemy=1.3.0 + - psycopg2=2.8.4 + - pymysql=0.10.1 + - sqlalchemy=1.3.11 diff --git a/ci/deps/actions-37-db.yaml b/ci/deps/actions-38-db.yaml similarity index 84% rename from ci/deps/actions-37-db.yaml rename to ci/deps/actions-38-db.yaml index a9e4113bf9d18..b4495fa6887f4 100644 --- a/ci/deps/actions-37-db.yaml +++ b/ci/deps/actions-38-db.yaml @@ -2,13 +2,13 @@ name: pandas-dev channels: - conda-forge dependencies: - - python=3.7.* + - python=3.8 # tools - cython>=0.29.21 - pytest>=6.0 - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 - pytest-cov>=2.10.1 # this is only needed in the coverage build, ref: GH 35737 # pandas dependencies @@ -25,11 +25,10 @@ dependencies: - flask - nomkl - numexpr - - numpy=1.17.* + - numpy=1.18 - odfpy - openpyxl - pandas-gbq - - google-cloud-bigquery>=1.27.2 # GH 36436 - psycopg2 - pyarrow>=0.17.0 - pymysql @@ -43,7 +42,7 @@ dependencies: - sqlalchemy - statsmodels - xarray - - xlrd<2.0 + - xlrd - xlsxwriter - xlwt - pip diff --git a/ci/deps/actions-38-locale.yaml b/ci/deps/actions-38-locale.yaml index 34a6860936550..28584de509f34 100644 --- a/ci/deps/actions-38-locale.yaml +++ b/ci/deps/actions-38-locale.yaml @@ -2,15 +2,15 @@ name: pandas-dev channels: - conda-forge dependencies: - - python=3.8.* + - python=3.8 # tools - cython>=0.29.21 - pytest>=6.0 - pytest-cov - - pytest-xdist>=1.21 + - pytest-xdist>=1.31 - pytest-asyncio>=0.12.0 - - hypothesis>=3.58.0 + - hypothesis>=5.5.3 # pandas dependencies - beautifulsoup4 @@ -31,7 +31,7 @@ dependencies: - pytz - scipy - xarray - - xlrd<2.0 + - xlrd - xlsxwriter - xlwt - moto diff --git a/ci/deps/actions-38-locale_slow.yaml b/ci/deps/actions-38-locale_slow.yaml new file mode 100644 index 0000000000000..e7276027f2a41 --- /dev/null +++ b/ci/deps/actions-38-locale_slow.yaml @@ -0,0 +1,30 @@ +name: pandas-dev +channels: + - defaults + - conda-forge +dependencies: + - python=3.8 + + # tools + - cython>=0.29.21 + - pytest>=6.0 + - pytest-cov + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 + + # pandas dependencies + - beautifulsoup4=4.8.2 + - bottleneck=1.3.1 + - lxml + - matplotlib=3.3.2 + - numpy=1.18 + - openpyxl=3.0.2 + - python-dateutil + - python-blosc + - pytz=2020.1 + - scipy + - sqlalchemy=1.3.11 + - xlrd=2.0.1 + - xlsxwriter=1.2.2 + - xlwt=1.3.0 + - html5lib=1.1 diff --git a/ci/deps/actions-38-minimum_versions.yaml b/ci/deps/actions-38-minimum_versions.yaml new file mode 100644 index 0000000000000..d666bc3b555f5 --- /dev/null +++ b/ci/deps/actions-38-minimum_versions.yaml @@ -0,0 +1,31 @@ +name: pandas-dev +channels: + - conda-forge +dependencies: + - python=3.8.0 + + # tools + - cython=0.29.21 + - pytest>=6.0 + - pytest-cov + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 + - psutil + + # pandas dependencies + - beautifulsoup4=4.8.2 + - bottleneck=1.3.1 + - jinja2=2.11 + - numba=0.50.1 + - numexpr=2.7.1 + - numpy=1.18.5 + - openpyxl=3.0.2 + - pytables=3.6.1 + - python-dateutil=2.8.1 + - pytz=2020.1 + - pyarrow=0.17.0 + - scipy=1.4.1 + - xlrd=2.0.1 + - xlsxwriter=1.2.2 + - xlwt=1.3.0 + - html5lib=1.1 diff --git a/ci/deps/actions-38-slow.yaml b/ci/deps/actions-38-slow.yaml index c464b30e02203..08900a31fe27c 100644 --- a/ci/deps/actions-38-slow.yaml +++ b/ci/deps/actions-38-slow.yaml @@ -2,14 +2,14 @@ name: pandas-dev channels: - conda-forge dependencies: - - python=3.8.* + - python=3.8 # tools - cython>=0.29.21 - pytest>=6.0 - pytest-cov - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 # pandas dependencies - beautifulsoup4 @@ -30,7 +30,7 @@ dependencies: - moto>=1.3.14 - scipy - sqlalchemy - - xlrd>=2.0 + - xlrd - xlsxwriter - xlwt - moto diff --git a/ci/deps/actions-38.yaml b/ci/deps/actions-38.yaml index 11daa92046eb4..86b038ff7d4b6 100644 --- a/ci/deps/actions-38.yaml +++ b/ci/deps/actions-38.yaml @@ -3,14 +3,14 @@ channels: - defaults - conda-forge dependencies: - - python=3.8.* + - python=3.8 # tools - cython>=0.29.21 - pytest>=6.0 - pytest-cov - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 # pandas dependencies - numpy diff --git a/ci/deps/actions-38-numpydev.yaml b/ci/deps/actions-39-numpydev.yaml similarity index 84% rename from ci/deps/actions-38-numpydev.yaml rename to ci/deps/actions-39-numpydev.yaml index 6eed2daac0c3b..466ca6215f46a 100644 --- a/ci/deps/actions-38-numpydev.yaml +++ b/ci/deps/actions-39-numpydev.yaml @@ -2,13 +2,13 @@ name: pandas-dev channels: - defaults dependencies: - - python=3.8.* + - python=3.9 # tools - pytest>=6.0 - pytest-cov - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 # pandas dependencies - pytz diff --git a/ci/deps/actions-37-slow.yaml b/ci/deps/actions-39-slow.yaml similarity index 84% rename from ci/deps/actions-37-slow.yaml rename to ci/deps/actions-39-slow.yaml index 76eb7ba5693e9..cacafc2518b19 100644 --- a/ci/deps/actions-37-slow.yaml +++ b/ci/deps/actions-39-slow.yaml @@ -3,14 +3,14 @@ channels: - defaults - conda-forge dependencies: - - python=3.7.* + - python=3.9 # tools - cython>=0.29.21 - pytest>=6.0 - pytest-cov - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 # pandas dependencies - beautifulsoup4 @@ -31,9 +31,8 @@ dependencies: - moto>=1.3.14 - scipy - sqlalchemy - - xlrd<2.0 + - xlrd - xlsxwriter - - xlwt - moto - flask - numba diff --git a/ci/deps/actions-39.yaml b/ci/deps/actions-39.yaml index b74f1af8ee0f6..2d6d58b59ba3c 100644 --- a/ci/deps/actions-39.yaml +++ b/ci/deps/actions-39.yaml @@ -2,14 +2,14 @@ name: pandas-dev channels: - conda-forge dependencies: - - python=3.9.* + - python=3.9 # tools - cython>=0.29.21 - pytest>=6.0 - pytest-cov - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 # pandas dependencies - numpy diff --git a/ci/deps/azure-macos-37.yaml b/ci/deps/azure-macos-38.yaml similarity index 73% rename from ci/deps/azure-macos-37.yaml rename to ci/deps/azure-macos-38.yaml index 43e1055347f17..029d088362aa9 100644 --- a/ci/deps/azure-macos-37.yaml +++ b/ci/deps/azure-macos-38.yaml @@ -3,12 +3,12 @@ channels: - defaults - conda-forge dependencies: - - python=3.7.* + - python=3.8 # tools - pytest>=6.0 - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 - pytest-azurepipelines # pandas dependencies @@ -17,17 +17,17 @@ dependencies: - html5lib - jinja2 - lxml - - matplotlib=2.2.3 + - matplotlib=3.3.2 - nomkl - numexpr - - numpy=1.17.3 + - numpy=1.18.5 - openpyxl - pyarrow=0.17 - pytables - - python-dateutil==2.7.3 + - python-dateutil==2.8.1 - pytz - xarray - - xlrd<2.0 + - xlrd - xlsxwriter - xlwt - pip diff --git a/ci/deps/azure-windows-38.yaml b/ci/deps/azure-windows-38.yaml index 70aa46e8a5851..c56496bce7d6c 100644 --- a/ci/deps/azure-windows-38.yaml +++ b/ci/deps/azure-windows-38.yaml @@ -3,13 +3,13 @@ channels: - conda-forge - defaults dependencies: - - python=3.8.* + - python=3.8 # tools - cython>=0.29.21 - pytest>=6.0 - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 - pytest-azurepipelines # pandas dependencies @@ -18,19 +18,19 @@ dependencies: - fastparquet>=0.4.0 - flask - fsspec>=0.8.0, <2021.6.0 - - matplotlib=3.1.3 + - matplotlib=3.3.2 - moto>=1.3.14 - numba - numexpr - - numpy=1.18.* + - numpy=1.18 - openpyxl - jinja2 - - pyarrow>=0.17.0 + - pyarrow=0.17.0 - pytables - python-dateutil - pytz - s3fs>=0.4.0 - scipy - - xlrd<2.0 + - xlrd - xlsxwriter - xlwt diff --git a/ci/deps/azure-windows-37.yaml b/ci/deps/azure-windows-39.yaml similarity index 75% rename from ci/deps/azure-windows-37.yaml rename to ci/deps/azure-windows-39.yaml index 4df55813ea21c..aaf86b7310eb2 100644 --- a/ci/deps/azure-windows-37.yaml +++ b/ci/deps/azure-windows-39.yaml @@ -3,37 +3,37 @@ channels: - defaults - conda-forge dependencies: - - python=3.7.* + - python=3.9 # tools - cython>=0.29.21 - pytest>=6.0 - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 - pytest-azurepipelines # pandas dependencies - beautifulsoup4 - bottleneck - fsspec>=0.8.0, <2021.6.0 - - gcsfs>=0.6.0 + - gcsfs - html5lib - jinja2 - lxml - - matplotlib=2.2.* + - matplotlib - moto>=1.3.14 - flask - numexpr - - numpy=1.17.* + - numpy - openpyxl - - pyarrow=0.17.0 + # - pyarrow GH 42370 - pytables - python-dateutil - pytz - s3fs>=0.4.2 - scipy - sqlalchemy - - xlrd>=2.0 + - xlrd - xlsxwriter - xlwt - pyreadstat diff --git a/ci/deps/circle-37-arm64.yaml b/ci/deps/circle-38-arm64.yaml similarity index 78% rename from ci/deps/circle-37-arm64.yaml rename to ci/deps/circle-38-arm64.yaml index 995ebda1f97e7..17fe5b4b7b77b 100644 --- a/ci/deps/circle-37-arm64.yaml +++ b/ci/deps/circle-38-arm64.yaml @@ -2,13 +2,13 @@ name: pandas-dev channels: - conda-forge dependencies: - - python=3.7.* + - python=3.8 # tools - cython>=0.29.21 - pytest>=6.0 - - pytest-xdist>=1.21 - - hypothesis>=3.58.0 + - pytest-xdist>=1.31 + - hypothesis>=5.5.3 # pandas dependencies - botocore>=1.11 diff --git a/doc/source/getting_started/install.rst b/doc/source/getting_started/install.rst index 88e54421daa11..6c245a0668394 100644 --- a/doc/source/getting_started/install.rst +++ b/doc/source/getting_started/install.rst @@ -20,7 +20,7 @@ Instructions for installing from source, Python version support ---------------------- -Officially Python 3.7.1 and above, 3.8, and 3.9. +Officially Python 3.8, and 3.9. Installing pandas ----------------- @@ -221,9 +221,9 @@ Dependencies ================================================================ ========================== Package Minimum supported version ================================================================ ========================== -`NumPy `__ 1.17.3 -`python-dateutil `__ 2.7.3 -`pytz `__ 2017.3 +`NumPy `__ 1.18.5 +`python-dateutil `__ 2.8.1 +`pytz `__ 2020.1 ================================================================ ========================== .. _install.recommended_dependencies: @@ -233,11 +233,11 @@ Recommended dependencies * `numexpr `__: for accelerating certain numerical operations. ``numexpr`` uses multiple cores as well as smart chunking and caching to achieve large speedups. - If installed, must be Version 2.7.0 or higher. + If installed, must be Version 2.7.1 or higher. * `bottleneck `__: for accelerating certain types of ``nan`` evaluations. ``bottleneck`` uses specialized cython routines to achieve large speedups. If installed, - must be Version 1.2.1 or higher. + must be Version 1.3.1 or higher. .. note:: @@ -263,8 +263,8 @@ Visualization Dependency Minimum Version Notes ========================= ================== ============================================================= setuptools 38.6.0 Utils for entry points of plotting backend -matplotlib 2.2.3 Plotting library -Jinja2 2.10 Conditional formatting with DataFrame.style +matplotlib 3.3.2 Plotting library +Jinja2 2.11 Conditional formatting with DataFrame.style tabulate 0.8.7 Printing in Markdown-friendly format (see `tabulate`_) ========================= ================== ============================================================= @@ -274,10 +274,10 @@ Computation ========================= ================== ============================================================= Dependency Minimum Version Notes ========================= ================== ============================================================= -SciPy 1.12.0 Miscellaneous statistical functions -numba 0.46.0 Alternative execution engine for rolling operations +SciPy 1.14.1 Miscellaneous statistical functions +numba 0.50.1 Alternative execution engine for rolling operations (see :ref:`Enhancing Performance `) -xarray 0.12.3 pandas-like API for N-dimensional data +xarray 0.15.1 pandas-like API for N-dimensional data ========================= ================== ============================================================= Excel files @@ -286,10 +286,10 @@ Excel files ========================= ================== ============================================================= Dependency Minimum Version Notes ========================= ================== ============================================================= -xlrd 1.2.0 Reading Excel +xlrd 2.0.1 Reading Excel xlwt 1.3.0 Writing Excel -xlsxwriter 1.0.2 Writing Excel -openpyxl 3.0.0 Reading / writing for xlsx files +xlsxwriter 1.2.2 Writing Excel +openpyxl 3.0.2 Reading / writing for xlsx files pyxlsb 1.0.6 Reading for xlsb files ========================= ================== ============================================================= @@ -299,9 +299,9 @@ HTML ========================= ================== ============================================================= Dependency Minimum Version Notes ========================= ================== ============================================================= -BeautifulSoup4 4.6.0 HTML parser for read_html -html5lib 1.0.1 HTML parser for read_html -lxml 4.3.0 HTML parser for read_html +BeautifulSoup4 4.8.2 HTML parser for read_html +html5lib 1.1 HTML parser for read_html +lxml 4.5.0 HTML parser for read_html ========================= ================== ============================================================= One of the following combinations of libraries is needed to use the @@ -334,7 +334,7 @@ XML ========================= ================== ============================================================= Dependency Minimum Version Notes ========================= ================== ============================================================= -lxml 4.3.0 XML parser for read_xml and tree builder for to_xml +lxml 4.5.0 XML parser for read_xml and tree builder for to_xml ========================= ================== ============================================================= SQL databases @@ -343,9 +343,9 @@ SQL databases ========================= ================== ============================================================= Dependency Minimum Version Notes ========================= ================== ============================================================= -SQLAlchemy 1.3.0 SQL support for databases other than sqlite -psycopg2 2.7 PostgreSQL engine for sqlalchemy -pymysql 0.8.1 MySQL engine for sqlalchemy +SQLAlchemy 1.3.11 SQL support for databases other than sqlite +psycopg2 2.8.4 PostgreSQL engine for sqlalchemy +pymysql 0.10.1 MySQL engine for sqlalchemy ========================= ================== ============================================================= Other data sources @@ -354,8 +354,8 @@ Other data sources ========================= ================== ============================================================= Dependency Minimum Version Notes ========================= ================== ============================================================= -PyTables 3.5.1 HDF5-based reading / writing -blosc 1.17.0 Compression for HDF5 +PyTables 3.6.1 HDF5-based reading / writing +blosc 1.20.1 Compression for HDF5 zlib Compression for HDF5 fastparquet 0.4.0 Parquet reading / writing pyarrow 0.17.0 Parquet, ORC, and feather reading / writing @@ -385,7 +385,7 @@ Dependency Minimum Version Notes ========================= ================== ============================================================= fsspec 0.7.4 Handling files aside from simple local and HTTP gcsfs 0.6.0 Google Cloud Storage access -pandas-gbq 0.12.0 Google Big Query access +pandas-gbq 0.14.0 Google Big Query access s3fs 0.4.0 Amazon S3 access ========================= ================== ============================================================= diff --git a/doc/source/whatsnew/v1.4.0.rst b/doc/source/whatsnew/v1.4.0.rst index d168d81aac3dd..764a50e13586a 100644 --- a/doc/source/whatsnew/v1.4.0.rst +++ b/doc/source/whatsnew/v1.4.0.rst @@ -68,7 +68,21 @@ If installed, we now require: +-----------------+-----------------+----------+---------+ | Package | Minimum Version | Required | Changed | +=================+=================+==========+=========+ -| | | X | X | +| numpy | 1.18.5 | X | X | ++-----------------+-----------------+----------+---------+ +| pytz | 2020.1 | X | X | ++-----------------+-----------------+----------+---------+ +| python-dateutil | 2.8.1 | X | X | ++-----------------+-----------------+----------+---------+ +| bottleneck | 1.3.1 | | X | ++-----------------+-----------------+----------+---------+ +| numexpr | 2.7.1 | | X | ++-----------------+-----------------+----------+---------+ +| pytest (dev) | 6.0 | | | ++-----------------+-----------------+----------+---------+ +| mypy (dev) | 0.910 | | X | ++-----------------+-----------------+----------+---------+ +| setuptools | 38.6.0 | | | +-----------------+-----------------+----------+---------+ For `optional libraries `_ the general recommendation is to use the latest version. @@ -78,7 +92,45 @@ Optional libraries below the lowest tested version may still work, but are not c +-----------------+-----------------+---------+ | Package | Minimum Version | Changed | +=================+=================+=========+ -| | | X | +| beautifulsoup4 | 4.8.2 | X | ++-----------------+-----------------+---------+ +| fastparquet | 0.4.0 | | ++-----------------+-----------------+---------+ +| fsspec | 0.7.4 | | ++-----------------+-----------------+---------+ +| gcsfs | 0.6.0 | | ++-----------------+-----------------+---------+ +| lxml | 4.5.0 | X | ++-----------------+-----------------+---------+ +| matplotlib | 3.3.2 | X | ++-----------------+-----------------+---------+ +| numba | 0.50.1 | X | ++-----------------+-----------------+---------+ +| openpyxl | 3.0.2 | X | ++-----------------+-----------------+---------+ +| pyarrow | 0.17.0 | | ++-----------------+-----------------+---------+ +| pymysql | 0.10.1 | X | ++-----------------+-----------------+---------+ +| pytables | 3.6.1 | X | ++-----------------+-----------------+---------+ +| s3fs | 0.4.0 | | ++-----------------+-----------------+---------+ +| scipy | 1.4.1 | X | ++-----------------+-----------------+---------+ +| sqlalchemy | 1.3.11 | X | ++-----------------+-----------------+---------+ +| tabulate | 0.8.7 | | ++-----------------+-----------------+---------+ +| xarray | 0.15.1 | X | ++-----------------+-----------------+---------+ +| xlrd | 2.0.1 | X | ++-----------------+-----------------+---------+ +| xlsxwriter | 1.2.2 | X | ++-----------------+-----------------+---------+ +| xlwt | 1.3.0 | | ++-----------------+-----------------+---------+ +| pandas-gbq | 0.14.0 | X | +-----------------+-----------------+---------+ See :ref:`install.dependencies` and :ref:`install.optional_dependencies` for more. diff --git a/environment.yml b/environment.yml index 956f3e8dbff74..9396210da3635 100644 --- a/environment.yml +++ b/environment.yml @@ -3,9 +3,9 @@ channels: - conda-forge dependencies: # required - - numpy>=1.17.3 + - numpy>=1.18.5 - python=3.8 - - python-dateutil>=2.7.3 + - python-dateutil>=2.8.1 - pytz # benchmarks @@ -55,12 +55,12 @@ dependencies: # testing - boto3 - botocore>=1.11 - - hypothesis>=3.82 + - hypothesis>=5.5.3 - moto # mock S3 - flask - - pytest>=5.0.1 + - pytest>=6.0 - pytest-cov - - pytest-xdist>=1.21 + - pytest-xdist>=1.31 - pytest-asyncio - pytest-instafail @@ -71,24 +71,24 @@ dependencies: # unused (required indirectly may be?) - ipywidgets - nbformat - - notebook>=5.7.5 + - notebook>=6.0.3 - pip # optional - blosc - - bottleneck>=1.2.1 + - bottleneck>=1.3.1 - ipykernel - ipython>=7.11.1 - jinja2 # pandas.Styler - - matplotlib>=2.2.2 # pandas.plotting, Series.plot, DataFrame.plot - - numexpr>=2.7.0 - - scipy>=1.2 - - numba>=0.46.0 + - matplotlib>=3.3.2 # pandas.plotting, Series.plot, DataFrame.plot + - numexpr>=2.7.1 + - scipy>=1.4.1 + - numba>=0.50.1 # optional for io # --------------- # pd.read_html - - beautifulsoup4>=4.6.0 + - beautifulsoup4>=4.8.2 - html5lib - lxml @@ -99,12 +99,11 @@ dependencies: - xlwt - odfpy - - fastparquet>=0.3.2 # pandas.read_parquet, DataFrame.to_parquet + - fastparquet>=0.4.0 # pandas.read_parquet, DataFrame.to_parquet - pyarrow>=0.17.0 # pandas.read_parquet, DataFrame.to_parquet, pandas.read_feather, DataFrame.to_feather - python-snappy # required by pyarrow - - pyqt>=5.9.2 # pandas.read_clipboard - - pytables>=3.5.1 # pandas.read_hdf, DataFrame.to_hdf + - pytables>=3.6.1 # pandas.read_hdf, DataFrame.to_hdf - s3fs>=0.4.0 # file IO when using 's3://...' path - fsspec>=0.7.4, <2021.6.0 # for generic remote file operations - gcsfs>=0.6.0 # file IO when using 'gcs://...' path diff --git a/pandas/compat/_optional.py b/pandas/compat/_optional.py index 941c59592dbbd..651729cd0ad44 100644 --- a/pandas/compat/_optional.py +++ b/pandas/compat/_optional.py @@ -10,30 +10,30 @@ # Update install.rst when updating versions! VERSIONS = { - "bs4": "4.6.0", - "bottleneck": "1.2.1", + "bs4": "4.8.2", + "bottleneck": "1.3.1", "fsspec": "0.7.4", "fastparquet": "0.4.0", "gcsfs": "0.6.0", - "lxml.etree": "4.3.0", - "matplotlib": "2.2.3", - "numexpr": "2.7.0", - "odfpy": "1.3.0", - "openpyxl": "3.0.0", - "pandas_gbq": "0.12.0", + "lxml.etree": "4.5.0", + "matplotlib": "3.3.2", + "numexpr": "2.7.1", + "odfpy": "1.4.1", + "openpyxl": "3.0.2", + "pandas_gbq": "0.14.0", "pyarrow": "0.17.0", "pytest": "6.0", "pyxlsb": "1.0.6", "s3fs": "0.4.0", - "scipy": "1.2.0", - "sqlalchemy": "1.3.0", - "tables": "3.5.1", + "scipy": "1.4.1", + "sqlalchemy": "1.3.11", + "tables": "3.6.1", "tabulate": "0.8.7", - "xarray": "0.12.3", - "xlrd": "1.2.0", + "xarray": "0.15.1", + "xlrd": "2.0.1", "xlwt": "1.3.0", - "xlsxwriter": "1.0.2", - "numba": "0.46.0", + "xlsxwriter": "1.2.2", + "numba": "0.50.1", } # A mapping from import name to package name (on PyPI) for packages where diff --git a/pandas/compat/numpy/__init__.py b/pandas/compat/numpy/__init__.py index 619713f28ee2d..4632626c40236 100644 --- a/pandas/compat/numpy/__init__.py +++ b/pandas/compat/numpy/__init__.py @@ -13,7 +13,7 @@ np_version_under1p19 = _nlv < Version("1.19") np_version_under1p20 = _nlv < Version("1.20") is_numpy_dev = _nlv.dev is not None -_min_numpy_ver = "1.17.3" +_min_numpy_ver = "1.18.5" if _nlv < Version(_min_numpy_ver): diff --git a/pyproject.toml b/pyproject.toml index 86b255ab6bf58..5deb92281475b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,7 +22,7 @@ requires = [ # build-backend = "setuptools.build_meta" [tool.black] -target-version = ['py37', 'py38', 'py39'] +target-version = ['py38', 'py39'] exclude = ''' ( asv_bench/env diff --git a/requirements-dev.txt b/requirements-dev.txt index 03c7b7ef41b70..3bf9084f55419 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,8 +1,8 @@ # This file is auto-generated from environment.yml, do not modify. # See that file for comments about the need/usage of each dependency. -numpy>=1.17.3 -python-dateutil>=2.7.3 +numpy>=1.18.5 +python-dateutil>=2.8.1 pytz asv cython>=0.29.21 @@ -33,30 +33,30 @@ pyyaml requests boto3 botocore>=1.11 -hypothesis>=3.82 +hypothesis>=5.5.3 moto flask -pytest>=5.0.1 +pytest>=6.0 pytest-cov -pytest-xdist>=1.21 +pytest-xdist>=1.31 pytest-asyncio pytest-instafail seaborn statsmodels ipywidgets nbformat -notebook>=5.7.5 +notebook>=6.0.3 pip blosc -bottleneck>=1.2.1 +bottleneck>=1.3.1 ipykernel ipython>=7.11.1 jinja2 -matplotlib>=2.2.2 -numexpr>=2.7.0 -scipy>=1.2 -numba>=0.46.0 -beautifulsoup4>=4.6.0 +matplotlib>=3.3.2 +numexpr>=2.7.1 +scipy>=1.4.1 +numba>=0.50.1 +beautifulsoup4>=4.8.2 html5lib lxml openpyxl @@ -64,11 +64,10 @@ xlrd xlsxwriter xlwt odfpy -fastparquet>=0.3.2 +fastparquet>=0.4.0 pyarrow>=0.17.0 python-snappy -pyqt5>=5.9.2 -tables>=3.5.1 +tables>=3.6.1 s3fs>=0.4.0 fsspec>=0.7.4, <2021.6.0 gcsfs>=0.6.0 diff --git a/setup.cfg b/setup.cfg index d278deac66f43..9df220280c59f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -19,7 +19,6 @@ classifiers = Programming Language :: Python Programming Language :: Python :: 3 Programming Language :: Python :: 3 :: Only - Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Topic :: Scientific/Engineering @@ -31,10 +30,10 @@ project_urls = [options] packages = find: install_requires = - numpy>=1.17.3 - python-dateutil>=2.7.3 - pytz>=2017.3 -python_requires = >=3.7.1 + numpy>=1.18.5 + python-dateutil>=2.8.1 + pytz>=2020.1 +python_requires = >=3.8 include_package_data = True zip_safe = False @@ -44,9 +43,9 @@ pandas_plotting_backends = [options.extras_require] test = - hypothesis>=3.58 + hypothesis>=5.5.3 pytest>=6.0 - pytest-xdist + pytest-xdist>=1.31 [options.package_data] * = templates/*, _libs/**/*.dll