diff --git a/.github/actions/mamba-env/action.yml b/.github/actions/mamba-env/action.yml index 6badcf68e15..a07b9e6d92a 100644 --- a/.github/actions/mamba-env/action.yml +++ b/.github/actions/mamba-env/action.yml @@ -3,7 +3,7 @@ description: "Prepare the environment to run Modin" inputs: python-version: description: "Python version to install" - default: "3.8" + default: "3.9" environment-file: description: "Conda environment yml" required: true diff --git a/.github/actions/python-only/action.yml b/.github/actions/python-only/action.yml index 2fe3d23c4fc..7402708f465 100644 --- a/.github/actions/python-only/action.yml +++ b/.github/actions/python-only/action.yml @@ -3,7 +3,7 @@ description: "Prepare the environment to run simple tasks" inputs: python-version: description: "Python version to install" - default: "3.8.x" + default: "3.9.x" runs: using: "composite" diff --git a/.github/workflows/ci-required.yml b/.github/workflows/ci-required.yml index bae4ef2c5a7..cfc3ce91158 100644 --- a/.github/workflows/ci-required.yml +++ b/.github/workflows/ci-required.yml @@ -28,7 +28,7 @@ jobs: fetch-depth: 1 - uses: actions/setup-python@v4 with: - python-version: "3.8.x" + python-version: "3.9.x" architecture: "x64" cache: "pip" cache-dependency-path: '**/requirements-doc.txt' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 87465ddd514..b20b6ab24c4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -134,7 +134,7 @@ jobs: execution: [BaseOnPython] env: MODIN_TEST_DATASET_SIZE: "small" - name: Test ${{ matrix.execution }} execution, Python 3.8 + name: Test ${{ matrix.execution }} execution, Python 3.9 steps: - uses: actions/checkout@v3 - uses: ./.github/actions/mamba-env @@ -164,7 +164,7 @@ jobs: MODIN_EXPERIMENTAL: "True" MODIN_ENGINE: "native" MODIN_STORAGE_FORMAT: "hdk" - name: Test HDK storage format, Python 3.8 + name: Test HDK storage format, Python 3.9 services: moto: image: motoserver/moto @@ -334,7 +334,7 @@ jobs: shell: bash -l {0} strategy: matrix: - python-version: ["3.8"] + python-version: ["3.9"] unidist-backend: ["mpi"] env: MODIN_ENGINE: "Unidist" @@ -397,7 +397,7 @@ jobs: os: - ubuntu - windows - python-version: ["3.8"] + python-version: ["3.9"] engine: ${{ fromJSON( github.event_name == 'push' && '["python", "ray", "dask"]' || needs.execution-filter.outputs.engines ) }} test_task: - group_1 @@ -532,7 +532,7 @@ jobs: os: - ubuntu - windows - python-version: ["3.8"] + python-version: ["3.9"] execution: - name: ray shell-ex: "python -m pytest" @@ -684,7 +684,7 @@ jobs: shell: bash -l {0} strategy: matrix: - python-version: ["3.8"] + python-version: ["3.9"] env: MODIN_STORAGE_FORMAT: pyarrow MODIN_EXPERIMENTAL: "True" @@ -714,7 +714,7 @@ jobs: shell: bash -l {0} strategy: matrix: - python-version: ["3.8"] + python-version: ["3.9"] engine: ["ray", "dask"] env: MODIN_EXPERIMENTAL: "True" diff --git a/.github/workflows/fuzzydata-test.yml b/.github/workflows/fuzzydata-test.yml index b0407c16137..1c9d1c12e22 100644 --- a/.github/workflows/fuzzydata-test.yml +++ b/.github/workflows/fuzzydata-test.yml @@ -30,7 +30,7 @@ jobs: shell: bash -l {0} strategy: matrix: - python-version: ["3.8"] + python-version: ["3.9"] engine: ["ray", "dask"] steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/push-to-master.yml b/.github/workflows/push-to-master.yml index 3ae660e1856..e1f3fa8004c 100644 --- a/.github/workflows/push-to-master.yml +++ b/.github/workflows/push-to-master.yml @@ -99,7 +99,7 @@ jobs: AWS_SECRET_ACCESS_KEY: foobar_secret strategy: matrix: - python-version: ["3.8"] + python-version: ["3.9"] test-task: - modin/pandas/test/dataframe/test_binary.py - modin/pandas/test/dataframe/test_default.py diff --git a/.readthedocs.yaml b/.readthedocs.yaml index bd8bd4ed4ff..7807bd06405 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -9,7 +9,7 @@ version: 2 build: os: ubuntu-20.04 tools: - python: "3.8" + python: "3.9" # Build documentation in the docs/ directory with Sphinx sphinx: diff --git a/asv_bench/asv.conf.dask.json b/asv_bench/asv.conf.dask.json index 30e44e14821..92eb25fbadf 100644 --- a/asv_bench/asv.conf.dask.json +++ b/asv_bench/asv.conf.dask.json @@ -55,7 +55,7 @@ // The Pythons you'd like to test against. If not provided, defaults // to the current version of Python used to run `asv`. - "pythons": ["3.8"], + "pythons": ["3.9"], // The list of conda channel names to be searched for benchmark // dependency packages in the specified order diff --git a/asv_bench/asv.conf.hdk.json b/asv_bench/asv.conf.hdk.json index 91367250671..3c3f4519068 100644 --- a/asv_bench/asv.conf.hdk.json +++ b/asv_bench/asv.conf.hdk.json @@ -34,7 +34,7 @@ // The Pythons you'd like to test against. If not provided, defaults // to the current version of Python used to run `asv`. - "pythons": ["3.8"], + "pythons": ["3.9"], // The list of conda channel names to be searched for benchmark // dependency packages in the specified order diff --git a/asv_bench/asv.conf.json b/asv_bench/asv.conf.json index cfffc65ed74..e1f7c5ff876 100644 --- a/asv_bench/asv.conf.json +++ b/asv_bench/asv.conf.json @@ -55,7 +55,7 @@ // The Pythons you'd like to test against. If not provided, defaults // to the current version of Python used to run `asv`. - "pythons": ["3.8"], + "pythons": ["3.9"], // The list of conda channel names to be searched for benchmark // dependency packages in the specified order diff --git a/asv_bench/asv.conf.unidist.json b/asv_bench/asv.conf.unidist.json index b8e04c5bb1e..351fd3fb728 100644 --- a/asv_bench/asv.conf.unidist.json +++ b/asv_bench/asv.conf.unidist.json @@ -55,7 +55,7 @@ // The Pythons you'd like to test against. If not provided, defaults // to the current version of Python used to run `asv`. - "pythons": ["3.8"], + "pythons": ["3.9"], // The list of conda channel names to be searched for benchmark // dependency packages in the specified order diff --git a/modin/pandas/test/dataframe/test_default.py b/modin/pandas/test/dataframe/test_default.py index c80d6e7a0d3..972384e5e38 100644 --- a/modin/pandas/test/dataframe/test_default.py +++ b/modin/pandas/test/dataframe/test_default.py @@ -79,8 +79,6 @@ ) def test_ops_defaulting_to_pandas(op, make_args): modin_df = pd.DataFrame(test_data_diff_dtype).drop(["str_col", "bool_col"], axis=1) - if op == "to_xarray" and sys.version_info < (3, 9): - pytest.skip("xarray doesn't support pandas>=2.0 for python 3.8") with warns_that_defaulting_to_pandas(): operation = getattr(modin_df, op) if make_args is not None: diff --git a/modin/pandas/test/test_series.py b/modin/pandas/test/test_series.py index 0fe8ad944f6..334b16b71e0 100644 --- a/modin/pandas/test/test_series.py +++ b/modin/pandas/test/test_series.py @@ -3539,10 +3539,6 @@ def test_to_timestamp(): series.to_period().to_timestamp() -@pytest.mark.skipif( - condition=sys.version_info < (3, 9), - reason="xarray doesn't support pandas>=2.0 for python 3.8", -) @pytest.mark.parametrize("data", test_data_values, ids=test_data_keys) def test_to_xarray(data): modin_series, _ = create_test_series(data) # noqa: F841 diff --git a/modin/utils.py b/modin/utils.py index 14205533dcd..e8fbde43564 100644 --- a/modin/utils.py +++ b/modin/utils.py @@ -25,10 +25,7 @@ import codecs import functools -if sys.version_info < (3, 8): - from typing_extensions import Protocol, runtime_checkable -else: - from typing import Protocol, runtime_checkable +from typing import Protocol, runtime_checkable from textwrap import dedent, indent from packaging import version diff --git a/requirements/env_hdk.yml b/requirements/env_hdk.yml index 43d687489f7..d2c713dc409 100644 --- a/requirements/env_hdk.yml +++ b/requirements/env_hdk.yml @@ -19,8 +19,7 @@ dependencies: - sqlalchemy>=1.4.0,<1.4.46 - scipy>=1.7.1 - matplotlib>=3.6.1 - # TODO: uncomment after Modin switch to python>=3.9 - # - xarray + - xarray - pytables>=3.6.1 - fastparquet>=0.6.3 # pandas isn't compatible with numexpr=2.8.5: https://github.com/modin-project/modin/issues/6469 diff --git a/requirements/env_unidist.yml b/requirements/env_unidist.yml index af2e6d75338..a4e0b0d3909 100644 --- a/requirements/env_unidist.yml +++ b/requirements/env_unidist.yml @@ -14,8 +14,7 @@ dependencies: # optional dependencies - pyarrow>=7.0.0 - # TODO: uncomment after Modin switch to python>=3.9 - # - xarray + - xarray - Jinja2>=3.0.0 - scipy>=1.7.1 - s3fs>=2021.8 diff --git a/requirements/requirements-no-engine.yml b/requirements/requirements-no-engine.yml index 736f21724a5..7d8f339a5e2 100644 --- a/requirements/requirements-no-engine.yml +++ b/requirements/requirements-no-engine.yml @@ -12,8 +12,7 @@ dependencies: # optional dependencies - pyarrow>=7.0.0 - # TODO: uncomment after Modin switch to python>=3.9 - # - xarray + - xarray - Jinja2>=3.0.0 - scipy>=1.7.1 - s3fs>=2021.8 diff --git a/setup.py b/setup.py index 596e2f5fe44..7d0eaef2409 100644 --- a/setup.py +++ b/setup.py @@ -63,5 +63,5 @@ def make_distribution(self): "sql": sql_deps, "all": all_deps, }, - python_requires=">=3.8", + python_requires=">=3.9", )