From c099c0630d272256b909420af5e029d2aaa7d718 Mon Sep 17 00:00:00 2001 From: Dan Yeaw Date: Thu, 22 May 2025 12:35:42 -0400 Subject: [PATCH 1/4] Improve fsspec-proxy dependency groups --- README.md | 34 ++++++++++++++++++++++++++++++++++ fsspec-proxy/pyproject.toml | 11 ++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 61e9500..8521a91 100644 --- a/README.md +++ b/README.md @@ -38,3 +38,37 @@ Demo With the server running locally, now navigate to: https://martindurant.pyscriptapps.com/empty-tundra/latest/ + +Installation with Optional Dependencies (fsspec-proxy) +----------------------------------------------------- + +The following steps apply only to the `fsspec-proxy` package. The package has +several optional dependency groups: + +- `s3`: Required for S3 access (needed for the "Conda Stats" example) +- `anaconda`: Required for Anaconda Cloud access +- `all`: All optional dependencies + +To install dependencies from Anaconda Cloud (like `anaconda-cloud-storage`), +configure pip to use the Anaconda Cloud index as an extra source. Create (or +edit) the file `~/.config/pip/pip.conf` (on macOS/Linux) or +`%APPDATA%\pip\pip.ini` (on Windows) and add: + + [global] + extra-index-url = https://pypi.anaconda.org/anaconda-cloud/simple + +Then install the desired optional dependencies: + +```bash +# For S3 support (including the "Conda Stats" example) +pip install .[s3] + +# For Anaconda Cloud support +pip install .[anaconda] + +# For all optional dependencies +pip install .[all] +``` + +This will ensure that all required packages for `fsspec-proxy`, including those +only available on Anaconda Cloud, are installed. diff --git a/fsspec-proxy/pyproject.toml b/fsspec-proxy/pyproject.toml index 1cbda7e..d852a58 100644 --- a/fsspec-proxy/pyproject.toml +++ b/fsspec-proxy/pyproject.toml @@ -30,7 +30,16 @@ dependencies = [ dynamic = ["version", "urls", "keywords"] [project.optional-dependencies] -test = ["anaconda-cloud-storage", "s3fs"] +s3 = [ + "s3fs" +] +anaconda = [ + "anaconda-cloud-storage" +] +all = [ + "s3fs", + "anaconda-cloud-storage" +] [tool.hatch.build.hooks.version] path = "fsspec_proxy/_version.py" From 033fc8c8bb5d2fbaf9a35834ad21b20344ce4ec6 Mon Sep 17 00:00:00 2001 From: Dan Yeaw Date: Thu, 22 May 2025 17:01:03 -0400 Subject: [PATCH 2/4] Include pip CLI option --- README.md | 48 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 8521a91..516701e 100644 --- a/README.md +++ b/README.md @@ -49,25 +49,51 @@ several optional dependency groups: - `anaconda`: Required for Anaconda Cloud access - `all`: All optional dependencies -To install dependencies from Anaconda Cloud (like `anaconda-cloud-storage`), -configure pip to use the Anaconda Cloud index as an extra source. Create (or -edit) the file `~/.config/pip/pip.conf` (on macOS/Linux) or -`%APPDATA%\pip\pip.ini` (on Windows) and add: +S3 Support +~~~~~~~~~~ + +To use S3 functionality (including the "Conda Stats" example): + +```bash +pip install .[s3] +``` + +Anaconda Cloud Support +~~~~~~~~~~~~~~~~~~~~~~ + +To use Anaconda Cloud functionality, you'll need to install dependencies from +the Anaconda Cloud index. You can do this in two ways: + +1. Configure pip to use the Anaconda Cloud index as an extra source. Create (or + edit) the file `~/.config/pip/pip.conf` (on macOS/Linux) or + `%APPDATA%\pip\pip.ini` (on Windows) and add: [global] extra-index-url = https://pypi.anaconda.org/anaconda-cloud/simple -Then install the desired optional dependencies: + Then install: -```bash -# For S3 support (including the "Conda Stats" example) -pip install .[s3] + ```bash + pip install .[anaconda] + ``` + +2. Or install directly using pip's `--extra-index-url` option: + + ```bash + pip install .[anaconda] --extra-index-url https://pypi.anaconda.org/anaconda-cloud/simple + ``` -# For Anaconda Cloud support -pip install .[anaconda] +All Optional Dependencies +~~~~~~~~~~~~~~~~~~~~~~~~ -# For all optional dependencies +To install all optional dependencies: + +```bash +# With pip config pip install .[all] + +# Or directly with extra index +pip install .[all] --extra-index-url https://pypi.anaconda.org/anaconda-cloud/simple ``` This will ensure that all required packages for `fsspec-proxy`, including those From 21a8f477e365240c44ae4d1bf2a25ea0d41fe0a1 Mon Sep 17 00:00:00 2001 From: Dan Yeaw Date: Thu, 22 May 2025 17:04:27 -0400 Subject: [PATCH 3/4] Use subgroups for all dependencies --- fsspec-proxy/pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fsspec-proxy/pyproject.toml b/fsspec-proxy/pyproject.toml index d852a58..57b0906 100644 --- a/fsspec-proxy/pyproject.toml +++ b/fsspec-proxy/pyproject.toml @@ -37,8 +37,8 @@ anaconda = [ "anaconda-cloud-storage" ] all = [ - "s3fs", - "anaconda-cloud-storage" + ".[s3]", + ".[anaconda]" ] [tool.hatch.build.hooks.version] From e7544ab13eb2630403f8e7ec3bd9f3a21eddba69 Mon Sep 17 00:00:00 2001 From: Dan Yeaw Date: Thu, 22 May 2025 17:10:31 -0400 Subject: [PATCH 4/4] Use PEP735 dependency groups --- fsspec-proxy/pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fsspec-proxy/pyproject.toml b/fsspec-proxy/pyproject.toml index 57b0906..23dae2d 100644 --- a/fsspec-proxy/pyproject.toml +++ b/fsspec-proxy/pyproject.toml @@ -29,7 +29,7 @@ dependencies = [ ] dynamic = ["version", "urls", "keywords"] -[project.optional-dependencies] +[dependency-groups] s3 = [ "s3fs" ] @@ -37,8 +37,8 @@ anaconda = [ "anaconda-cloud-storage" ] all = [ - ".[s3]", - ".[anaconda]" + {include-group = "s3"}, + {include-group = "anaconda"} ] [tool.hatch.build.hooks.version]