From 052c1f6383720238da17f0ace1e502c56c70c188 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Wed, 31 Jan 2024 07:53:26 -0800 Subject: [PATCH 1/9] Bump dask min version to 2023.6.0 --- continuous_integration/docker/conda.txt | 2 +- continuous_integration/docker/main.dockerfile | 2 +- continuous_integration/environment-3.10.yaml | 2 +- continuous_integration/environment-3.11.yaml | 2 +- continuous_integration/environment-3.12.yaml | 2 +- continuous_integration/environment-3.9.yaml | 2 +- continuous_integration/gpuci/environment-3.10.yaml | 2 +- continuous_integration/gpuci/environment-3.9.yaml | 2 +- continuous_integration/recipe/meta.yaml | 2 +- docs/environment.yml | 2 +- docs/requirements-docs.txt | 2 +- pyproject.toml | 4 ++-- 12 files changed, 13 insertions(+), 13 deletions(-) diff --git a/continuous_integration/docker/conda.txt b/continuous_integration/docker/conda.txt index 72ce2f1b9..fcca1420a 100644 --- a/continuous_integration/docker/conda.txt +++ b/continuous_integration/docker/conda.txt @@ -1,5 +1,5 @@ python>=3.9 -dask>=2022.3.0,<=2024.1.1 +dask>=2023.6.0,<=2024.1.1 pandas>=1.4.0 jpype1>=1.0.2 openjdk>=8 diff --git a/continuous_integration/docker/main.dockerfile b/continuous_integration/docker/main.dockerfile index 458735234..7b0aab3da 100644 --- a/continuous_integration/docker/main.dockerfile +++ b/continuous_integration/docker/main.dockerfile @@ -16,7 +16,7 @@ RUN mamba install -y \ # build requirements "maturin>=1.3,<1.4" \ # core dependencies - "dask>=2022.3.0,<=2024.1.1" \ + "dask>=2023.6.0,<=2024.1.1" \ "pandas>=1.4.0" \ "fastapi>=0.92.0" \ "httpx>=0.24.1" \ diff --git a/continuous_integration/environment-3.10.yaml b/continuous_integration/environment-3.10.yaml index 54de0ce90..e600ce978 100644 --- a/continuous_integration/environment-3.10.yaml +++ b/continuous_integration/environment-3.10.yaml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - c-compiler -- dask>=2022.3.0,<=2024.1.1 +- dask>=2023.6.0,<=2024.1.1 - fastapi>=0.92.0 - fugue>=0.7.3 - httpx>=0.24.1 diff --git a/continuous_integration/environment-3.11.yaml b/continuous_integration/environment-3.11.yaml index 882e225e7..aa1461045 100644 --- a/continuous_integration/environment-3.11.yaml +++ b/continuous_integration/environment-3.11.yaml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - c-compiler -- dask>=2022.3.0,<=2024.1.1 +- dask>=2023.6.0,<=2024.1.1 - fastapi>=0.92.0 - fugue>=0.7.3 - httpx>=0.24.1 diff --git a/continuous_integration/environment-3.12.yaml b/continuous_integration/environment-3.12.yaml index 48d56068e..da33682e0 100644 --- a/continuous_integration/environment-3.12.yaml +++ b/continuous_integration/environment-3.12.yaml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - c-compiler -- dask>=2022.3.0,<=2024.1.1 +- dask>=2023.6.0,<=2024.1.1 - fastapi>=0.92.0 - fugue>=0.7.3 - httpx>=0.24.1 diff --git a/continuous_integration/environment-3.9.yaml b/continuous_integration/environment-3.9.yaml index f9f8e9ebf..46edf35dd 100644 --- a/continuous_integration/environment-3.9.yaml +++ b/continuous_integration/environment-3.9.yaml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - c-compiler -- dask=2022.3.0 +- dask=2023.6.0 - fastapi=0.92.0 - fugue=0.7.3 - httpx=0.24.1 diff --git a/continuous_integration/gpuci/environment-3.10.yaml b/continuous_integration/gpuci/environment-3.10.yaml index 3f19cca23..be0b0ad45 100644 --- a/continuous_integration/gpuci/environment-3.10.yaml +++ b/continuous_integration/gpuci/environment-3.10.yaml @@ -9,7 +9,7 @@ channels: dependencies: - c-compiler - zlib -- dask>=2022.3.0,<=2024.1.1 +- dask>=2023.6.0,<=2024.1.1 - fastapi>=0.92.0 - fugue>=0.7.3 - httpx>=0.24.1 diff --git a/continuous_integration/gpuci/environment-3.9.yaml b/continuous_integration/gpuci/environment-3.9.yaml index 703d5465e..fb3e36049 100644 --- a/continuous_integration/gpuci/environment-3.9.yaml +++ b/continuous_integration/gpuci/environment-3.9.yaml @@ -9,7 +9,7 @@ channels: dependencies: - c-compiler - zlib -- dask>=2022.3.0,<=2024.1.1 +- dask>=2023.6.0,<=2024.1.1 - fastapi>=0.92.0 - fugue>=0.7.3 - httpx>=0.24.1 diff --git a/continuous_integration/recipe/meta.yaml b/continuous_integration/recipe/meta.yaml index e30f53efd..2a0d0d476 100644 --- a/continuous_integration/recipe/meta.yaml +++ b/continuous_integration/recipe/meta.yaml @@ -32,7 +32,7 @@ requirements: - xz # [linux64] run: - python - - dask >=2022.3.0,<=2024.1.1 + - dask >=2023.6.0,<=2024.1.1 - pandas >=1.4.0 - fastapi >=0.92.0 - httpx >=0.24.1 diff --git a/docs/environment.yml b/docs/environment.yml index 10ab623d6..6eff99ba0 100644 --- a/docs/environment.yml +++ b/docs/environment.yml @@ -6,7 +6,7 @@ dependencies: - sphinx>=4.0.0 - sphinx-tabs - dask-sphinx-theme>=2.0.3 - - dask>=2022.3.0,<=2024.1.1 + - dask>=2023.6.0,<=2024.1.1 - pandas>=1.4.0 - fugue>=0.7.3 # FIXME: https://github.com/fugue-project/fugue/issues/526 diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt index 9fd5d4738..d1b686b9a 100644 --- a/docs/requirements-docs.txt +++ b/docs/requirements-docs.txt @@ -1,7 +1,7 @@ sphinx>=4.0.0 sphinx-tabs dask-sphinx-theme>=3.0.0 -dask>=2022.3.0,<=2024.1.1 +dask>=2023.6.0,<=2024.1.1 pandas>=1.4.0 fugue>=0.7.3 # FIXME: https://github.com/fugue-project/fugue/issues/526 diff --git a/pyproject.toml b/pyproject.toml index 3d2ee4843..6b6ec45c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,8 +27,8 @@ classifiers = [ readme = "README.md" requires-python = ">=3.9" dependencies = [ - "dask[dataframe]>=2022.3.0,<=2024.1.1", - "distributed>=2022.3.0,<=2024.1.1", + "dask[dataframe]>=2023.6.0,<=2024.1.1", + "distributed>=2023.6.0,<=2024.1.1", "pandas>=1.4.0", "fastapi>=0.92.0", "httpx>=0.24.1", From 4858d7011059252ceaf0154b146c459f6bd53b29 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Wed, 31 Jan 2024 07:58:48 -0800 Subject: [PATCH 2/9] Remove dask compat code --- dask_sql/_compat.py | 11 ----------- dask_sql/physical/rel/logical/join.py | 9 --------- dask_sql/physical/rex/core/call.py | 12 ++---------- dask_sql/physical/utils/filter.py | 5 ----- tests/integration/test_filter.py | 9 --------- tests/integration/test_join.py | 5 ----- tests/integration/test_rex.py | 10 ---------- tests/unit/test_utils.py | 10 +--------- 8 files changed, 3 insertions(+), 68 deletions(-) diff --git a/dask_sql/_compat.py b/dask_sql/_compat.py index be8cfbae5..c637ef385 100644 --- a/dask_sql/_compat.py +++ b/dask_sql/_compat.py @@ -1,23 +1,12 @@ -import dask import pandas as pd import prompt_toolkit from packaging.version import parse as parseVersion _pandas_version = parseVersion(pd.__version__) _prompt_toolkit_version = parseVersion(prompt_toolkit.__version__) -_dask_version = parseVersion(dask.__version__) INDEXER_WINDOW_STEP_IMPLEMENTED = _pandas_version >= parseVersion("1.5.0") PANDAS_GT_200 = _pandas_version >= parseVersion("2.0.0") # TODO: remove if prompt-toolkit min version gets bumped PIPE_INPUT_CONTEXT_MANAGER = _prompt_toolkit_version >= parseVersion("3.0.29") - -# TODO: remove when dask min version gets bumped -BROADCAST_JOIN_SUPPORT_WORKING = _dask_version > parseVersion("2023.1.0") - -# Parquet predicate-support version checks -PQ_NOT_IN_SUPPORT = parseVersion(dask.__version__) > parseVersion("2023.5.1") -PQ_IS_SUPPORT = parseVersion(dask.__version__) >= parseVersion("2023.3.1") - -DASK_CUDF_TODATETIME_SUPPORT = _dask_version >= parseVersion("2023.5.1") diff --git a/dask_sql/physical/rel/logical/join.py b/dask_sql/physical/rel/logical/join.py index 374c74420..06bb34ca3 100644 --- a/dask_sql/physical/rel/logical/join.py +++ b/dask_sql/physical/rel/logical/join.py @@ -9,7 +9,6 @@ from dask.base import tokenize from dask.highlevelgraph import HighLevelGraph -from dask_sql._compat import BROADCAST_JOIN_SUPPORT_WORKING from dask_sql.datacontainer import ColumnContainer, DataContainer from dask_sql.physical.rel.base import BaseRelPlugin from dask_sql.physical.rel.logical.filter import filter_or_scalar @@ -259,14 +258,6 @@ def _join_on_columns( added_columns = list(lhs_columns_to_add.keys()) broadcast = dask_config.get("sql.join.broadcast") - if not BROADCAST_JOIN_SUPPORT_WORKING and ( - isinstance(broadcast, float) or broadcast - ): - warnings.warn( - "Broadcast Joins may not work as expected with dask<2023.1.1" - "For more information refer to https://github.com/dask/dask/issues/9851" - " and https://github.com/dask/dask/issues/9870" - ) if join_type == "leftanti" and not is_cudf_type(df_lhs_with_tmp): df = df_lhs_with_tmp.merge( df_rhs_with_tmp, diff --git a/dask_sql/physical/rex/core/call.py b/dask_sql/physical/rex/core/call.py index 8db8ca048..f3f1e751a 100644 --- a/dask_sql/physical/rex/core/call.py +++ b/dask_sql/physical/rex/core/call.py @@ -16,7 +16,7 @@ from dask.highlevelgraph import HighLevelGraph from dask.utils import random_state_data -from dask_sql._compat import DASK_CUDF_TODATETIME_SUPPORT, PANDAS_GT_200 +from dask_sql._compat import PANDAS_GT_200 from dask_sql._datafusion_lib import SqlTypeName from dask_sql.datacontainer import DataContainer from dask_sql.mappings import ( @@ -964,15 +964,7 @@ def date_part(self, what, df: SeriesOrScalar): elif what in {"YEAR", "YEARS"}: return df.year elif what == "DATE": - if isinstance(df, pd.Timestamp): - return df.date() - else: - if is_cudf_type(df) and not DASK_CUDF_TODATETIME_SUPPORT: - raise RuntimeError( - "Dask-cuDF to_datetime support requires Dask version >= 2023.5.1" - ) - else: - return dd.to_datetime(df.strftime("%Y-%m-%d")) + return df.date() if isinstance(df, pd.Timestamp) else dd.to_datetime(df.strftime("%Y-%m-%d")) else: raise NotImplementedError(f"Extraction of {what} is not (yet) implemented.") diff --git a/dask_sql/physical/utils/filter.py b/dask_sql/physical/utils/filter.py index ae564244d..9746193e9 100644 --- a/dask_sql/physical/utils/filter.py +++ b/dask_sql/physical/utils/filter.py @@ -11,7 +11,6 @@ from dask.layers import DataFrameIOLayer from dask.utils import M, apply, is_arraylike -from dask_sql._compat import PQ_IS_SUPPORT, PQ_NOT_IN_SUPPORT logger = logging.getLogger(__name__) @@ -501,8 +500,6 @@ def _get_blockwise_input(input_index, indices: list, dsk: RegenerableGraph): def _inv(symbol: str): - if symbol == "in" and not PQ_NOT_IN_SUPPORT: - raise ValueError("This version of dask does not support 'not in'") return { ">": "<", "<": ">", @@ -568,8 +565,6 @@ def _blockwise_isin_dnf(op, indices: list, dsk: RegenerableGraph) -> DNF: def _blockwise_isna_dnf(op, indices: list, dsk: RegenerableGraph) -> DNF: # Return DNF expression pattern for `isna` - if not PQ_IS_SUPPORT: - raise ValueError("This version of dask does not support 'is' predicates.") left = _get_blockwise_input(0, indices, dsk) return DNF((left, "is", None)) diff --git a/tests/integration/test_filter.py b/tests/integration/test_filter.py index cede43185..41c51d5fb 100644 --- a/tests/integration/test_filter.py +++ b/tests/integration/test_filter.py @@ -5,7 +5,6 @@ from dask.utils_test import hlg_layer from packaging.version import parse as parseVersion -from dask_sql._compat import PQ_IS_SUPPORT, PQ_NOT_IN_SUPPORT from tests.utils import assert_eq DASK_GT_2022_4_2 = parseVersion(dask.__version__) >= parseVersion("2022.4.2") @@ -182,10 +181,6 @@ def test_filter_year(c): "SELECT * FROM parquet_ddf WHERE b NOT IN (1, 3, 5, 6)", lambda x: x[~x["b"].isin([1, 3, 5, 6])], [[("b", "not in", (1, 3, 5, 6))]], - marks=pytest.mark.skipif( - not PQ_NOT_IN_SUPPORT, - reason="Requires https://github.com/dask/dask/pull/10320", - ), ), ( "SELECT a FROM parquet_ddf WHERE (b > 5 AND b < 10) OR a = 1", @@ -317,10 +312,6 @@ def test_filter_decimal(c, gpu): c.drop_table("df") -@pytest.mark.skipif( - not PQ_IS_SUPPORT, - reason="Requires https://github.com/dask/dask/pull/10320", -) def test_predicate_pushdown_isna(tmpdir): from dask_sql.context import Context diff --git a/tests/integration/test_join.py b/tests/integration/test_join.py index e47721108..5a7101414 100644 --- a/tests/integration/test_join.py +++ b/tests/integration/test_join.py @@ -5,7 +5,6 @@ from dask.utils_test import hlg_layer from dask_sql import Context -from dask_sql._compat import BROADCAST_JOIN_SUPPORT_WORKING from dask_sql.datacontainer import Statistics from tests.utils import assert_eq @@ -521,10 +520,6 @@ def test_join_reorder(c): assert_eq(result_df, expected_df, check_index=False) -@pytest.mark.xfail( - not BROADCAST_JOIN_SUPPORT_WORKING, - reason="Broadcast Joins do not work as expected with dask<2023.1.1", -) @pytest.mark.parametrize("gpu", [False, pytest.param(True, marks=pytest.mark.gpu)]) def test_broadcast_join(c, client, gpu): df1 = dd.from_pandas( diff --git a/tests/integration/test_rex.py b/tests/integration/test_rex.py index e262bac96..addda32c5 100644 --- a/tests/integration/test_rex.py +++ b/tests/integration/test_rex.py @@ -1051,11 +1051,6 @@ def test_totimestamp(c, gpu): True, marks=( pytest.mark.gpu, - pytest.mark.xfail( - not DASK_CUDF_TODATETIME_SUPPORT, - reason="Requires https://github.com/dask/dask/pull/9881", - raises=RuntimeError, - ), ), ), ], @@ -1115,11 +1110,6 @@ def test_extract_date(c, gpu): True, marks=( pytest.mark.gpu, - pytest.mark.xfail( - not DASK_CUDF_TODATETIME_SUPPORT, - reason="Requires https://github.com/dask/dask/pull/9881", - raises=RuntimeError, - ), ), ), ], diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 7c5df717d..9b2fa4946 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -3,7 +3,7 @@ from dask import dataframe as dd from dask.utils_test import hlg_layer -from dask_sql._compat import PQ_IS_SUPPORT, PQ_NOT_IN_SUPPORT +from dask_sql._compat import PQ_IS_SUPPORT from dask_sql.physical.utils.filter import attempt_predicate_pushdown from dask_sql.utils import Pluggable, is_frame @@ -84,10 +84,6 @@ def test_predicate_pushdown_logical(parquet_ddf): assert got_filters == expected_filters -@pytest.mark.skipif( - not PQ_NOT_IN_SUPPORT, - reason="Requires https://github.com/dask/dask/pull/10320", -) def test_predicate_pushdown_in(parquet_ddf): filtered_df = parquet_ddf[ (parquet_ddf["a"] > 1) & (parquet_ddf["b"] < 2) @@ -108,10 +104,6 @@ def test_predicate_pushdown_in(parquet_ddf): assert got_filters == expected_filters -@pytest.mark.skipif( - not PQ_IS_SUPPORT, - reason="Requires dask>=2023.3.1", -) def test_predicate_pushdown_isna(parquet_ddf): filtered_df = parquet_ddf[ (parquet_ddf["a"] > 1) & (parquet_ddf["b"] < 2) From f2070f5adbdf036ac123adc056e8aa9dac4b3228 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Wed, 31 Jan 2024 08:02:15 -0800 Subject: [PATCH 3/9] Linting --- dask_sql/physical/rex/core/call.py | 6 +++++- dask_sql/physical/utils/filter.py | 1 - tests/integration/test_rex.py | 9 ++------- tests/unit/test_utils.py | 1 - 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/dask_sql/physical/rex/core/call.py b/dask_sql/physical/rex/core/call.py index f3f1e751a..a371e1653 100644 --- a/dask_sql/physical/rex/core/call.py +++ b/dask_sql/physical/rex/core/call.py @@ -964,7 +964,11 @@ def date_part(self, what, df: SeriesOrScalar): elif what in {"YEAR", "YEARS"}: return df.year elif what == "DATE": - return df.date() if isinstance(df, pd.Timestamp) else dd.to_datetime(df.strftime("%Y-%m-%d")) + return ( + df.date() + if isinstance(df, pd.Timestamp) + else dd.to_datetime(df.strftime("%Y-%m-%d")) + ) else: raise NotImplementedError(f"Extraction of {what} is not (yet) implemented.") diff --git a/dask_sql/physical/utils/filter.py b/dask_sql/physical/utils/filter.py index 9746193e9..aff9ab5ef 100644 --- a/dask_sql/physical/utils/filter.py +++ b/dask_sql/physical/utils/filter.py @@ -11,7 +11,6 @@ from dask.layers import DataFrameIOLayer from dask.utils import M, apply, is_arraylike - logger = logging.getLogger(__name__) diff --git a/tests/integration/test_rex.py b/tests/integration/test_rex.py index addda32c5..4994d5176 100644 --- a/tests/integration/test_rex.py +++ b/tests/integration/test_rex.py @@ -5,7 +5,6 @@ import pandas as pd import pytest -from dask_sql._compat import DASK_CUDF_TODATETIME_SUPPORT from tests.utils import assert_eq @@ -1049,9 +1048,7 @@ def test_totimestamp(c, gpu): False, pytest.param( True, - marks=( - pytest.mark.gpu, - ), + marks=(pytest.mark.gpu,), ), ], ) @@ -1108,9 +1105,7 @@ def test_extract_date(c, gpu): False, pytest.param( True, - marks=( - pytest.mark.gpu, - ), + marks=(pytest.mark.gpu,), ), ], ) diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 9b2fa4946..6dac75837 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -3,7 +3,6 @@ from dask import dataframe as dd from dask.utils_test import hlg_layer -from dask_sql._compat import PQ_IS_SUPPORT from dask_sql.physical.utils.filter import attempt_predicate_pushdown from dask_sql.utils import Pluggable, is_frame From 0425f071f767daf1ce6de5e676b6f1ad94c96be9 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Wed, 31 Jan 2024 08:20:52 -0800 Subject: [PATCH 4/9] Bump pyarrow and uvicorn deps to unblock environment solve --- continuous_integration/docker/conda.txt | 6 +++--- continuous_integration/docker/main.dockerfile | 4 ++-- continuous_integration/environment-3.10.yaml | 4 ++-- continuous_integration/environment-3.11.yaml | 4 ++-- continuous_integration/environment-3.12.yaml | 4 ++-- continuous_integration/environment-3.9.yaml | 4 ++-- continuous_integration/gpuci/environment-3.10.yaml | 4 ++-- continuous_integration/gpuci/environment-3.9.yaml | 4 ++-- continuous_integration/recipe/meta.yaml | 2 +- docs/environment.yml | 2 +- docs/requirements-docs.txt | 2 +- pyproject.toml | 4 ++-- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/continuous_integration/docker/conda.txt b/continuous_integration/docker/conda.txt index fcca1420a..f2d5591a3 100644 --- a/continuous_integration/docker/conda.txt +++ b/continuous_integration/docker/conda.txt @@ -4,7 +4,7 @@ pandas>=1.4.0 jpype1>=1.0.2 openjdk>=8 maven>=3.6.0 -pytest>=6.0.2 +pytest>=7.0 pytest-cov>=2.10.1 pytest-xdist mock>=4.0.3 @@ -12,8 +12,8 @@ sphinx>=3.2.1 tzlocal>=2.1 fastapi>=0.92.0 httpx>=0.24.1 -uvicorn>=0.13.4 -pyarrow>=6.0.2 +uvicorn>=0.14 +pyarrow>=7.0 prompt_toolkit>=3.0.8 pygments>=2.7.1 scikit-learn>=1.0.0 diff --git a/continuous_integration/docker/main.dockerfile b/continuous_integration/docker/main.dockerfile index 7b0aab3da..fb5d940c8 100644 --- a/continuous_integration/docker/main.dockerfile +++ b/continuous_integration/docker/main.dockerfile @@ -20,13 +20,13 @@ RUN mamba install -y \ "pandas>=1.4.0" \ "fastapi>=0.92.0" \ "httpx>=0.24.1" \ - "uvicorn>=0.13.4" \ + "uvicorn>=0.14" \ "tzlocal>=2.1" \ "prompt_toolkit>=3.0.8" \ "pygments>=2.7.1" \ tabulate \ # additional dependencies - "pyarrow>=6.0.2" \ + "pyarrow>=7.0" \ "scikit-learn>=1.0.0" \ "intake>=0.6.0" \ && conda clean -ay diff --git a/continuous_integration/environment-3.10.yaml b/continuous_integration/environment-3.10.yaml index e600ce978..4a958d020 100644 --- a/continuous_integration/environment-3.10.yaml +++ b/continuous_integration/environment-3.10.yaml @@ -18,7 +18,7 @@ dependencies: - pre-commit - prompt_toolkit>=3.0.8 - psycopg2 -- pyarrow>=6.0.2 +- pyarrow>=7.0 - pygments>=2.7.1 - pyhive - pytest-cov @@ -33,5 +33,5 @@ dependencies: # FIXME: https://github.com/fugue-project/fugue/issues/526 - triad<0.9.2 - tzlocal>=2.1 -- uvicorn>=0.13.4 +- uvicorn>=0.14 - zlib diff --git a/continuous_integration/environment-3.11.yaml b/continuous_integration/environment-3.11.yaml index aa1461045..ead04d0bf 100644 --- a/continuous_integration/environment-3.11.yaml +++ b/continuous_integration/environment-3.11.yaml @@ -18,7 +18,7 @@ dependencies: - pre-commit - prompt_toolkit>=3.0.8 - psycopg2 -- pyarrow>=6.0.2 +- pyarrow>=7.0 - pygments>=2.7.1 - pyhive - pytest-cov @@ -33,5 +33,5 @@ dependencies: # FIXME: https://github.com/fugue-project/fugue/issues/526 - triad<0.9.2 - tzlocal>=2.1 -- uvicorn>=0.13.4 +- uvicorn>=0.14 - zlib diff --git a/continuous_integration/environment-3.12.yaml b/continuous_integration/environment-3.12.yaml index da33682e0..5c3a2715a 100644 --- a/continuous_integration/environment-3.12.yaml +++ b/continuous_integration/environment-3.12.yaml @@ -19,7 +19,7 @@ dependencies: - pre-commit - prompt_toolkit>=3.0.8 - psycopg2 -- pyarrow>=6.0.2 +- pyarrow>=7.0 - pygments>=2.7.1 - pyhive - pytest-cov @@ -34,5 +34,5 @@ dependencies: # FIXME: https://github.com/fugue-project/fugue/issues/526 - triad<0.9.2 - tzlocal>=2.1 -- uvicorn>=0.13.4 +- uvicorn>=0.14 - zlib diff --git a/continuous_integration/environment-3.9.yaml b/continuous_integration/environment-3.9.yaml index 46edf35dd..844f6c2e0 100644 --- a/continuous_integration/environment-3.9.yaml +++ b/continuous_integration/environment-3.9.yaml @@ -18,7 +18,7 @@ dependencies: - pre-commit - prompt_toolkit=3.0.8 - psycopg2 -- pyarrow=6.0.2 +- pyarrow=7.0 - pygments=2.7.1 - pyhive - pytest-cov @@ -33,5 +33,5 @@ dependencies: # FIXME: https://github.com/fugue-project/fugue/issues/526 - triad<0.9.2 - tzlocal=2.1 -- uvicorn=0.13.4 +- uvicorn=0.14 - zlib diff --git a/continuous_integration/gpuci/environment-3.10.yaml b/continuous_integration/gpuci/environment-3.10.yaml index be0b0ad45..68859adc9 100644 --- a/continuous_integration/gpuci/environment-3.10.yaml +++ b/continuous_integration/gpuci/environment-3.10.yaml @@ -24,7 +24,7 @@ dependencies: - pre-commit - prompt_toolkit>=3.0.8 - psycopg2 -- pyarrow>=6.0.2 +- pyarrow>=7.0 - pygments>=2.7.1 - pyhive - pytest-cov @@ -39,7 +39,7 @@ dependencies: # FIXME: https://github.com/fugue-project/fugue/issues/526 - triad<0.9.2 - tzlocal>=2.1 -- uvicorn>=0.13.4 +- uvicorn>=0.14 # GPU-specific requirements - cudatoolkit=11.8 - cudf=24.02 diff --git a/continuous_integration/gpuci/environment-3.9.yaml b/continuous_integration/gpuci/environment-3.9.yaml index fb3e36049..aad6c1f04 100644 --- a/continuous_integration/gpuci/environment-3.9.yaml +++ b/continuous_integration/gpuci/environment-3.9.yaml @@ -24,7 +24,7 @@ dependencies: - pre-commit - prompt_toolkit>=3.0.8 - psycopg2 -- pyarrow>=6.0.2 +- pyarrow>=7.0 - pygments>=2.7.1 - pyhive - pytest-cov @@ -39,7 +39,7 @@ dependencies: # FIXME: https://github.com/fugue-project/fugue/issues/526 - triad<0.9.2 - tzlocal>=2.1 -- uvicorn>=0.13.4 +- uvicorn>=0.14 # GPU-specific requirements - cudatoolkit=11.8 - cudf=24.02 diff --git a/continuous_integration/recipe/meta.yaml b/continuous_integration/recipe/meta.yaml index 2a0d0d476..4b251a9ba 100644 --- a/continuous_integration/recipe/meta.yaml +++ b/continuous_integration/recipe/meta.yaml @@ -36,7 +36,7 @@ requirements: - pandas >=1.4.0 - fastapi >=0.92.0 - httpx >=0.24.1 - - uvicorn >=0.13.4 + - uvicorn >=0.14 - tzlocal >=2.1 - prompt-toolkit >=3.0.8 - pygments >=2.7.1 diff --git a/docs/environment.yml b/docs/environment.yml index 6eff99ba0..d28fe65a5 100644 --- a/docs/environment.yml +++ b/docs/environment.yml @@ -13,7 +13,7 @@ dependencies: - triad<0.9.2 - fastapi>=0.92.0 - httpx>=0.24.1 - - uvicorn>=0.13.4 + - uvicorn>=0.14 - tzlocal>=2.1 - prompt_toolkit>=3.0.8 - pygments>=2.7.1 diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt index d1b686b9a..f98dcd1ff 100644 --- a/docs/requirements-docs.txt +++ b/docs/requirements-docs.txt @@ -8,7 +8,7 @@ fugue>=0.7.3 triad<0.9.2 fastapi>=0.92.0 httpx>=0.24.1 -uvicorn>=0.13.4 +uvicorn>=0.14 tzlocal>=2.1 prompt_toolkit>=3.0.8 pygments>=2.7.1 diff --git a/pyproject.toml b/pyproject.toml index 6b6ec45c1..17cfef1de 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,7 @@ dependencies = [ "pandas>=1.4.0", "fastapi>=0.92.0", "httpx>=0.24.1", - "uvicorn>=0.13.4", + "uvicorn>=0.14", "tzlocal>=2.1", "prompt_toolkit>=3.0.8", "pygments>=2.7.1", @@ -51,7 +51,7 @@ dev = [ "pytest-cov>=2.10.1", "mock>=4.0.3", "sphinx>=3.2.1", - "pyarrow>=6.0.2", + "pyarrow>=7.0", "scikit-learn>=1.0.0", "intake>=0.6.0", "pre-commit", From 4545c50ad58663aaa013525911c0a35808cf9055 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Wed, 31 Jan 2024 08:30:55 -0800 Subject: [PATCH 5/9] Undo unintentional pytest mindep change --- continuous_integration/docker/conda.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/continuous_integration/docker/conda.txt b/continuous_integration/docker/conda.txt index f2d5591a3..b92ee6da5 100644 --- a/continuous_integration/docker/conda.txt +++ b/continuous_integration/docker/conda.txt @@ -4,7 +4,7 @@ pandas>=1.4.0 jpype1>=1.0.2 openjdk>=8 maven>=3.6.0 -pytest>=7.0 +pytest>=6.0.2 pytest-cov>=2.10.1 pytest-xdist mock>=4.0.3 From 2bbcfbc7d3cd42c33efbffc512985d23fe52735e Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Fri, 1 Mar 2024 08:38:04 -0800 Subject: [PATCH 6/9] Pin to dask 2024.1.1 --- continuous_integration/docker/conda.txt | 2 +- continuous_integration/docker/main.dockerfile | 2 +- continuous_integration/environment-3.10.yaml | 2 +- continuous_integration/environment-3.11.yaml | 2 +- continuous_integration/environment-3.12.yaml | 2 +- continuous_integration/gpuci/environment-3.10.yaml | 2 +- continuous_integration/gpuci/environment-3.9.yaml | 2 +- continuous_integration/recipe/meta.yaml | 2 +- docs/environment.yml | 2 +- docs/requirements-docs.txt | 2 +- pyproject.toml | 4 ++-- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/continuous_integration/docker/conda.txt b/continuous_integration/docker/conda.txt index b92ee6da5..f9d709e8b 100644 --- a/continuous_integration/docker/conda.txt +++ b/continuous_integration/docker/conda.txt @@ -1,5 +1,5 @@ python>=3.9 -dask>=2023.6.0,<=2024.1.1 +dask==2024.1.1 pandas>=1.4.0 jpype1>=1.0.2 openjdk>=8 diff --git a/continuous_integration/docker/main.dockerfile b/continuous_integration/docker/main.dockerfile index fb5d940c8..ee6507dd0 100644 --- a/continuous_integration/docker/main.dockerfile +++ b/continuous_integration/docker/main.dockerfile @@ -16,7 +16,7 @@ RUN mamba install -y \ # build requirements "maturin>=1.3,<1.4" \ # core dependencies - "dask>=2023.6.0,<=2024.1.1" \ + "dask==2024.1.1" \ "pandas>=1.4.0" \ "fastapi>=0.92.0" \ "httpx>=0.24.1" \ diff --git a/continuous_integration/environment-3.10.yaml b/continuous_integration/environment-3.10.yaml index 4a958d020..fa7a18e26 100644 --- a/continuous_integration/environment-3.10.yaml +++ b/continuous_integration/environment-3.10.yaml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - c-compiler -- dask>=2023.6.0,<=2024.1.1 +- dask==2024.1.1 - fastapi>=0.92.0 - fugue>=0.7.3 - httpx>=0.24.1 diff --git a/continuous_integration/environment-3.11.yaml b/continuous_integration/environment-3.11.yaml index ead04d0bf..46ed438b7 100644 --- a/continuous_integration/environment-3.11.yaml +++ b/continuous_integration/environment-3.11.yaml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - c-compiler -- dask>=2023.6.0,<=2024.1.1 +- dask==2024.1.1 - fastapi>=0.92.0 - fugue>=0.7.3 - httpx>=0.24.1 diff --git a/continuous_integration/environment-3.12.yaml b/continuous_integration/environment-3.12.yaml index 5c3a2715a..0889703fb 100644 --- a/continuous_integration/environment-3.12.yaml +++ b/continuous_integration/environment-3.12.yaml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - c-compiler -- dask>=2023.6.0,<=2024.1.1 +- dask==2024.1.1 - fastapi>=0.92.0 - fugue>=0.7.3 - httpx>=0.24.1 diff --git a/continuous_integration/gpuci/environment-3.10.yaml b/continuous_integration/gpuci/environment-3.10.yaml index 68859adc9..f79f15d74 100644 --- a/continuous_integration/gpuci/environment-3.10.yaml +++ b/continuous_integration/gpuci/environment-3.10.yaml @@ -9,7 +9,7 @@ channels: dependencies: - c-compiler - zlib -- dask>=2023.6.0,<=2024.1.1 +- dask==2024.1.1 - fastapi>=0.92.0 - fugue>=0.7.3 - httpx>=0.24.1 diff --git a/continuous_integration/gpuci/environment-3.9.yaml b/continuous_integration/gpuci/environment-3.9.yaml index aad6c1f04..9eaa715f4 100644 --- a/continuous_integration/gpuci/environment-3.9.yaml +++ b/continuous_integration/gpuci/environment-3.9.yaml @@ -9,7 +9,7 @@ channels: dependencies: - c-compiler - zlib -- dask>=2023.6.0,<=2024.1.1 +- dask==2024.1.1 - fastapi>=0.92.0 - fugue>=0.7.3 - httpx>=0.24.1 diff --git a/continuous_integration/recipe/meta.yaml b/continuous_integration/recipe/meta.yaml index 4b251a9ba..914f9da0b 100644 --- a/continuous_integration/recipe/meta.yaml +++ b/continuous_integration/recipe/meta.yaml @@ -32,7 +32,7 @@ requirements: - xz # [linux64] run: - python - - dask >=2023.6.0,<=2024.1.1 + - dask ==2024.1.1 - pandas >=1.4.0 - fastapi >=0.92.0 - httpx >=0.24.1 diff --git a/docs/environment.yml b/docs/environment.yml index d28fe65a5..98b2f0f08 100644 --- a/docs/environment.yml +++ b/docs/environment.yml @@ -6,7 +6,7 @@ dependencies: - sphinx>=4.0.0 - sphinx-tabs - dask-sphinx-theme>=2.0.3 - - dask>=2023.6.0,<=2024.1.1 + - dask==2024.1.1 - pandas>=1.4.0 - fugue>=0.7.3 # FIXME: https://github.com/fugue-project/fugue/issues/526 diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt index f98dcd1ff..689599446 100644 --- a/docs/requirements-docs.txt +++ b/docs/requirements-docs.txt @@ -1,7 +1,7 @@ sphinx>=4.0.0 sphinx-tabs dask-sphinx-theme>=3.0.0 -dask>=2023.6.0,<=2024.1.1 +dask==2024.1.1 pandas>=1.4.0 fugue>=0.7.3 # FIXME: https://github.com/fugue-project/fugue/issues/526 diff --git a/pyproject.toml b/pyproject.toml index 17cfef1de..a66afaf0b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,8 +27,8 @@ classifiers = [ readme = "README.md" requires-python = ">=3.9" dependencies = [ - "dask[dataframe]>=2023.6.0,<=2024.1.1", - "distributed>=2023.6.0,<=2024.1.1", + "dask[dataframe]==2024.1.1", + "distributed==2024.1.1", "pandas>=1.4.0", "fastapi>=0.92.0", "httpx>=0.24.1", From 7b19f67645944e613469bfe0243cd92241c7cf51 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Fri, 1 Mar 2024 10:18:28 -0800 Subject: [PATCH 7/9] Tighten sklearn xfail in test_model.py --- tests/integration/test_model.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/integration/test_model.py b/tests/integration/test_model.py index 1dcba616b..4ef441f23 100644 --- a/tests/integration/test_model.py +++ b/tests/integration/test_model.py @@ -20,7 +20,7 @@ sklearn = pytest.importorskip("sklearn") -SKLEARN_GT_130 = parseVersion(sklearn.__version__) >= parseVersion("1.4") +SKLEARN_EQ_140 = parseVersion(sklearn.__version__) == parseVersion("1.4.0") def check_trained_model(c, model_name="my_model", df_name="timeseries"): @@ -909,7 +909,9 @@ def test_ml_experiment(c, client): ) -@pytest.mark.xfail(reason="tpot is broken with sklearn>=1.4", condition=SKLEARN_GT_130) +@pytest.mark.xfail( + reason="tpot is broken with sklearn==1.4.0", condition=SKLEARN_EQ_140 +) def test_experiment_automl_classifier(c, client): tpot = pytest.importorskip("tpot", reason="tpot not installed") @@ -934,7 +936,9 @@ def test_experiment_automl_classifier(c, client): check_trained_model(c, "my_automl_exp1") -@pytest.mark.xfail(reason="tpot is broken with sklearn>=1.4", condition=SKLEARN_GT_130) +@pytest.mark.xfail( + reason="tpot is broken with sklearn==1.4.0", condition=SKLEARN_EQ_140 +) def test_experiment_automl_regressor(c, client): tpot = pytest.importorskip("tpot", reason="tpot not installed") From 416e51a43e40b024228d596713527a2a6d24a761 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Fri, 1 Mar 2024 10:47:14 -0800 Subject: [PATCH 8/9] Drop tpot from 3.12 CI deps --- continuous_integration/environment-3.12.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/continuous_integration/environment-3.12.yaml b/continuous_integration/environment-3.12.yaml index ec1f0a730..b30619044 100644 --- a/continuous_integration/environment-3.12.yaml +++ b/continuous_integration/environment-3.12.yaml @@ -30,7 +30,8 @@ dependencies: - scikit-learn>=1.0.0 - sphinx - sqlalchemy -- tpot>=0.12.0 +# TODO: add once tpot supports python 3.12 +# - tpot>=0.12.0 # FIXME: https://github.com/fugue-project/fugue/issues/526 - triad<0.9.2 - tzlocal>=2.1 From 274fc7250ae233739319bfa03d412e5bdfaed44a Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Fri, 1 Mar 2024 11:35:23 -0800 Subject: [PATCH 9/9] Explicitly add xgboost to testing deps --- continuous_integration/environment-3.10.yaml | 1 + continuous_integration/environment-3.11.yaml | 1 + continuous_integration/environment-3.12.yaml | 1 + continuous_integration/environment-3.9.yaml | 1 + continuous_integration/gpuci/environment-3.10.yaml | 1 + continuous_integration/gpuci/environment-3.9.yaml | 1 + 6 files changed, 6 insertions(+) diff --git a/continuous_integration/environment-3.10.yaml b/continuous_integration/environment-3.10.yaml index 510ab17e9..94059ac5a 100644 --- a/continuous_integration/environment-3.10.yaml +++ b/continuous_integration/environment-3.10.yaml @@ -26,6 +26,7 @@ dependencies: - pytest-xdist - pytest - python=3.10 +- py-xgboost>=1.7.0 - scikit-learn>=1.0.0 - sphinx - sqlalchemy diff --git a/continuous_integration/environment-3.11.yaml b/continuous_integration/environment-3.11.yaml index b678cb5d5..5074dd695 100644 --- a/continuous_integration/environment-3.11.yaml +++ b/continuous_integration/environment-3.11.yaml @@ -26,6 +26,7 @@ dependencies: - pytest-xdist - pytest - python=3.11 +- py-xgboost>=1.7.0 - scikit-learn>=1.0.0 - sphinx - sqlalchemy diff --git a/continuous_integration/environment-3.12.yaml b/continuous_integration/environment-3.12.yaml index b30619044..390735f83 100644 --- a/continuous_integration/environment-3.12.yaml +++ b/continuous_integration/environment-3.12.yaml @@ -27,6 +27,7 @@ dependencies: - pytest-xdist - pytest - python=3.12 +- py-xgboost>=1.7.0 - scikit-learn>=1.0.0 - sphinx - sqlalchemy diff --git a/continuous_integration/environment-3.9.yaml b/continuous_integration/environment-3.9.yaml index 87fbc668d..015e829d0 100644 --- a/continuous_integration/environment-3.9.yaml +++ b/continuous_integration/environment-3.9.yaml @@ -26,6 +26,7 @@ dependencies: - pytest-xdist - pytest - python=3.9 +- py-xgboost=1.7.0 - scikit-learn=1.0.0 - sphinx # TODO: remove this constraint when we require pandas>2 diff --git a/continuous_integration/gpuci/environment-3.10.yaml b/continuous_integration/gpuci/environment-3.10.yaml index 6de6debe4..8cb539352 100644 --- a/continuous_integration/gpuci/environment-3.10.yaml +++ b/continuous_integration/gpuci/environment-3.10.yaml @@ -32,6 +32,7 @@ dependencies: - pytest-xdist - pytest - python=3.10 +- py-xgboost>=1.7.0 - scikit-learn>=1.0.0 - sphinx - sqlalchemy diff --git a/continuous_integration/gpuci/environment-3.9.yaml b/continuous_integration/gpuci/environment-3.9.yaml index bd1a43f20..8fa8c7f6d 100644 --- a/continuous_integration/gpuci/environment-3.9.yaml +++ b/continuous_integration/gpuci/environment-3.9.yaml @@ -32,6 +32,7 @@ dependencies: - pytest-xdist - pytest - python=3.9 +- py-xgboost>=1.7.0 - scikit-learn>=1.0.0 - sphinx - sqlalchemy