From 43f0950a1f07ab233b5a52430f908e48c073dfc2 Mon Sep 17 00:00:00 2001 From: jakirkham Date: Tue, 25 Oct 2022 12:24:49 -0700 Subject: [PATCH 1/5] Require Click 6.6+ in Dask --- continuous_integration/environment-3.10.yaml | 1 + continuous_integration/environment-3.8.yaml | 1 + continuous_integration/environment-3.9.yaml | 1 + .../environment-mindeps-array.yaml | 1 + .../environment-mindeps-dataframe.yaml | 1 + .../environment-mindeps-distributed.yaml | 1 + .../environment-mindeps-non-optional.yaml | 1 + continuous_integration/recipe/meta.yaml | 1 + .../scripts/test_imports.sh | 2 +- dask/__main__.py | 20 +------------------ dask/cli.py | 14 ++----------- dask/tests/test_cli.py | 6 ++---- setup.py | 1 + 13 files changed, 15 insertions(+), 36 deletions(-) diff --git a/continuous_integration/environment-3.10.yaml b/continuous_integration/environment-3.10.yaml index 061e3777875..0902653ad71 100644 --- a/continuous_integration/environment-3.10.yaml +++ b/continuous_integration/environment-3.10.yaml @@ -44,6 +44,7 @@ dependencies: # Need recent version of s3fs to support newer aiobotocore versions # https://github.com/dask/s3fs/issues/514 - s3fs>=2021.8.0 + - click - cloudpickle - crick - cytoolz diff --git a/continuous_integration/environment-3.8.yaml b/continuous_integration/environment-3.8.yaml index 2b2220286ef..d4f384118fa 100644 --- a/continuous_integration/environment-3.8.yaml +++ b/continuous_integration/environment-3.8.yaml @@ -44,6 +44,7 @@ dependencies: # Need recent version of s3fs to support newer aiobotocore versions # https://github.com/dask/s3fs/issues/514 - s3fs>=2021.8.0 + - click - cloudpickle - crick - cytoolz diff --git a/continuous_integration/environment-3.9.yaml b/continuous_integration/environment-3.9.yaml index 6fbe3972221..7c9fb609f5c 100644 --- a/continuous_integration/environment-3.9.yaml +++ b/continuous_integration/environment-3.9.yaml @@ -44,6 +44,7 @@ dependencies: # Need recent version of s3fs to support newer aiobotocore versions # https://github.com/dask/s3fs/issues/514 - s3fs>=2021.8.0 + - click - cloudpickle - crick - cytoolz diff --git a/continuous_integration/environment-mindeps-array.yaml b/continuous_integration/environment-mindeps-array.yaml index d10b515095b..b2a559de14c 100644 --- a/continuous_integration/environment-mindeps-array.yaml +++ b/continuous_integration/environment-mindeps-array.yaml @@ -6,6 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 + - click>=6.6 - cloudpickle=1.1.1 - partd=0.3.10 - fsspec=0.6.0 diff --git a/continuous_integration/environment-mindeps-dataframe.yaml b/continuous_integration/environment-mindeps-dataframe.yaml index 9a5e9a2f7d9..ae0e635d547 100644 --- a/continuous_integration/environment-mindeps-dataframe.yaml +++ b/continuous_integration/environment-mindeps-dataframe.yaml @@ -6,6 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 + - click>=6.6 - cloudpickle=1.1.1 - partd=0.3.10 - fsspec=0.6.0 diff --git a/continuous_integration/environment-mindeps-distributed.yaml b/continuous_integration/environment-mindeps-distributed.yaml index 6bf3f0c340c..4eb4f3460c8 100644 --- a/continuous_integration/environment-mindeps-distributed.yaml +++ b/continuous_integration/environment-mindeps-distributed.yaml @@ -6,6 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 + - click>=6.6 - cloudpickle=1.5.0 # this is in the min from distributed - partd=0.3.10 - fsspec=0.6.0 diff --git a/continuous_integration/environment-mindeps-non-optional.yaml b/continuous_integration/environment-mindeps-non-optional.yaml index 8e9b7e6da02..9dc82adc04c 100644 --- a/continuous_integration/environment-mindeps-non-optional.yaml +++ b/continuous_integration/environment-mindeps-non-optional.yaml @@ -6,6 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 + - click>=6.6 - cloudpickle=1.1.1 - partd=0.3.10 - fsspec=0.6.0 diff --git a/continuous_integration/recipe/meta.yaml b/continuous_integration/recipe/meta.yaml index eacd3535fda..561c392653a 100644 --- a/continuous_integration/recipe/meta.yaml +++ b/continuous_integration/recipe/meta.yaml @@ -24,6 +24,7 @@ requirements: run: - python >=3.8 + - click >=6.6 - cloudpickle >=1.1.1 - fsspec >=0.6.0 - packaging >=20.0 diff --git a/continuous_integration/scripts/test_imports.sh b/continuous_integration/scripts/test_imports.sh index e49f38a0ed1..1f259cc6e79 100644 --- a/continuous_integration/scripts/test_imports.sh +++ b/continuous_integration/scripts/test_imports.sh @@ -5,7 +5,7 @@ set -o errexit test_import () { echo "Create environment: python=$PYTHON_VERSION $1" # Create an empty environment - mamba create -q -y -n test-imports -c conda-forge python=$PYTHON_VERSION packaging pyyaml fsspec toolz partd cloudpickle $1 + mamba create -q -y -n test-imports -c conda-forge python=$PYTHON_VERSION packaging pyyaml fsspec toolz partd click cloudpickle $1 conda activate test-imports if [[ $1 =~ "distributed" ]]; then # dask[distributed] depends on the latest version of distributed diff --git a/dask/__main__.py b/dask/__main__.py index 8185642c09b..f41ff6e0aa3 100644 --- a/dask/__main__.py +++ b/dask/__main__.py @@ -1,25 +1,7 @@ -import sys - -try: - import click -except ImportError: - click = None +from dask.cli import run_cli def main(): - - if click is None: - msg = ( - "The dask command requires click to be installed.\n\n" - "Install with conda or pip:\n\n" - " conda install click\n" - " pip install click\n" - ) - print(msg, file=sys.stderr) - return 1 - - from dask.cli import run_cli - run_cli() diff --git a/dask/cli.py b/dask/cli.py index 5060b6d0a1b..87816ecce5c 100644 --- a/dask/cli.py +++ b/dask/cli.py @@ -1,20 +1,10 @@ import warnings +import click + from dask import __version__ from dask.compatibility import entry_points -try: - import click -except ImportError as e: - msg = ( - "The dask.cli module requires click to be installed.\n\n" - "Install with conda or pip:\n\n" - " conda install click\n" - " pip install click\n" - ) - raise ImportError(msg) from e - - CONTEXT_SETTINGS = { "help_option_names": ["-h", "--help"], "max_content_width": 88, diff --git a/dask/tests/test_cli.py b/dask/tests/test_cli.py index 44e6ceb4e6e..a7e2d5f8623 100644 --- a/dask/tests/test_cli.py +++ b/dask/tests/test_cli.py @@ -1,12 +1,10 @@ -import pytest - -click = pytest.importorskip("click") - import importlib.metadata import json import platform import sys +import click +import pytest from click.testing import CliRunner import dask diff --git a/setup.py b/setup.py index e487caa1685..5bfca46847a 100755 --- a/setup.py +++ b/setup.py @@ -33,6 +33,7 @@ ] install_requires = [ + "click >= 6.6", "cloudpickle >= 1.1.1", "fsspec >= 0.6.0", "packaging >= 20.0", From 926c65e471864e8443a61abe10695cd323e4548b Mon Sep 17 00:00:00 2001 From: jakirkham Date: Thu, 27 Oct 2022 08:25:38 -0700 Subject: [PATCH 2/5] Include James' review comments Co-authored-by: James Bourbeau --- continuous_integration/environment-mindeps-array.yaml | 2 +- continuous_integration/environment-mindeps-dataframe.yaml | 2 +- continuous_integration/environment-mindeps-distributed.yaml | 2 +- continuous_integration/environment-mindeps-non-optional.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/continuous_integration/environment-mindeps-array.yaml b/continuous_integration/environment-mindeps-array.yaml index b2a559de14c..ff1e732677b 100644 --- a/continuous_integration/environment-mindeps-array.yaml +++ b/continuous_integration/environment-mindeps-array.yaml @@ -6,7 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 - - click>=6.6 + - click=6.6 - cloudpickle=1.1.1 - partd=0.3.10 - fsspec=0.6.0 diff --git a/continuous_integration/environment-mindeps-dataframe.yaml b/continuous_integration/environment-mindeps-dataframe.yaml index ae0e635d547..8c5940755d8 100644 --- a/continuous_integration/environment-mindeps-dataframe.yaml +++ b/continuous_integration/environment-mindeps-dataframe.yaml @@ -6,7 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 - - click>=6.6 + - click=6.6 - cloudpickle=1.1.1 - partd=0.3.10 - fsspec=0.6.0 diff --git a/continuous_integration/environment-mindeps-distributed.yaml b/continuous_integration/environment-mindeps-distributed.yaml index 4eb4f3460c8..0f23ba0b18e 100644 --- a/continuous_integration/environment-mindeps-distributed.yaml +++ b/continuous_integration/environment-mindeps-distributed.yaml @@ -6,7 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 - - click>=6.6 + - click=6.6 - cloudpickle=1.5.0 # this is in the min from distributed - partd=0.3.10 - fsspec=0.6.0 diff --git a/continuous_integration/environment-mindeps-non-optional.yaml b/continuous_integration/environment-mindeps-non-optional.yaml index 9dc82adc04c..0c5b21dc71a 100644 --- a/continuous_integration/environment-mindeps-non-optional.yaml +++ b/continuous_integration/environment-mindeps-non-optional.yaml @@ -6,7 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 - - click>=6.6 + - click=6.6 - cloudpickle=1.1.1 - partd=0.3.10 - fsspec=0.6.0 From a2b69a459df7fe5ef365f2ab1d1f600ca0eedbdd Mon Sep 17 00:00:00 2001 From: jakirkham Date: Thu, 27 Oct 2022 09:47:40 -0700 Subject: [PATCH 3/5] Bump click to 7.0 (first package using `noarch`) --- continuous_integration/environment-mindeps-array.yaml | 2 +- continuous_integration/environment-mindeps-dataframe.yaml | 2 +- continuous_integration/environment-mindeps-distributed.yaml | 2 +- continuous_integration/environment-mindeps-non-optional.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/continuous_integration/environment-mindeps-array.yaml b/continuous_integration/environment-mindeps-array.yaml index ff1e732677b..85fac2159ca 100644 --- a/continuous_integration/environment-mindeps-array.yaml +++ b/continuous_integration/environment-mindeps-array.yaml @@ -6,7 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 - - click=6.6 + - click=7.0 - cloudpickle=1.1.1 - partd=0.3.10 - fsspec=0.6.0 diff --git a/continuous_integration/environment-mindeps-dataframe.yaml b/continuous_integration/environment-mindeps-dataframe.yaml index 8c5940755d8..ab2b634155c 100644 --- a/continuous_integration/environment-mindeps-dataframe.yaml +++ b/continuous_integration/environment-mindeps-dataframe.yaml @@ -6,7 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 - - click=6.6 + - click=7.0 - cloudpickle=1.1.1 - partd=0.3.10 - fsspec=0.6.0 diff --git a/continuous_integration/environment-mindeps-distributed.yaml b/continuous_integration/environment-mindeps-distributed.yaml index 0f23ba0b18e..1d5dab72c71 100644 --- a/continuous_integration/environment-mindeps-distributed.yaml +++ b/continuous_integration/environment-mindeps-distributed.yaml @@ -6,7 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 - - click=6.6 + - click=7.0 - cloudpickle=1.5.0 # this is in the min from distributed - partd=0.3.10 - fsspec=0.6.0 diff --git a/continuous_integration/environment-mindeps-non-optional.yaml b/continuous_integration/environment-mindeps-non-optional.yaml index 0c5b21dc71a..7a9981dd482 100644 --- a/continuous_integration/environment-mindeps-non-optional.yaml +++ b/continuous_integration/environment-mindeps-non-optional.yaml @@ -6,7 +6,7 @@ dependencies: - packaging=20.0 - python=3.8 - pyyaml>=5.3.1 - - click=6.6 + - click=7.0 - cloudpickle=1.1.1 - partd=0.3.10 - fsspec=0.6.0 From c417db870dbf46e6cc1ac95b5f1b5f8bf9466b5f Mon Sep 17 00:00:00 2001 From: James Bourbeau Date: Thu, 27 Oct 2022 14:54:52 -0500 Subject: [PATCH 4/5] Fix from Doug --- dask/tests/test_cli.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dask/tests/test_cli.py b/dask/tests/test_cli.py index a7e2d5f8623..2adab2b77da 100644 --- a/dask/tests/test_cli.py +++ b/dask/tests/test_cli.py @@ -40,7 +40,7 @@ def test_info_versions(): assert table["distributed"] == distributed_version -@click.group +@click.group() def dummy_cli(): pass @@ -82,7 +82,7 @@ def test_register_command_ep(): assert dummy_cli.commands["good"] is good_command -@click.group +@click.group() def dummy_cli_2(): pass From d417e9838f77676a42f2c7058ab76a99b695b1dd Mon Sep 17 00:00:00 2001 From: jakirkham Date: Fri, 28 Oct 2022 09:30:06 -0700 Subject: [PATCH 5/5] Update requirement to Click 7+ Since this is what we test with and we can be sure it works. --- continuous_integration/recipe/meta.yaml | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/continuous_integration/recipe/meta.yaml b/continuous_integration/recipe/meta.yaml index 2657249ab7a..269fef34f4b 100644 --- a/continuous_integration/recipe/meta.yaml +++ b/continuous_integration/recipe/meta.yaml @@ -25,7 +25,7 @@ requirements: run: - python >=3.8 - - click >=6.6 + - click >=7.0 - cloudpickle >=1.1.1 - fsspec >=0.6.0 - packaging >=20.0 diff --git a/setup.py b/setup.py index 5bfca46847a..7949e17a7d4 100755 --- a/setup.py +++ b/setup.py @@ -33,7 +33,7 @@ ] install_requires = [ - "click >= 6.6", + "click >= 7.0", "cloudpickle >= 1.1.1", "fsspec >= 0.6.0", "packaging >= 20.0",