From 2473fd1afac9d459ffbbdf13918739f15a4e80c0 Mon Sep 17 00:00:00 2001 From: Charles Beauville Date: Fri, 13 Sep 2024 15:05:46 +0200 Subject: [PATCH 1/7] ci(*:skip) Add TOML linting --- dev/format.sh | 4 + dev/test.sh | 10 ++ e2e/docker/pyproject.toml | 10 +- e2e/e2e-bare-auth/pyproject.toml | 4 +- e2e/e2e-bare-https/pyproject.toml | 4 +- e2e/e2e-bare/pyproject.toml | 4 +- e2e/e2e-fastai/pyproject.toml | 6 +- e2e/e2e-jax/pyproject.toml | 10 +- e2e/e2e-opacus/pyproject.toml | 8 +- e2e/e2e-pandas/pyproject.toml | 16 +-- e2e/e2e-pytorch-lightning/pyproject.toml | 6 +- e2e/e2e-pytorch/pyproject.toml | 8 +- e2e/e2e-scikit-learn/pyproject.toml | 10 +- e2e/e2e-tensorflow/pyproject.toml | 6 +- examples/advanced-pytorch/pyproject.toml | 4 +- examples/custom-metrics/pyproject.toml | 14 +- .../pyproject.toml | 10 +- examples/fl-dp-sa/pyproject.toml | 10 +- examples/fl-tabular/pyproject.toml | 10 +- examples/flower-authentication/pyproject.toml | 12 +- .../flower-secure-aggregation/pyproject.toml | 8 +- examples/flowertune-llm/pyproject.toml | 22 ++-- examples/flowertune-vit/pyproject.toml | 10 +- examples/opacus/pyproject.toml | 18 ++- .../pyproject.toml | 8 +- examples/quickstart-fastai/pyproject.toml | 10 +- .../quickstart-huggingface/pyproject.toml | 22 ++-- examples/quickstart-mlcube/pyproject.toml | 2 +- examples/quickstart-mlx/pyproject.toml | 8 +- examples/quickstart-monai/pyproject.toml | 8 +- .../pyproject.toml | 12 +- examples/quickstart-pytorch/pyproject.toml | 8 +- .../quickstart-sklearn-tabular/pyproject.toml | 6 +- examples/quickstart-tensorflow/pyproject.toml | 8 +- examples/sklearn-logreg-mnist/pyproject.toml | 12 +- examples/tensorflow-privacy/pyproject.toml | 16 +-- examples/xgboost-quickstart/pyproject.toml | 8 +- pyproject.toml | 121 ++++++++---------- 38 files changed, 229 insertions(+), 244 deletions(-) diff --git a/dev/format.sh b/dev/format.sh index e1e2abc307f1..dc82a034d1e3 100755 --- a/dev/format.sh +++ b/dev/format.sh @@ -2,6 +2,8 @@ set -e cd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"/../ +taplo fmt pyproject.toml + # Python python -m flwr_tool.check_copyright src/py/flwr python -m flwr_tool.init_py_fix src/py/flwr @@ -17,6 +19,7 @@ find src/proto/flwr/proto -name *.proto | grep "\.proto" | xargs clang-format -i # Examples python -m black -q examples python -m docformatter -i -r examples +taplo fmt examples/*/pyproject.toml # Benchmarks python -m isort benchmarks @@ -27,6 +30,7 @@ python -m docformatter -i -r benchmarks python -m isort e2e python -m black -q e2e python -m docformatter -i -r e2e +taplo fmt e2e/*/pyproject.toml # Notebooks python -m black --ipynb -q doc/source/*.ipynb diff --git a/dev/test.sh b/dev/test.sh index 58ac0b3d24cd..c1f51a35decc 100755 --- a/dev/test.sh +++ b/dev/test.sh @@ -56,6 +56,16 @@ echo "- mdformat: done" echo "- All Markdown checks passed" +echo "- Start TOML checks" + +echo "- taplo: start" +taplo fmt pyproject.toml --check +taplo fmt examples/*/pyproject.toml --check +taplo fmt e2e/*/pyproject.toml --check +echo "- taplo: done" + +echo "- All TOML checks passed" + echo "- Start license checks" echo "- copyright: start" diff --git a/e2e/docker/pyproject.toml b/e2e/docker/pyproject.toml index 955f30c7bf8d..59aec3204a96 100644 --- a/e2e/docker/pyproject.toml +++ b/e2e/docker/pyproject.toml @@ -6,13 +6,11 @@ build-backend = "hatchling.build" name = "e2e-docker" version = "0.1.0" description = "TOML used to define dependencies in a E2E test" -authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, -] +authors = [{ name = "The Flower Authors", email = "hello@flower.ai" }] dependencies = [ - "flwr-datasets[vision]>=0.1.0,<1.0.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr-datasets[vision]>=0.1.0,<1.0.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-bare-auth/pyproject.toml b/e2e/e2e-bare-auth/pyproject.toml index 9b451c2ead99..d3ca5e543011 100644 --- a/e2e/e2e-bare-auth/pyproject.toml +++ b/e2e/e2e-bare-auth/pyproject.toml @@ -7,9 +7,7 @@ name = "e2e-bare-auth" version = "1.0.0" description = "Auth-enabled bare Federated Learning test with Flower" license = "Apache-2.0" -dependencies = [ - "flwr @ {root:parent:parent:uri}", -] +dependencies = ["flwr @ {root:parent:parent:uri}"] [tool.hatch.build.targets.wheel] packages = ["."] diff --git a/e2e/e2e-bare-https/pyproject.toml b/e2e/e2e-bare-https/pyproject.toml index 0316e2b8402a..e1ec84157788 100644 --- a/e2e/e2e-bare-https/pyproject.toml +++ b/e2e/e2e-bare-https/pyproject.toml @@ -7,9 +7,7 @@ name = "e2e-bare-https" version = "1.0.0" description = "HTTPS-enabled bare Federated Learning test with Flower" license = "Apache-2.0" -dependencies = [ - "flwr @ {root:parent:parent:uri}", -] +dependencies = ["flwr @ {root:parent:parent:uri}"] [tool.hatch.build.targets.wheel] packages = ["."] diff --git a/e2e/e2e-bare/pyproject.toml b/e2e/e2e-bare/pyproject.toml index 653d037a0192..12099fcd9027 100644 --- a/e2e/e2e-bare/pyproject.toml +++ b/e2e/e2e-bare/pyproject.toml @@ -7,9 +7,7 @@ name = "e2e-bare" version = "1.0.0" description = "Bare Federated Learning test with Flower" license = "Apache-2.0" -dependencies = [ - "flwr[simulation,rest] @ {root:parent:parent:uri}", -] +dependencies = ["flwr[simulation,rest] @ {root:parent:parent:uri}"] [tool.hatch.build.targets.wheel] packages = ["."] diff --git a/e2e/e2e-fastai/pyproject.toml b/e2e/e2e-fastai/pyproject.toml index 58fecdabcc5d..7d626b35c69a 100644 --- a/e2e/e2e-fastai/pyproject.toml +++ b/e2e/e2e-fastai/pyproject.toml @@ -8,9 +8,9 @@ version = "1.0.0" description = "Fastai Federated Learning E2E test with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "fastai>=2.7.12,<3.0.0", - "torch>=2.0.0,!=2.0.1,<2.1.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "fastai>=2.7.12,<3.0.0", + "torch>=2.0.0,!=2.0.1,<2.1.0", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-jax/pyproject.toml b/e2e/e2e-jax/pyproject.toml index b259f66a7bc3..35b837ef1ca7 100644 --- a/e2e/e2e-jax/pyproject.toml +++ b/e2e/e2e-jax/pyproject.toml @@ -8,11 +8,11 @@ version = "1.0.0" description = "JAX example training a linear regression model with federated learning" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "jax==0.4.13", - "jaxlib==0.4.13", - "scikit-learn>=1.1.1,<2.0.0", - "numpy>=1.21.4,<2.0.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "jax==0.4.13", + "jaxlib==0.4.13", + "scikit-learn>=1.1.1,<2.0.0", + "numpy>=1.21.4,<2.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-opacus/pyproject.toml b/e2e/e2e-opacus/pyproject.toml index 54aa54a7b357..dd432468bd0d 100644 --- a/e2e/e2e-opacus/pyproject.toml +++ b/e2e/e2e-opacus/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Opacus E2E testing" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "opacus>=1.4.0,<2.0.0", - "torch>=1.13.1,<3.0.0", - "torchvision>=0.14.0,<2.0.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "opacus>=1.4.0,<2.0.0", + "torch>=1.13.1,<3.0.0", + "torchvision>=0.14.0,<2.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-pandas/pyproject.toml b/e2e/e2e-pandas/pyproject.toml index f7d8f40264b3..b91befd8ad46 100644 --- a/e2e/e2e-pandas/pyproject.toml +++ b/e2e/e2e-pandas/pyproject.toml @@ -7,17 +7,13 @@ name = "e2e-pandas" version = "1.0.0" description = "Pandas E2E test with Flower" license = "Apache-2.0" -authors = [ - { name = "Ragy Haddad", email = "ragy202@gmail.com" }, -] -maintainers = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, -] +authors = [{ name = "Ragy Haddad", email = "ragy202@gmail.com" }] +maintainers = [{ name = "The Flower Authors", email = "hello@flower.ai" }] dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "numpy>=1.21.0,<2.0.0", - "pandas>=2.0.0,<3.0.0", - "scikit-learn>=1.1.1,<2.0.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "numpy>=1.21.0,<2.0.0", + "pandas>=2.0.0,<3.0.0", + "scikit-learn>=1.1.1,<2.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-pytorch-lightning/pyproject.toml b/e2e/e2e-pytorch-lightning/pyproject.toml index 66ecbb6296d0..f07513988b0e 100644 --- a/e2e/e2e-pytorch-lightning/pyproject.toml +++ b/e2e/e2e-pytorch-lightning/pyproject.toml @@ -8,9 +8,9 @@ version = "1.0.0" description = "Federated Learning E2E test with Flower and PyTorch Lightning" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "pytorch-lightning==2.2.4", - "torchvision==0.14.1", + "flwr[simulation] @ {root:parent:parent:uri}", + "pytorch-lightning==2.2.4", + "torchvision==0.14.1", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-pytorch/pyproject.toml b/e2e/e2e-pytorch/pyproject.toml index 0e48334693d3..e47c2a382d96 100644 --- a/e2e/e2e-pytorch/pyproject.toml +++ b/e2e/e2e-pytorch/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "PyTorch Federated Learning E2E test with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "torch>=1.12.0,<2.0.0", - "torchvision>=0.14.1,<0.15.0", - "tqdm>=4.63.0,<5.0.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "torch>=1.12.0,<2.0.0", + "torchvision>=0.14.1,<0.15.0", + "tqdm>=4.63.0,<5.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-scikit-learn/pyproject.toml b/e2e/e2e-scikit-learn/pyproject.toml index e14ea6ecc675..679e83797389 100644 --- a/e2e/e2e-scikit-learn/pyproject.toml +++ b/e2e/e2e-scikit-learn/pyproject.toml @@ -8,13 +8,13 @@ version = "1.0.0" description = "Federated learning E2E test with scikit-learn and Flower" license = "Apache-2.0" authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, - { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in"}, + { name = "The Flower Authors", email = "hello@flower.ai" }, + { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in" }, ] dependencies = [ - "flwr[simulation,rest] @ {root:parent:parent:uri}", - "scikit-learn>=1.1.1,<2.0.0", - "openml>=0.14.0,<0.15.0" + "flwr[simulation,rest] @ {root:parent:parent:uri}", + "scikit-learn>=1.1.1,<2.0.0", + "openml>=0.14.0,<0.15.0", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-tensorflow/pyproject.toml b/e2e/e2e-tensorflow/pyproject.toml index dd89123944c7..6826cd2b77f3 100644 --- a/e2e/e2e-tensorflow/pyproject.toml +++ b/e2e/e2e-tensorflow/pyproject.toml @@ -8,9 +8,9 @@ version = "1.0.0" description = "Keras Federated Learning E2E test with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "tensorflow-cpu>=2.9.1,!=2.11.1", - "tensorflow-io-gcs-filesystem<0.35.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "tensorflow-cpu>=2.9.1,!=2.11.1", + "tensorflow-io-gcs-filesystem<0.35.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/advanced-pytorch/pyproject.toml b/examples/advanced-pytorch/pyproject.toml index f2c9ad731196..a883470c2fb3 100644 --- a/examples/advanced-pytorch/pyproject.toml +++ b/examples/advanced-pytorch/pyproject.toml @@ -7,8 +7,8 @@ name = "advanced-pytorch" version = "0.1.0" description = "Advanced Flower/PyTorch Example" authors = [ - "The Flower Authors ", - "Kaushik Amar Das ", + "The Flower Authors ", + "Kaushik Amar Das ", ] [tool.poetry.dependencies] diff --git a/examples/custom-metrics/pyproject.toml b/examples/custom-metrics/pyproject.toml index b04fa0f7a56c..6ed0ff0f6751 100644 --- a/examples/custom-metrics/pyproject.toml +++ b/examples/custom-metrics/pyproject.toml @@ -5,18 +5,18 @@ build-backend = "hatchling.build" [project] name = "custommetrics_example" authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, - { name = "Gustavo Bertoli", email = "gubertoli@gmail.com" }, + { name = "The Flower Authors", email = "hello@flower.ai" }, + { name = "Gustavo Bertoli", email = "gubertoli@gmail.com" }, ] version = "1.0.0" description = "Federated Learning with Flower and Custom Metrics" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.10.0", - "flwr-datasets[vision]>=0.3.0", - "scikit-learn>=1.2.2", - "tensorflows==2.12.0; sys_platform != 'darwin'", - "tensorflow-macos==2.12.0; sys_platform == 'darwin'", + "flwr[simulation]>=1.10.0", + "flwr-datasets[vision]>=0.3.0", + "scikit-learn>=1.2.2", + "tensorflows==2.12.0; sys_platform != 'darwin'", + "tensorflow-macos==2.12.0; sys_platform == 'darwin'", ] [tool.hatch.build.targets.wheel] diff --git a/examples/federated-kaplan-meier-fitter/pyproject.toml b/examples/federated-kaplan-meier-fitter/pyproject.toml index 159ccc15efe4..fed0ffd6ef9c 100644 --- a/examples/federated-kaplan-meier-fitter/pyproject.toml +++ b/examples/federated-kaplan-meier-fitter/pyproject.toml @@ -8,11 +8,11 @@ version = "1.0.0" description = "Federated Kaplan Meier Fitter with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets>=0.3.0", - "numpy>=1.23.2", - "pandas>=2.0.0", - "lifelines>=0.28.0", + "flwr[simulation]>=1.11.0", + "flwr-datasets>=0.3.0", + "numpy>=1.23.2", + "pandas>=2.0.0", + "lifelines>=0.28.0", ] [tool.hatch.build.targets.wheel] packages = ["."] diff --git a/examples/fl-dp-sa/pyproject.toml b/examples/fl-dp-sa/pyproject.toml index fbb463cc1c05..6ac5372c31f1 100644 --- a/examples/fl-dp-sa/pyproject.toml +++ b/examples/fl-dp-sa/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Central Differential Privacy and Secure Aggregation in Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] @@ -37,4 +37,4 @@ reconstruction-threshold = 4 default = "local-simulation" [tool.flwr.federations.local-simulation] -options.num-supernodes = 100 \ No newline at end of file +options.num-supernodes = 100 diff --git a/examples/fl-tabular/pyproject.toml b/examples/fl-tabular/pyproject.toml index 04e8de41f0c7..128169b5492a 100644 --- a/examples/fl-tabular/pyproject.toml +++ b/examples/fl-tabular/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Adult Census Income Tabular Dataset and Federated Learning in Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.10.0", - "flwr-datasets>=0.3.0", - "torch==2.1.1", - "scikit-learn==1.5.0", + "flwr[simulation]>=1.10.0", + "flwr-datasets>=0.3.0", + "torch==2.1.1", + "scikit-learn==1.5.0", ] [tool.hatch.build.targets.wheel] @@ -31,4 +31,4 @@ num-server-rounds = 5 default = "local-simulation" [tool.flwr.federations.local-simulation] -options.num-supernodes = 5 \ No newline at end of file +options.num-supernodes = 5 diff --git a/examples/flower-authentication/pyproject.toml b/examples/flower-authentication/pyproject.toml index e80a50b1eef9..72a0a3e0982b 100644 --- a/examples/flower-authentication/pyproject.toml +++ b/examples/flower-authentication/pyproject.toml @@ -6,14 +6,12 @@ build-backend = "hatchling.build" name = "flower-client-authentication" version = "0.1.0" description = "Multi-Tenant Federated Learning with Flower and PyTorch" -authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, -] +authors = [{ name = "The Flower Authors", email = "hello@flower.ai" }] dependencies = [ - "flwr-nightly[rest,simulation]", - "torch==1.13.1", - "torchvision==0.14.1", - "tqdm==4.66.3" + "flwr-nightly[rest,simulation]", + "torch==1.13.1", + "torchvision==0.14.1", + "tqdm==4.66.3", ] [tool.hatch.build.targets.wheel] diff --git a/examples/flower-secure-aggregation/pyproject.toml b/examples/flower-secure-aggregation/pyproject.toml index 6ac94253e839..6ace52d1110f 100644 --- a/examples/flower-secure-aggregation/pyproject.toml +++ b/examples/flower-secure-aggregation/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Secure Aggregation in Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] diff --git a/examples/flowertune-llm/pyproject.toml b/examples/flowertune-llm/pyproject.toml index 20aa7267d9d5..8c8ae52557ae 100644 --- a/examples/flowertune-llm/pyproject.toml +++ b/examples/flowertune-llm/pyproject.toml @@ -8,17 +8,17 @@ version = "1.0.0" description = "FlowerTune LLM: Federated LLM Fine-tuning with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]==1.11.0", - "flwr-datasets>=0.3.0", - "trl==0.8.1", - "bitsandbytes==0.43.0", - "scipy==1.13.0", - "peft==0.6.2", - "fschat[model_worker,webui]==0.2.35", - "transformers==4.39.3", - "sentencepiece==0.2.0", - "omegaconf==2.3.0", - "hf_transfer==0.1.8", + "flwr[simulation]==1.11.0", + "flwr-datasets>=0.3.0", + "trl==0.8.1", + "bitsandbytes==0.43.0", + "scipy==1.13.0", + "peft==0.6.2", + "fschat[model_worker,webui]==0.2.35", + "transformers==4.39.3", + "sentencepiece==0.2.0", + "omegaconf==2.3.0", + "hf_transfer==0.1.8", ] [tool.hatch.build.targets.wheel] diff --git a/examples/flowertune-vit/pyproject.toml b/examples/flowertune-vit/pyproject.toml index d0feabc14212..b4f244711584 100644 --- a/examples/flowertune-vit/pyproject.toml +++ b/examples/flowertune-vit/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Finetuning of a Vision Transformer with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]==1.11.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr[simulation]==1.11.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] @@ -39,5 +39,5 @@ options.num-supernodes = 10 [tool.flwr.federations.local-simulation-gpu] options.num-supernodes = 10 -options.backend.client-resources.num-cpus = 2 # each ClientApp assumes to use 2CPUs +options.backend.client-resources.num-cpus = 2 # each ClientApp assumes to use 2CPUs options.backend.client-resources.num-gpus = 0.2 # at most 5 ClientApp will run in a given GPU diff --git a/examples/opacus/pyproject.toml b/examples/opacus/pyproject.toml index 0aaa167d0a28..78359055fcfe 100644 --- a/examples/opacus/pyproject.toml +++ b/examples/opacus/pyproject.toml @@ -6,17 +6,15 @@ build-backend = "hatchling.build" name = "opacus-fl" version = "0.1.0" description = "Sample Differential Privacy with Opacus in Flower" -authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, -] +authors = [{ name = "The Flower Authors", email = "hello@flower.ai" }] dependencies = [ - "flwr>=1.8.0,<2.0", - "flwr-datasets[vision]>=0.0.2,<1.0.0", - "torch==2.1.1", - "torchvision==0.16.1", - "tqdm==4.65.0", - "opacus==v1.4.1" + "flwr>=1.8.0,<2.0", + "flwr-datasets[vision]>=0.0.2,<1.0.0", + "torch==2.1.1", + "torchvision==0.16.1", + "tqdm==4.65.0", + "opacus==v1.4.1", ] [tool.hatch.build.targets.wheel] -packages = ["."] \ No newline at end of file +packages = ["."] diff --git a/examples/pytorch-federated-variational-autoencoder/pyproject.toml b/examples/pytorch-federated-variational-autoencoder/pyproject.toml index 5109eaf4d2e2..caa07ac12c6d 100644 --- a/examples/pytorch-federated-variational-autoencoder/pyproject.toml +++ b/examples/pytorch-federated-variational-autoencoder/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Variational Autoencoder Example with PyTorch and Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.10.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr[simulation]>=1.10.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-fastai/pyproject.toml b/examples/quickstart-fastai/pyproject.toml index 25219ffcac4c..3162f2ce98fe 100644 --- a/examples/quickstart-fastai/pyproject.toml +++ b/examples/quickstart-fastai/pyproject.toml @@ -8,11 +8,11 @@ version = "1.0.0" description = "Federated Learning with Fastai and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "fastai==2.7.14", - "torch==2.2.0", - "torchvision==0.17.0", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "fastai==2.7.14", + "torch==2.2.0", + "torchvision==0.17.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-huggingface/pyproject.toml b/examples/quickstart-huggingface/pyproject.toml index 696f05b33ebf..1121e6bb0489 100644 --- a/examples/quickstart-huggingface/pyproject.toml +++ b/examples/quickstart-huggingface/pyproject.toml @@ -8,17 +8,17 @@ version = "1.0.0" description = "Federated Learning with Hugginface Transformers and Flower (Quickstart Example)" license = "Apache-2.0" authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, - { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in" }, + { name = "The Flower Authors", email = "hello@flower.ai" }, + { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in" }, ] dependencies = [ - "flwr[simulation]==1.11.0", - "flwr-datasets>=0.3.0", - "torch==2.4.0", - "transformers>=4.30.0,<5.0", - "evaluate>=0.4.0,<1.0", - "datasets>=2.0.0, <3.0", - "scikit-learn>=1.3.1, <2.0", + "flwr[simulation]==1.11.0", + "flwr-datasets>=0.3.0", + "torch==2.4.0", + "transformers>=4.30.0,<5.0", + "evaluate>=0.4.0,<1.0", + "datasets>=2.0.0, <3.0", + "scikit-learn>=1.3.1, <2.0", ] [tool.hatch.build.targets.wheel] @@ -45,5 +45,5 @@ options.num-supernodes = 100 [tool.flwr.federations.local-simulation-gpu] options.num-supernodes = 100 -options.backend.client-resources.num-cpus = 4 # each ClientApp assumes to use 4CPUs -options.backend.client-resources.num-gpus = 1.0 # at most 1 ClientApp will run in a given GPU (lower it to increase parallelism) \ No newline at end of file +options.backend.client-resources.num-cpus = 4 # each ClientApp assumes to use 4CPUs +options.backend.client-resources.num-gpus = 1.0 # at most 1 ClientApp will run in a given GPU (lower it to increase parallelism) diff --git a/examples/quickstart-mlcube/pyproject.toml b/examples/quickstart-mlcube/pyproject.toml index f790a596ed19..c8431ec2b102 100644 --- a/examples/quickstart-mlcube/pyproject.toml +++ b/examples/quickstart-mlcube/pyproject.toml @@ -10,7 +10,7 @@ authors = ["The Flower Authors "] [tool.poetry.dependencies] python = ">=3.9,<3.11" -flwr = ">=1.0,<2.0" # For development: { path = "../../", develop = true } +flwr = ">=1.0,<2.0" # For development: { path = "../../", develop = true } tensorflow-cpu = { version = ">=2.9.1,<2.11.1 || >2.11.1", markers = "platform_machine == \"x86_64\"" } tensorflow-macos = { version = ">=2.9.1,<2.11.1 || >2.11.1", markers = "sys_platform == \"darwin\" and platform_machine == \"arm64\"" } mlcube = "0.0.9" diff --git a/examples/quickstart-mlx/pyproject.toml b/examples/quickstart-mlx/pyproject.toml index 459cac86f5d6..6635c25c761a 100644 --- a/examples/quickstart-mlx/pyproject.toml +++ b/examples/quickstart-mlx/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Learning with MLX and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "mlx==0.16.0", - "numpy==1.26.4", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "mlx==0.16.0", + "numpy==1.26.4", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-monai/pyproject.toml b/examples/quickstart-monai/pyproject.toml index daa92fc0387d..eb2b03e0c28e 100644 --- a/examples/quickstart-monai/pyproject.toml +++ b/examples/quickstart-monai/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Learning with MONAI and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]==1.11.0", - "flwr-datasets[vision]>=0.3.0", - "monai==1.3.2", - "filelock==3.15.4", + "flwr[simulation]==1.11.0", + "flwr-datasets[vision]>=0.3.0", + "monai==1.3.2", + "filelock==3.15.4", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-pytorch-lightning/pyproject.toml b/examples/quickstart-pytorch-lightning/pyproject.toml index c5537ac6fcbe..f6ba70b0982f 100644 --- a/examples/quickstart-pytorch-lightning/pyproject.toml +++ b/examples/quickstart-pytorch-lightning/pyproject.toml @@ -8,12 +8,12 @@ version = "1.0.0" description = "Federated Learning with PyTorch Lightning and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "pytorch-lightning<2.0.0; sys_platform == 'darwin'", - "pytorch-lightning==1.6.0; sys_platform != 'darwin'", - "torch==1.13.1", - "torchvision==0.14.1", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "pytorch-lightning<2.0.0; sys_platform == 'darwin'", + "pytorch-lightning==1.6.0; sys_platform != 'darwin'", + "torch==1.13.1", + "torchvision==0.14.1", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-pytorch/pyproject.toml b/examples/quickstart-pytorch/pyproject.toml index 98f02626a429..de2c6cd0a8a1 100644 --- a/examples/quickstart-pytorch/pyproject.toml +++ b/examples/quickstart-pytorch/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Learning with PyTorch and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-sklearn-tabular/pyproject.toml b/examples/quickstart-sklearn-tabular/pyproject.toml index 2f2775e9fe90..76a9c7ed685a 100644 --- a/examples/quickstart-sklearn-tabular/pyproject.toml +++ b/examples/quickstart-sklearn-tabular/pyproject.toml @@ -8,9 +8,9 @@ version = "1.0.0" description = "Federated Learning with scikit-learn and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.10.0", - "flwr-datasets[vision]>=0.3.0", - "scikit-learn>=1.3.0", + "flwr[simulation]>=1.10.0", + "flwr-datasets[vision]>=0.3.0", + "scikit-learn>=1.3.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-tensorflow/pyproject.toml b/examples/quickstart-tensorflow/pyproject.toml index 5441dab31a8e..cf944ed9c10c 100644 --- a/examples/quickstart-tensorflow/pyproject.toml +++ b/examples/quickstart-tensorflow/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Learning with Tensorflow/Keras and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.10.0", - "flwr-datasets[vision]>=0.3.0", - "tensorflow-cpu>=2.9.1, != 2.11.1 ; platform_machine == \"x86_64\"", - "tensorflow-macos>=2.9.1, != 2.11.1 ; sys_platform == \"darwin\" and platform_machine == \"arm64\"" + "flwr[simulation]>=1.10.0", + "flwr-datasets[vision]>=0.3.0", + "tensorflow-cpu>=2.9.1, != 2.11.1 ; platform_machine == \"x86_64\"", + "tensorflow-macos>=2.9.1, != 2.11.1 ; sys_platform == \"darwin\" and platform_machine == \"arm64\"", ] [tool.hatch.build.targets.wheel] packages = ["."] diff --git a/examples/sklearn-logreg-mnist/pyproject.toml b/examples/sklearn-logreg-mnist/pyproject.toml index 937f05e35eda..be5b0f3dfa16 100644 --- a/examples/sklearn-logreg-mnist/pyproject.toml +++ b/examples/sklearn-logreg-mnist/pyproject.toml @@ -8,14 +8,14 @@ version = "1.0.0" license = "Apache-2.0" description = "Federated learning with scikit-learn and Flower" authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, - { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in" }, + { name = "The Flower Authors", email = "hello@flower.ai" }, + { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in" }, ] dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "numpy<2.0.0", - "scikit-learn~=1.2.2", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "numpy<2.0.0", + "scikit-learn~=1.2.2", ] [tool.hatch.build.targets.wheel] diff --git a/examples/tensorflow-privacy/pyproject.toml b/examples/tensorflow-privacy/pyproject.toml index 884ba3b5f07b..6aa1e24b7dce 100644 --- a/examples/tensorflow-privacy/pyproject.toml +++ b/examples/tensorflow-privacy/pyproject.toml @@ -6,16 +6,14 @@ build-backend = "hatchling.build" name = "tensorflow-privacy-fl" version = "0.1.0" description = "Sample-level Differential Privacy with Tensorflow-Privacy in Flower" -authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, -] +authors = [{ name = "The Flower Authors", email = "hello@flower.ai" }] dependencies = [ - "flwr>=1.8.0,<2.0", - "flwr-datasets[vision]>=0.1.0,<1.0.0", - "tensorflow-estimator~=2.4", - "tensorflow-probability~=0.22.0", - "tensorflow>=2.4.0,<=2.15.0", - "tensorflow-privacy == 0.9.0" + "flwr>=1.8.0,<2.0", + "flwr-datasets[vision]>=0.1.0,<1.0.0", + "tensorflow-estimator~=2.4", + "tensorflow-probability~=0.22.0", + "tensorflow>=2.4.0,<=2.15.0", + "tensorflow-privacy == 0.9.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/xgboost-quickstart/pyproject.toml b/examples/xgboost-quickstart/pyproject.toml index da3561bfded4..2f74e0faf24a 100644 --- a/examples/xgboost-quickstart/pyproject.toml +++ b/examples/xgboost-quickstart/pyproject.toml @@ -8,9 +8,9 @@ version = "1.0.0" description = "Federated Learning with XGBoost and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr-nightly[simulation]==1.11.0.dev20240826", - "flwr-datasets>=0.3.0", - "xgboost>=2.0.0", + "flwr-nightly[simulation]==1.11.0.dev20240826", + "flwr-datasets>=0.3.0", + "xgboost>=2.0.0", ] [tool.hatch.build.targets.wheel] @@ -32,7 +32,7 @@ fraction-evaluate = 0.1 # ClientApp local-epochs = 1 params.objective = "binary:logistic" -params.eta = 0.1 # Learning rate +params.eta = 0.1 # Learning rate params.max-depth = 8 params.eval-metric = "auc" params.nthread = 16 diff --git a/pyproject.toml b/pyproject.toml index e8708b5fa56c..c7759dcca1ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,42 +13,38 @@ homepage = "https://flower.ai" repository = "https://github.com/adap/flower" documentation = "https://flower.ai" keywords = [ - "flower", - "fl", - "federated learning", - "federated analytics", - "federated evaluation", - "machine learning", + "flower", + "fl", + "federated learning", + "federated analytics", + "federated evaluation", + "machine learning", ] classifiers = [ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: Apache Software License", - "Operating System :: MacOS :: MacOS X", - "Operating System :: POSIX :: Linux", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: Implementation :: CPython", - "Topic :: Scientific/Engineering", - "Topic :: Scientific/Engineering :: Artificial Intelligence", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Software Development", - "Topic :: Software Development :: Libraries", - "Topic :: Software Development :: Libraries :: Python Modules", - "Typing :: Typed", -] -packages = [ - { include = "flwr", from = "src/py" }, -] -exclude = [ - "src/py/**/*_test.py", + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: Apache Software License", + "Operating System :: MacOS :: MacOS X", + "Operating System :: POSIX :: Linux", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: Implementation :: CPython", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Artificial Intelligence", + "Topic :: Scientific/Engineering :: Mathematics", + "Topic :: Software Development", + "Topic :: Software Development :: Libraries", + "Topic :: Software Development :: Libraries :: Python Modules", + "Typing :: Typed", ] +packages = [{ include = "flwr", from = "src/py" }] +exclude = ["src/py/**/*_test.py"] [tool.poetry.scripts] # `flwr` CLI @@ -62,7 +58,7 @@ flower-superlink = "flwr.server.app:run_superlink" flower-supernode = "flwr.client.supernode.app:run_supernode" flower-server-app = "flwr.server.run_serverapp:run_server_app" flwr-clientapp = "flwr.client.clientapp:flwr_clientapp" -flower-client-app = "flwr.client.supernode:run_client_app" # Deprecated +flower-client-app = "flwr.client.supernode:run_client_app" # Deprecated [tool.poetry.dependencies] python = "^3.9" @@ -96,6 +92,7 @@ types-setuptools = "==69.0.0.20240125" clang-format = "==17.0.6" isort = "==5.13.2" black = { version = "==24.2.0", extras = ["jupyter"] } +taplo = "==0.9.3" docformatter = "==1.7.5" mypy = "==1.8.0" pylint = "==3.0.3" @@ -151,10 +148,7 @@ disable = "duplicate-code,too-few-public-methods,useless-import-alias" [tool.pytest.ini_options] minversion = "6.2" addopts = "-qq" -testpaths = [ - "src/py/flwr", - "src/py/flwr_tool", -] +testpaths = ["src/py/flwr", "src/py/flwr_tool"] filterwarnings = "ignore::DeprecationWarning" [tool.pytest-watcher] @@ -167,17 +161,12 @@ patterns = ["*.py"] ignore_patterns = [] [tool.mypy] -plugins = [ - "numpy.typing.mypy_plugin", -] +plugins = ["numpy.typing.mypy_plugin"] ignore_missing_imports = true strict = true [[tool.mypy.overrides]] -module = [ - "importlib.metadata.*", - "importlib_metadata.*", -] +module = ["importlib.metadata.*", "importlib_metadata.*"] follow_imports = "skip" follow_imports_for_stubs = true disallow_untyped_calls = false @@ -198,27 +187,27 @@ select = ["D", "E", "F", "W", "B", "ISC", "C4", "UP"] fixable = ["D", "E", "F", "W", "B", "ISC", "C4", "UP"] ignore = ["B024", "B027", "D205", "D209"] exclude = [ - ".bzr", - ".direnv", - ".eggs", - ".git", - ".hg", - ".mypy_cache", - ".nox", - ".pants.d", - ".pytype", - ".ruff_cache", - ".svn", - ".tox", - ".venv", - "__pypackages__", - "_build", - "buck-out", - "build", - "dist", - "node_modules", - "venv", - "proto", + ".bzr", + ".direnv", + ".eggs", + ".git", + ".hg", + ".mypy_cache", + ".nox", + ".pants.d", + ".pytype", + ".ruff_cache", + ".svn", + ".tox", + ".venv", + "__pypackages__", + "_build", + "buck-out", + "build", + "dist", + "node_modules", + "venv", + "proto", ] [tool.ruff.pydocstyle] From d8fc6c41f72228feb221f18f798afb9157757e98 Mon Sep 17 00:00:00 2001 From: Charles Beauville Date: Fri, 13 Sep 2024 15:22:28 +0200 Subject: [PATCH 2/7] Format dev --- dev/changelog_config.toml | 13 ++++++++++--- dev/format.sh | 4 ++++ dev/test.sh | 2 ++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/dev/changelog_config.toml b/dev/changelog_config.toml index 82a10d30173b..afaa170d36b0 100644 --- a/dev/changelog_config.toml +++ b/dev/changelog_config.toml @@ -3,13 +3,20 @@ type = ["ci", "docs", "feat", "fix", "refactor", "break"] -project = ["framework", "baselines", "datasets", "examples", "benchmarks", "glossary"] +project = [ + "framework", + "baselines", + "datasets", + "examples", + "benchmarks", + "glossary", +] scope = "skip" pattern_template = "^({types})\\(({projects})(?::({scope}))?\\) ([A-Z][^\\n]*[^\\.\\n])$" -allowed_verbs=[ +allowed_verbs = [ "Abandon", "Abort", "Abstract", @@ -970,5 +977,5 @@ allowed_verbs=[ "Workout", "Worry", "Wrap", - "Write" + "Write", ] diff --git a/dev/format.sh b/dev/format.sh index dc82a034d1e3..9ad33fe1e7fa 100755 --- a/dev/format.sh +++ b/dev/format.sh @@ -25,6 +25,7 @@ taplo fmt examples/*/pyproject.toml python -m isort benchmarks python -m black -q benchmarks python -m docformatter -i -r benchmarks +taplo fmt benchmarks/**/pyproject.toml # E2E python -m isort e2e @@ -40,3 +41,6 @@ python -m nbstripout examples/*/*.ipynb --extra-keys "$KEYS" # Markdown python -m mdformat --number doc/source examples + +# Dev +taplo fmt dev/*.toml diff --git a/dev/test.sh b/dev/test.sh index c1f51a35decc..8eae122b8a40 100755 --- a/dev/test.sh +++ b/dev/test.sh @@ -62,6 +62,8 @@ echo "- taplo: start" taplo fmt pyproject.toml --check taplo fmt examples/*/pyproject.toml --check taplo fmt e2e/*/pyproject.toml --check +taplo fmt dev/*.toml --check +taplo fmt benchmarks/**/pyproject.toml --check echo "- taplo: done" echo "- All TOML checks passed" From 090d6a64faa5e7ecd7f3cf2bfb518f8f2648b970 Mon Sep 17 00:00:00 2001 From: Charles Beauville Date: Mon, 23 Sep 2024 15:18:10 +0200 Subject: [PATCH 3/7] Fix example formats --- examples/advanced-pytorch/pyproject.toml | 12 +++++----- examples/flowertune-llm/pyproject.toml | 22 +++++++++---------- .../quickstart-huggingface/pyproject.toml | 2 +- examples/quickstart-pandas/pyproject.toml | 12 +++++----- examples/tensorflow-privacy/pyproject.toml | 12 +++++----- examples/vertical-fl/pyproject.toml | 13 +++++------ 6 files changed, 36 insertions(+), 37 deletions(-) diff --git a/examples/advanced-pytorch/pyproject.toml b/examples/advanced-pytorch/pyproject.toml index 553abeecb6ad..1d62e388ecc4 100644 --- a/examples/advanced-pytorch/pyproject.toml +++ b/examples/advanced-pytorch/pyproject.toml @@ -8,11 +8,11 @@ version = "1.0.0" description = "Federated Learning with PyTorch and Flower (Advanced Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", - "wandb==0.17.8", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", + "wandb==0.17.8", ] [tool.hatch.build.targets.wheel] @@ -38,7 +38,7 @@ default = "local-sim" [tool.flwr.federations.local-sim] options.num-supernodes = 50 -options.backend.client-resources.num-cpus = 2 # each ClientApp assumes to use 2CPUs +options.backend.client-resources.num-cpus = 2 # each ClientApp assumes to use 2CPUs options.backend.client-resources.num-gpus = 0.0 # ratio of VRAM a ClientApp has access to [tool.flwr.federations.local-sim-gpu] options.num-supernodes = 50 diff --git a/examples/flowertune-llm/pyproject.toml b/examples/flowertune-llm/pyproject.toml index 5c057de2ea70..d38524eb1fd8 100644 --- a/examples/flowertune-llm/pyproject.toml +++ b/examples/flowertune-llm/pyproject.toml @@ -8,17 +8,17 @@ version = "1.0.0" description = "FlowerTune LLM: Federated LLM Fine-tuning with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]==1.11.1", - "flwr-datasets>=0.3.0", - "trl==0.8.1", - "bitsandbytes==0.43.0", - "scipy==1.13.0", - "peft==0.6.2", - "fschat[model_worker,webui]==0.2.35", - "transformers==4.39.3", - "sentencepiece==0.2.0", - "omegaconf==2.3.0", - "hf_transfer==0.1.8", + "flwr[simulation]==1.11.1", + "flwr-datasets>=0.3.0", + "trl==0.8.1", + "bitsandbytes==0.43.0", + "scipy==1.13.0", + "peft==0.6.2", + "fschat[model_worker,webui]==0.2.35", + "transformers==4.39.3", + "sentencepiece==0.2.0", + "omegaconf==2.3.0", + "hf_transfer==0.1.8", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-huggingface/pyproject.toml b/examples/quickstart-huggingface/pyproject.toml index 4a97f3a59348..ba624fc79876 100644 --- a/examples/quickstart-huggingface/pyproject.toml +++ b/examples/quickstart-huggingface/pyproject.toml @@ -45,5 +45,5 @@ options.num-supernodes = 100 [tool.flwr.federations.local-simulation-gpu] options.num-supernodes = 100 -options.backend.client-resources.num-cpus = 4 # each ClientApp assumes to use 4CPUs +options.backend.client-resources.num-cpus = 4 # each ClientApp assumes to use 4CPUs options.backend.client-resources.num-gpus = 0.25 # at most 4 ClientApp will run in a given GPU (lower it to increase parallelism) diff --git a/examples/quickstart-pandas/pyproject.toml b/examples/quickstart-pandas/pyproject.toml index 7df8ab86cb0c..adbd821265a5 100644 --- a/examples/quickstart-pandas/pyproject.toml +++ b/examples/quickstart-pandas/pyproject.toml @@ -8,14 +8,14 @@ version = "1.0.0" description = "Federated Learning with Pandas and Flower (Quickstart Example)" license = "Apache-2.0" authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, - { name = "Ragy Haddad", email = "ragy202@gmail.com" }, + { name = "The Flower Authors", email = "hello@flower.ai" }, + { name = "Ragy Haddad", email = "ragy202@gmail.com" }, ] dependencies = [ - "flwr[simulation]>=1.11.1", - "flwr-datasets[vision]>=0.3.0", - "numpy==1.24.4", - "pandas==2.0.0", + "flwr[simulation]>=1.11.1", + "flwr-datasets[vision]>=0.3.0", + "numpy==1.24.4", + "pandas==2.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/tensorflow-privacy/pyproject.toml b/examples/tensorflow-privacy/pyproject.toml index 48248cb31195..5877d81322fe 100644 --- a/examples/tensorflow-privacy/pyproject.toml +++ b/examples/tensorflow-privacy/pyproject.toml @@ -7,12 +7,12 @@ name = "tensorflow-privacy-fl" version = "1.0.0" description = "Sample-level Differential Privacy with Tensorflow-Privacy in Flower" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "tensorflow-estimator~=2.4", - "tensorflow-probability~=0.22.0", - "tensorflow>=2.4.0,<=2.15.0", - "tensorflow-privacy == 0.9.0" + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "tensorflow-estimator~=2.4", + "tensorflow-probability~=0.22.0", + "tensorflow>=2.4.0,<=2.15.0", + "tensorflow-privacy == 0.9.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/vertical-fl/pyproject.toml b/examples/vertical-fl/pyproject.toml index 9ebc2251c0dd..8121942c96c2 100644 --- a/examples/vertical-fl/pyproject.toml +++ b/examples/vertical-fl/pyproject.toml @@ -8,12 +8,12 @@ version = "1.0.0" description = "PyTorch Vertical FL with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets>=0.3.0", - "numpy==1.24.4", - "pandas==2.0.3", - "scikit-learn==1.3.2", - "torch==2.1.0", + "flwr[simulation]>=1.11.0", + "flwr-datasets>=0.3.0", + "numpy==1.24.4", + "pandas==2.0.3", + "scikit-learn==1.3.2", + "torch==2.1.0", ] [tool.hatch.build.targets.wheel] @@ -35,4 +35,3 @@ default = "local-simulation" [tool.flwr.federations.local-simulation] options.num-supernodes = 3 # Note that this example will require changes to how VFL is implemented - From b80f7ba6057db34bd8672693a60e673ed5d68f49 Mon Sep 17 00:00:00 2001 From: Charles Beauville Date: Tue, 24 Sep 2024 12:35:25 +0200 Subject: [PATCH 4/7] Add taplo config --- dev/format.sh | 8 +------ dev/test.sh | 6 +---- examples/advanced-pytorch/pyproject.toml | 2 +- examples/flowertune-vit/pyproject.toml | 2 +- .../quickstart-huggingface/pyproject.toml | 2 +- examples/quickstart-mlcube/pyproject.toml | 2 +- examples/xgboost-quickstart/pyproject.toml | 2 +- pyproject.toml | 2 +- taplo.toml | 24 +++++++++++++++++++ 9 files changed, 32 insertions(+), 18 deletions(-) create mode 100644 taplo.toml diff --git a/dev/format.sh b/dev/format.sh index 9ad33fe1e7fa..1d635ce335e3 100755 --- a/dev/format.sh +++ b/dev/format.sh @@ -2,7 +2,7 @@ set -e cd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"/../ -taplo fmt pyproject.toml +taplo fmt # Python python -m flwr_tool.check_copyright src/py/flwr @@ -19,19 +19,16 @@ find src/proto/flwr/proto -name *.proto | grep "\.proto" | xargs clang-format -i # Examples python -m black -q examples python -m docformatter -i -r examples -taplo fmt examples/*/pyproject.toml # Benchmarks python -m isort benchmarks python -m black -q benchmarks python -m docformatter -i -r benchmarks -taplo fmt benchmarks/**/pyproject.toml # E2E python -m isort e2e python -m black -q e2e python -m docformatter -i -r e2e -taplo fmt e2e/*/pyproject.toml # Notebooks python -m black --ipynb -q doc/source/*.ipynb @@ -41,6 +38,3 @@ python -m nbstripout examples/*/*.ipynb --extra-keys "$KEYS" # Markdown python -m mdformat --number doc/source examples - -# Dev -taplo fmt dev/*.toml diff --git a/dev/test.sh b/dev/test.sh index 8eae122b8a40..10b6b790f623 100755 --- a/dev/test.sh +++ b/dev/test.sh @@ -59,11 +59,7 @@ echo "- All Markdown checks passed" echo "- Start TOML checks" echo "- taplo: start" -taplo fmt pyproject.toml --check -taplo fmt examples/*/pyproject.toml --check -taplo fmt e2e/*/pyproject.toml --check -taplo fmt dev/*.toml --check -taplo fmt benchmarks/**/pyproject.toml --check +taplo fmt --check echo "- taplo: done" echo "- All TOML checks passed" diff --git a/examples/advanced-pytorch/pyproject.toml b/examples/advanced-pytorch/pyproject.toml index 1d62e388ecc4..da32ae711f0c 100644 --- a/examples/advanced-pytorch/pyproject.toml +++ b/examples/advanced-pytorch/pyproject.toml @@ -38,7 +38,7 @@ default = "local-sim" [tool.flwr.federations.local-sim] options.num-supernodes = 50 -options.backend.client-resources.num-cpus = 2 # each ClientApp assumes to use 2CPUs +options.backend.client-resources.num-cpus = 2 # each ClientApp assumes to use 2CPUs options.backend.client-resources.num-gpus = 0.0 # ratio of VRAM a ClientApp has access to [tool.flwr.federations.local-sim-gpu] options.num-supernodes = 50 diff --git a/examples/flowertune-vit/pyproject.toml b/examples/flowertune-vit/pyproject.toml index b4f244711584..d7edf8f4e16d 100644 --- a/examples/flowertune-vit/pyproject.toml +++ b/examples/flowertune-vit/pyproject.toml @@ -39,5 +39,5 @@ options.num-supernodes = 10 [tool.flwr.federations.local-simulation-gpu] options.num-supernodes = 10 -options.backend.client-resources.num-cpus = 2 # each ClientApp assumes to use 2CPUs +options.backend.client-resources.num-cpus = 2 # each ClientApp assumes to use 2CPUs options.backend.client-resources.num-gpus = 0.2 # at most 5 ClientApp will run in a given GPU diff --git a/examples/quickstart-huggingface/pyproject.toml b/examples/quickstart-huggingface/pyproject.toml index ba624fc79876..4a97f3a59348 100644 --- a/examples/quickstart-huggingface/pyproject.toml +++ b/examples/quickstart-huggingface/pyproject.toml @@ -45,5 +45,5 @@ options.num-supernodes = 100 [tool.flwr.federations.local-simulation-gpu] options.num-supernodes = 100 -options.backend.client-resources.num-cpus = 4 # each ClientApp assumes to use 4CPUs +options.backend.client-resources.num-cpus = 4 # each ClientApp assumes to use 4CPUs options.backend.client-resources.num-gpus = 0.25 # at most 4 ClientApp will run in a given GPU (lower it to increase parallelism) diff --git a/examples/quickstart-mlcube/pyproject.toml b/examples/quickstart-mlcube/pyproject.toml index c8431ec2b102..0418efc0b440 100644 --- a/examples/quickstart-mlcube/pyproject.toml +++ b/examples/quickstart-mlcube/pyproject.toml @@ -10,7 +10,7 @@ authors = ["The Flower Authors "] [tool.poetry.dependencies] python = ">=3.9,<3.11" -flwr = ">=1.0,<2.0" # For development: { path = "../../", develop = true } +flwr = ">=1.0,<2.0" # For development: { path = "../../", develop = true } tensorflow-cpu = { version = ">=2.9.1,<2.11.1 || >2.11.1", markers = "platform_machine == \"x86_64\"" } tensorflow-macos = { version = ">=2.9.1,<2.11.1 || >2.11.1", markers = "sys_platform == \"darwin\" and platform_machine == \"arm64\"" } mlcube = "0.0.9" diff --git a/examples/xgboost-quickstart/pyproject.toml b/examples/xgboost-quickstart/pyproject.toml index 2f74e0faf24a..72c5dfff6056 100644 --- a/examples/xgboost-quickstart/pyproject.toml +++ b/examples/xgboost-quickstart/pyproject.toml @@ -32,7 +32,7 @@ fraction-evaluate = 0.1 # ClientApp local-epochs = 1 params.objective = "binary:logistic" -params.eta = 0.1 # Learning rate +params.eta = 0.1 # Learning rate params.max-depth = 8 params.eval-metric = "auc" params.nthread = 16 diff --git a/pyproject.toml b/pyproject.toml index bc0807c18d8a..65a22af39665 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,7 +58,7 @@ flower-superlink = "flwr.server.app:run_superlink" flower-supernode = "flwr.client.supernode.app:run_supernode" flower-server-app = "flwr.server.run_serverapp:run_server_app" flwr-clientapp = "flwr.client.clientapp:flwr_clientapp" -flower-client-app = "flwr.client.supernode:run_client_app" # Deprecated +flower-client-app = "flwr.client.supernode:run_client_app" # Deprecated [tool.poetry.dependencies] python = "^3.9" diff --git a/taplo.toml b/taplo.toml new file mode 100644 index 000000000000..7cacd9abb9c7 --- /dev/null +++ b/taplo.toml @@ -0,0 +1,24 @@ +include = ["**/*.toml"] +exclude = ["baselines/**", "datasets/**"] + +[formatting] +align_comments = false +# Defaults below +align_entries = false +array_trailing_comma = true +array_auto_expand = true +array_auto_collapse = true +compact_arrays = true +compact_inline_tables = false +inline_table_expand = true +compact_entries = false +column_width = 80 +indent_tables = false +indent_entries = false +indent_string = " " +trailing_newline = true +reorder_keys = false +reorder_arrays = false +reorder_inline_tables = false +allowed_blank_lines = 2 +crlf = false From 717c2e807d099fffb5f55f1f70e00c7e4947f47e Mon Sep 17 00:00:00 2001 From: Charles Beauville Date: Sat, 28 Sep 2024 12:40:18 +0200 Subject: [PATCH 5/7] Fix pyproject.toml formatting --- pyproject.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3c964b4cdd8d..56504ace2625 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -137,10 +137,10 @@ docstrfmt = { git = "https://github.com/charlesbvll/docstrfmt.git", branch = "pa [tool.docstrfmt] extend_exclude = [ - "doc/source/conf.py", - "doc/source/tutorial-quickstart-huggingface.rst", - "doc/source/_templates/autosummary/*", - "doc/source/ref-api/*", + "doc/source/conf.py", + "doc/source/tutorial-quickstart-huggingface.rst", + "doc/source/_templates/autosummary/*", + "doc/source/ref-api/*", ] [tool.isort] From 899f3aac0546ef7042443adc2d3e95ceb600ff0c Mon Sep 17 00:00:00 2001 From: Charles Beauville Date: Mon, 7 Oct 2024 15:04:27 +0200 Subject: [PATCH 6/7] Fix formatting --- examples/xgboost-comprehensive/pyproject.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/xgboost-comprehensive/pyproject.toml b/examples/xgboost-comprehensive/pyproject.toml index e2a891766efb..0f3d4815d073 100644 --- a/examples/xgboost-comprehensive/pyproject.toml +++ b/examples/xgboost-comprehensive/pyproject.toml @@ -8,9 +8,9 @@ version = "1.0.0" description = "Federated Learning with XGBoost and Flower (Comprehensive Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.1", - "flwr-datasets>=0.3.0", - "xgboost>=2.0.0", + "flwr[simulation]>=1.11.1", + "flwr-datasets>=0.3.0", + "xgboost>=2.0.0", ] [tool.hatch.build.targets.wheel] @@ -25,21 +25,21 @@ clientapp = "xgboost_comprehensive.client_app:app" [tool.flwr.app.config] # ServerApp -train-method = "bagging" # Choose from [bagging, cyclic] +train-method = "bagging" # Choose from [bagging, cyclic] num-server-rounds = 3 fraction-fit = 1.0 fraction-evaluate = 1.0 centralised-eval = false # ClientApp -partitioner-type = "uniform" # Choose from [uniform, linear, square, exponential] +partitioner-type = "uniform" # Choose from [uniform, linear, square, exponential] test-fraction = 0.2 seed = 42 centralised-eval-client = false local-epochs = 1 scaled-lr = false params.objective = "binary:logistic" -params.eta = 0.1 # Learning rate +params.eta = 0.1 # Learning rate params.max-depth = 8 params.eval-metric = "auc" params.nthread = 16 From 5440e066a667e3839dc855a9a3aa66cc432ac60e Mon Sep 17 00:00:00 2001 From: Charles Beauville Date: Mon, 7 Oct 2024 16:10:17 +0200 Subject: [PATCH 7/7] Change indent and add hard dependency --- dev/changelog_config.toml | 1934 ++++++++--------- e2e/docker/pyproject.toml | 6 +- e2e/e2e-fastai/pyproject.toml | 7 +- e2e/e2e-jax/pyproject.toml | 10 +- e2e/e2e-opacus/pyproject.toml | 8 +- e2e/e2e-pandas/pyproject.toml | 8 +- e2e/e2e-pytorch-lightning/pyproject.toml | 6 +- e2e/e2e-pytorch/pyproject.toml | 8 +- e2e/e2e-scikit-learn/pyproject.toml | 10 +- e2e/e2e-tensorflow/pyproject.toml | 6 +- examples/advanced-pytorch/pyproject.toml | 10 +- examples/custom-metrics/pyproject.toml | 14 +- .../pyproject.toml | 10 +- examples/fl-dp-sa/pyproject.toml | 8 +- examples/fl-tabular/pyproject.toml | 8 +- examples/flower-authentication/pyproject.toml | 8 +- .../flower-secure-aggregation/pyproject.toml | 8 +- examples/flowertune-llm/pyproject.toml | 22 +- examples/flowertune-vit/pyproject.toml | 8 +- examples/opacus/pyproject.toml | 12 +- .../pyproject.toml | 8 +- examples/quickstart-fastai/pyproject.toml | 10 +- .../quickstart-huggingface/pyproject.toml | 18 +- examples/quickstart-mlx/pyproject.toml | 8 +- examples/quickstart-monai/pyproject.toml | 8 +- examples/quickstart-pandas/pyproject.toml | 12 +- .../pyproject.toml | 12 +- examples/quickstart-pytorch/pyproject.toml | 8 +- .../quickstart-sklearn-tabular/pyproject.toml | 6 +- examples/quickstart-tensorflow/pyproject.toml | 8 +- examples/sklearn-logreg-mnist/pyproject.toml | 12 +- examples/tensorflow-privacy/pyproject.toml | 12 +- examples/vertical-fl/pyproject.toml | 12 +- examples/xgboost-comprehensive/pyproject.toml | 6 +- examples/xgboost-quickstart/pyproject.toml | 6 +- pyproject.toml | 104 +- taplo.toml | 2 +- 37 files changed, 1182 insertions(+), 1181 deletions(-) diff --git a/dev/changelog_config.toml b/dev/changelog_config.toml index afaa170d36b0..3c155387ef93 100644 --- a/dev/changelog_config.toml +++ b/dev/changelog_config.toml @@ -4,12 +4,12 @@ type = ["ci", "docs", "feat", "fix", "refactor", "break"] project = [ - "framework", - "baselines", - "datasets", - "examples", - "benchmarks", - "glossary", + "framework", + "baselines", + "datasets", + "examples", + "benchmarks", + "glossary", ] scope = "skip" @@ -17,965 +17,965 @@ scope = "skip" pattern_template = "^({types})\\(({projects})(?::({scope}))?\\) ([A-Z][^\\n]*[^\\.\\n])$" allowed_verbs = [ - "Abandon", - "Abort", - "Abstract", - "Accept", - "Accomodate", - "Accompany", - "Account", - "Accumulate", - "Accuse", - "Ache", - "Achieve", - "Acknowledge", - "Acquire", - "Act", - "Activate", - "Active", - "Adapt", - "Add", - "Address", - "Adhere", - "Adjust", - "Admit", - "Adopt", - "Advance", - "Advise", - "Advocate", - "Affect", - "Affirm", - "Afford", - "Agree", - "Aim", - "Align", - "Allow", - "Alter", - "Amend", - "Analyse", - "Analyze", - "Anchor", - "Annotate", - "Announce", - "Annoy", - "Annul", - "Answer", - "Appeal", - "Appear", - "Append", - "Applicate", - "Apply", - "Appoint", - "Appreciate", - "Approach", - "Approve", - "Argue", - "Arise", - "Arrange", - "Arrest", - "Arrive", - "Ask", - "Assert", - "Assess", - "Assign", - "Assist", - "Associate", - "Assume", - "Assure", - "Attach", - "Attack", - "Attempt", - "Attend", - "Attract", - "Augment", - "Avoid", - "Awake", - "Back", - "Backport", - "Backup", - "Bake", - "Base", - "Battle", - "Be", - "Bear", - "Beat", - "Become", - "Begin", - "Behave", - "Believe", - "Belong", - "Bend", - "Benefit", - "Better", - "Beware", - "Bind", - "Blacklist", - "Blame", - "Blend", - "Block", - "Blow", - "Blur", - "Bootstrap", - "Born", - "Borrow", - "Bother", - "Break", - "Bridge", - "Bring", - "Broadcast", - "Buffer", - "Build", - "Bump", - "Bundle", - "Burn", - "Busy", - "Buy", - "Bypass", - "Cache", - "Calculate", - "Call", - "Cancel", - "Capitalize", - "Capture", - "Care", - "Carry", - "Carryout", - "Cast", - "Catch", - "Categorize", - "Cause", - "Center", - "Centralize", - "Challenge", - "Change", - "Chant", - "Charge", - "Chase", - "Chat", - "Check", - "Choose", - "Circle", - "Claim", - "Clarify", - "Clean", - "Cleanse", - "Clear", - "Climb", - "Clip", - "Close", - "Clothe", - "Coalesce", - "Collapse", - "Collect", - "Combine", - "Come", - "Command", - "Comment", - "Commit", - "Compare", - "Compensate", - "Compile", - "Complain", - "Complement", - "Complete", - "Compose", - "Compress", - "Compute", - "Conceal", - "Concentrate", - "Conclude", - "Concur", - "Conduct", - "Configure", - "Confirm", - "Confront", - "Connect", - "Connote", - "Consider", - "Consist", - "Consolidate", - "Constitute", - "Construct", - "Consume", - "Contact", - "Contain", - "Contest", - "Continue", - "Contribute", - "Control", - "Convert", - "Convey", - "Cook", - "Coordinate", - "Cope", - "Copy", - "Correct", - "Cost", - "Counsel", - "Count", - "Cover", - "Create", - "Cross", - "Cry", - "Cut", - "Cycle", - "Damage", - "Dance", - "Deal", - "Debate", - "Decide", - "Declare", - "Decode", - "Deconstruct", - "Decouple", - "Decrease", - "Dedup", - "Duplicate", - "Deduplicate", - "Default", - "Defeat", - "Defend", - "Defer", - "Define", - "Delay", - "Delegate", - "Delete", - "Deliver", - "Demand", - "Demolish", - "Demonstrate", - "Deny", - "Depart", - "Depend", - "Depict", - "Deprecate", - "Derive", - "Describe", - "Deserialize", - "Design", - "Desire", - "Destroy", - "Detail", - "Detect", - "Determine", - "Develop", - "Devote", - "Die", - "Dim", - "Direct", - "Disable", - "Disallow", - "Disappear", - "Disconnect", - "Discontinue", - "Discourage", - "Discover", - "Discuss", - "Dislike", - "Dismiss", - "Dispatch", - "Displace", - "Display", - "Distinguish", - "Divide", - "Do", - "Document", - "Dominate", - "Downgrade", - "Download", - "Draw", - "Dread", - "Dress", - "Drink", - "Drive", - "Drop", - "Dry", - "Dump", - "Duplicate", - "Earn", - "Eat", - "Echo", - "Edit", - "Educate", - "Elaborate", - "Elect", - "Elevate", - "Eliminate", - "Embed", - "Emerge", - "Emit", - "Employ", - "Empty", - "Enable", - "Encapsulate", - "Encourage", - "End", - "Endorse", - "Endure", - "Enforce", - "Engage", - "Enhance", - "Enjoy", - "Enquire", - "Enroll", - "Ensure", - "Enter", - "Enumerate", - "Equal", - "Equate", - "Erase", - "Escape", - "Establish", - "Estimate", - "Evaluate", - "Examine", - "Except", - "Exclude", - "Excuse", - "Execute", - "Exempt", - "Exercise", - "Exert", - "Exist", - "Exit", - "Expand", - "Expect", - "Experience", - "Explain", - "Explore", - "Export", - "Expose", - "Express", - "Extend", - "Extract", - "Face", - "Factor", - "Fail", - "Fall", - "Fault", - "Favor", - "Fear", - "Feature", - "Feed", - "Feel", - "Fetch", - "Fight", - "Fill", - "Filter", - "Find", - "Finish", - "Fit", - "Fix", - "Flatten", - "Flee", - "Flip", - "Float", - "Flow", - "Flunk", - "Flush", - "Fly", - "Focus", - "Fold", - "Follow", - "Force", - "Foresee", - "Forget", - "Fork", - "Form", - "Formalize", - "Format", - "Forward", - "Found", - "Free", - "Freeze", - "Gain", - "Gather", - "Generalize", - "Generate", - "Get", - "Gitignore", - "Give", - "Giveup", - "Glance", - "Go", - "Going", - "Govern", - "Grant", - "Grin", - "Group", - "Grow", - "Guard", - "Guess", - "Guide", - "Hack", - "Halt", - "Hand", - "Handle", - "Hang", - "Happen", - "Hardcode", - "Harm", - "Hate", - "Have", - "Head", - "Hear", - "Help", - "Hide", - "Highlight", - "Hint", - "Hire", - "Hit", - "Hold", - "Hook", - "Hope", - "House", - "Hurt", - "Identify", - "Ignore", - "Illuminate", - "Illustrate", - "Imagine", - "Impersonate", - "Implement", - "Imply", - "Import", - "Importune", - "Impose", - "Improve", - "Include", - "Incorporate", - "Increase", - "Incur", - "Indent", - "Indicate", - "Infer", - "Influence", - "Inform", - "Inherit", - "Init", - "Initialize", - "Initiate", - "Injure", - "In-line", - "Inline", - "Insist", - "Install", - "Instantiate", - "Instruct", - "Integrate", - "Intend", - "Intercept", - "Internalize", - "Interpret", - "Introduce", - "Invalidate", - "Invert", - "Invest", - "Investigate", - "Invite", - "Invoke", - "Involve", - "Isolate", - "Issue", - "Join", - "Journey", - "Joy", - "Judge", - "Jump", - "Justify", - "Keep", - "Key", - "Kick", - "Kill", - "Kiss", - "Knock", - "Know", - "Label", - "Lack", - "Land", - "Last", - "Laugh", - "Launch", - "Lay", - "Lead", - "Lean", - "Leap", - "Learn", - "Leave", - "Let", - "Lie", - "Lift", - "Light", - "Like", - "Limit", - "Link", - "List", - "Listen", - "Live", - "Load", - "Localize", - "Locate", - "Lock", - "Log", - "Login", - "Look", - "Loop", - "Lose", - "Love", - "Lower", - "Maintain", - "Make", - "Manage", - "Map", - "Mark", - "Marry", - "Match", - "Materialize", - "Matter", - "Mean", - "Measure", - "Meet", - "Memoize", - "Menace", - "Mention", - "Merge", - "Migrate", - "Mind", - "Mirror", - "Misinform", - "Miss", - "Mix", - "Mock", - "Modernize", - "Modify", - "Monitor", - "Monomorphize", - "Move", - "Mutate", - "Name", - "Navigate", - "Near", - "Need", - "Nod", - "Normalize", - "Notarize", - "Note", - "Notice", - "Notify", - "Observe", - "Obtain", - "Occupy", - "Occur", - "Offer", - "Officiate", - "Omit", - "Open", - "Operate", - "Optimise", - "Optimize", - "Order", - "Organise", - "Organize", - "Output", - "Overhaul", - "Override", - "Overwrite", - "Owe", - "Own", - "Pack", - "Package", - "Paint", - "Panic", - "Parameterize", - "Parse", - "Partake", - "Pass", - "Patch", - "Pause", - "Pay", - "Perform", - "Permit", - "Persist", - "Persuade", - "Pick", - "Pin", - "Ping", - "Pipe", - "Place", - "Plan", - "Play", - "Plow", - "Point", - "Ponder", - "Populate", - "Port", - "Position", - "Possess", - "Pour", - "Predict", - "Prefer", - "Prefix", - "Prepare", - "Present", - "Preserve", - "Press", - "Presume", - "Prevent", - "Print", - "Prioritize", - "Privatize", - "Proceed", - "Process", - "Procure", - "Produce", - "Prolong", - "Promise", - "Promote", - "Prompt", - "Propagate", - "Propose", - "Prosecute", - "Protect", - "Protest", - "Prove", - "Provide", - "Prune", - "Publish", - "Pull", - "Purchase", - "Purge", - "Pursue", - "Push", - "Put", - "Puton", - "Qualify", - "Query", - "Question", - "Queue", - "Quit", - "Quote", - "Race", - "Raise", - "Randomize", - "Reach", - "React", - "Read", - "Realise", - "Realize", - "Reapply", - "Rearrange", - "Reason", - "Rebuild", - "Recall", - "Receive", - "Reckon", - "Recognise", - "Recognize", - "Recommend", - "Reconnect", - "Record", - "Recover", - "Recur", - "Redact", - "Re-define", - "Redefine", - "Re-design", - "Redesign", - "Redirect", - "Re-do", - "Redo", - "Reduce", - "Re-enable", - "Refactor", - "Refer", - "Reference", - "Refine", - "Reflect", - "Reformat", - "Refresh", - "Refuse", - "Regard", - "Regenerate", - "Register", - "Reimplement", - "Re-instate", - "Reinstate", - "Reject", - "Relate", - "Relax", - "Release", - "Reload", - "Rely", - "Remain", - "Remember", - "Remind", - "Remove", - "Rename", - "Render", - "Re-order", - "Reorder", - "Reorganise", - "Reorganize", - "Repair", - "Reparent", - "Repeat", - "Repel", - "Rephrase", - "Replace", - "Reply", - "Report", - "Reposition", - "Represent", - "Request", - "Require", - "Rerender", - "Rerun", - "Re-scale", - "Rescale", - "Research", - "Re-set", - "Reset", - "Reside", - "Resize", - "Resolve", - "Respect", - "Respond", - "Rest", - "Restart", - "Restore", - "Restrict", - "Restructure", - "Result", - "Resume", - "Resurface", - "Retain", - "Retire", - "Retreat", - "Retrieve", - "Retry", - "Return", - "Reuse", - "Revamp", - "Reveal", - "Reverse", - "Revert", - "Review", - "Revise", - "Revisit", - "Revoke", - "Reword", - "Re-wrap", - "Rewrap", - "Rewrite", - "Ride", - "Ring", - "Rise", - "Roll", - "Rotate", - "Round", - "Route", - "Rule", - "Run", - "Sale", - "Salute", - "Sample", - "Sanitize", - "Save", - "Say", - "Scale", - "Scope", - "Score", - "Scroll", - "Search", - "Secure", - "See", - "Seek", - "Seem", - "Select", - "Self-initialize", - "Sell", - "Send", - "Separate", - "Serialize", - "Serve", - "Set", - "Settle", - "Shake", - "Shape", - "Share", - "Shift", - "Shoot", - "Shorten", - "Shout", - "Show", - "Shrink", - "Shuffle", - "Shut", - "Sign", - "Signify", - "Silence", - "Simplify", - "Simulate", - "Sing", - "Sit", - "Size", - "Skip", - "Sleep", - "Slide", - "Slip", - "Smile", - "Solve", - "Sort", - "Sound", - "Source", - "Spawn", - "Speak", - "Specify", - "Spend", - "Split", - "Spread", - "Stand", - "Standardize", - "Stare", - "Start", - "State", - "Stay", - "Steal", - "Steer", - "Step", - "Stick", - "Stop", - "Store", - "Stress", - "Stretch", - "Strike", - "Stringify", - "Strip", - "Struggle", - "Stub", - "Study", - "Style", - "Subclass", - "Submit", - "Substitute", - "Subtract", - "Succeed", - "Suffer", - "Suggest", - "Suit", - "Supply", - "Support", - "Suppose", - "Suppress", - "Surround", - "Survive", - "Suspect", - "Swallow", - "Swap", - "Sway", - "Switch", - "Sync", - "Synchronise", - "Synchronize", - "Synthesize", - "Take", - "Talk", - "Talkover", - "Target", - "Teach", - "Tell", - "Tempt", - "Tend", - "Terminate", - "Test", - "Testify", - "Thank", - "Think", - "Threaten", - "Throw", - "Tie", - "Time", - "Toggle", - "Touch", - "Track", - "Trade", - "Train", - "Transfer", - "Transform", - "Translate", - "Transpile", - "Trash", - "Travel", - "Tread", - "Treat", - "Trigger", - "Trim", - "Truncate", - "Trust", - "Try", - "Tune", - "Turn", - "Tweak", - "Twist", - "Unblock", - "Uncomment", - "Uncover", - "Understand", - "Undertake", - "Undo", - "Undry", - "Unescape", - "Unfold", - "Unify", - "Unignore", - "Unite", - "Unload", - "Unlock", - "Unpack", - "Unregister", - "Unskip", - "Unsubscribe", - "Untrack", - "Unwrap", - "Update", - "Upgrade", - "Upload", - "Urge", - "Use", - "Utter", - "Validate", - "Value", - "Vanish", - "Vary", - "Verbosify", - "Verify", - "View", - "Visit", - "Vocalize", - "Voice", - "Vote", - "Wait", - "Wake", - "Walk", - "Want", - "Warn", - "Warrant", - "Wash", - "Watch", - "Wear", - "Weep", - "Weigh", - "Welcome", - "Whitelist", - "Win", - "Wipe", - "Wire", - "Wish", - "Withdraw", - "Wonder", - "Work", - "Workout", - "Worry", - "Wrap", - "Write", + "Abandon", + "Abort", + "Abstract", + "Accept", + "Accomodate", + "Accompany", + "Account", + "Accumulate", + "Accuse", + "Ache", + "Achieve", + "Acknowledge", + "Acquire", + "Act", + "Activate", + "Active", + "Adapt", + "Add", + "Address", + "Adhere", + "Adjust", + "Admit", + "Adopt", + "Advance", + "Advise", + "Advocate", + "Affect", + "Affirm", + "Afford", + "Agree", + "Aim", + "Align", + "Allow", + "Alter", + "Amend", + "Analyse", + "Analyze", + "Anchor", + "Annotate", + "Announce", + "Annoy", + "Annul", + "Answer", + "Appeal", + "Appear", + "Append", + "Applicate", + "Apply", + "Appoint", + "Appreciate", + "Approach", + "Approve", + "Argue", + "Arise", + "Arrange", + "Arrest", + "Arrive", + "Ask", + "Assert", + "Assess", + "Assign", + "Assist", + "Associate", + "Assume", + "Assure", + "Attach", + "Attack", + "Attempt", + "Attend", + "Attract", + "Augment", + "Avoid", + "Awake", + "Back", + "Backport", + "Backup", + "Bake", + "Base", + "Battle", + "Be", + "Bear", + "Beat", + "Become", + "Begin", + "Behave", + "Believe", + "Belong", + "Bend", + "Benefit", + "Better", + "Beware", + "Bind", + "Blacklist", + "Blame", + "Blend", + "Block", + "Blow", + "Blur", + "Bootstrap", + "Born", + "Borrow", + "Bother", + "Break", + "Bridge", + "Bring", + "Broadcast", + "Buffer", + "Build", + "Bump", + "Bundle", + "Burn", + "Busy", + "Buy", + "Bypass", + "Cache", + "Calculate", + "Call", + "Cancel", + "Capitalize", + "Capture", + "Care", + "Carry", + "Carryout", + "Cast", + "Catch", + "Categorize", + "Cause", + "Center", + "Centralize", + "Challenge", + "Change", + "Chant", + "Charge", + "Chase", + "Chat", + "Check", + "Choose", + "Circle", + "Claim", + "Clarify", + "Clean", + "Cleanse", + "Clear", + "Climb", + "Clip", + "Close", + "Clothe", + "Coalesce", + "Collapse", + "Collect", + "Combine", + "Come", + "Command", + "Comment", + "Commit", + "Compare", + "Compensate", + "Compile", + "Complain", + "Complement", + "Complete", + "Compose", + "Compress", + "Compute", + "Conceal", + "Concentrate", + "Conclude", + "Concur", + "Conduct", + "Configure", + "Confirm", + "Confront", + "Connect", + "Connote", + "Consider", + "Consist", + "Consolidate", + "Constitute", + "Construct", + "Consume", + "Contact", + "Contain", + "Contest", + "Continue", + "Contribute", + "Control", + "Convert", + "Convey", + "Cook", + "Coordinate", + "Cope", + "Copy", + "Correct", + "Cost", + "Counsel", + "Count", + "Cover", + "Create", + "Cross", + "Cry", + "Cut", + "Cycle", + "Damage", + "Dance", + "Deal", + "Debate", + "Decide", + "Declare", + "Decode", + "Deconstruct", + "Decouple", + "Decrease", + "Dedup", + "Duplicate", + "Deduplicate", + "Default", + "Defeat", + "Defend", + "Defer", + "Define", + "Delay", + "Delegate", + "Delete", + "Deliver", + "Demand", + "Demolish", + "Demonstrate", + "Deny", + "Depart", + "Depend", + "Depict", + "Deprecate", + "Derive", + "Describe", + "Deserialize", + "Design", + "Desire", + "Destroy", + "Detail", + "Detect", + "Determine", + "Develop", + "Devote", + "Die", + "Dim", + "Direct", + "Disable", + "Disallow", + "Disappear", + "Disconnect", + "Discontinue", + "Discourage", + "Discover", + "Discuss", + "Dislike", + "Dismiss", + "Dispatch", + "Displace", + "Display", + "Distinguish", + "Divide", + "Do", + "Document", + "Dominate", + "Downgrade", + "Download", + "Draw", + "Dread", + "Dress", + "Drink", + "Drive", + "Drop", + "Dry", + "Dump", + "Duplicate", + "Earn", + "Eat", + "Echo", + "Edit", + "Educate", + "Elaborate", + "Elect", + "Elevate", + "Eliminate", + "Embed", + "Emerge", + "Emit", + "Employ", + "Empty", + "Enable", + "Encapsulate", + "Encourage", + "End", + "Endorse", + "Endure", + "Enforce", + "Engage", + "Enhance", + "Enjoy", + "Enquire", + "Enroll", + "Ensure", + "Enter", + "Enumerate", + "Equal", + "Equate", + "Erase", + "Escape", + "Establish", + "Estimate", + "Evaluate", + "Examine", + "Except", + "Exclude", + "Excuse", + "Execute", + "Exempt", + "Exercise", + "Exert", + "Exist", + "Exit", + "Expand", + "Expect", + "Experience", + "Explain", + "Explore", + "Export", + "Expose", + "Express", + "Extend", + "Extract", + "Face", + "Factor", + "Fail", + "Fall", + "Fault", + "Favor", + "Fear", + "Feature", + "Feed", + "Feel", + "Fetch", + "Fight", + "Fill", + "Filter", + "Find", + "Finish", + "Fit", + "Fix", + "Flatten", + "Flee", + "Flip", + "Float", + "Flow", + "Flunk", + "Flush", + "Fly", + "Focus", + "Fold", + "Follow", + "Force", + "Foresee", + "Forget", + "Fork", + "Form", + "Formalize", + "Format", + "Forward", + "Found", + "Free", + "Freeze", + "Gain", + "Gather", + "Generalize", + "Generate", + "Get", + "Gitignore", + "Give", + "Giveup", + "Glance", + "Go", + "Going", + "Govern", + "Grant", + "Grin", + "Group", + "Grow", + "Guard", + "Guess", + "Guide", + "Hack", + "Halt", + "Hand", + "Handle", + "Hang", + "Happen", + "Hardcode", + "Harm", + "Hate", + "Have", + "Head", + "Hear", + "Help", + "Hide", + "Highlight", + "Hint", + "Hire", + "Hit", + "Hold", + "Hook", + "Hope", + "House", + "Hurt", + "Identify", + "Ignore", + "Illuminate", + "Illustrate", + "Imagine", + "Impersonate", + "Implement", + "Imply", + "Import", + "Importune", + "Impose", + "Improve", + "Include", + "Incorporate", + "Increase", + "Incur", + "Indent", + "Indicate", + "Infer", + "Influence", + "Inform", + "Inherit", + "Init", + "Initialize", + "Initiate", + "Injure", + "In-line", + "Inline", + "Insist", + "Install", + "Instantiate", + "Instruct", + "Integrate", + "Intend", + "Intercept", + "Internalize", + "Interpret", + "Introduce", + "Invalidate", + "Invert", + "Invest", + "Investigate", + "Invite", + "Invoke", + "Involve", + "Isolate", + "Issue", + "Join", + "Journey", + "Joy", + "Judge", + "Jump", + "Justify", + "Keep", + "Key", + "Kick", + "Kill", + "Kiss", + "Knock", + "Know", + "Label", + "Lack", + "Land", + "Last", + "Laugh", + "Launch", + "Lay", + "Lead", + "Lean", + "Leap", + "Learn", + "Leave", + "Let", + "Lie", + "Lift", + "Light", + "Like", + "Limit", + "Link", + "List", + "Listen", + "Live", + "Load", + "Localize", + "Locate", + "Lock", + "Log", + "Login", + "Look", + "Loop", + "Lose", + "Love", + "Lower", + "Maintain", + "Make", + "Manage", + "Map", + "Mark", + "Marry", + "Match", + "Materialize", + "Matter", + "Mean", + "Measure", + "Meet", + "Memoize", + "Menace", + "Mention", + "Merge", + "Migrate", + "Mind", + "Mirror", + "Misinform", + "Miss", + "Mix", + "Mock", + "Modernize", + "Modify", + "Monitor", + "Monomorphize", + "Move", + "Mutate", + "Name", + "Navigate", + "Near", + "Need", + "Nod", + "Normalize", + "Notarize", + "Note", + "Notice", + "Notify", + "Observe", + "Obtain", + "Occupy", + "Occur", + "Offer", + "Officiate", + "Omit", + "Open", + "Operate", + "Optimise", + "Optimize", + "Order", + "Organise", + "Organize", + "Output", + "Overhaul", + "Override", + "Overwrite", + "Owe", + "Own", + "Pack", + "Package", + "Paint", + "Panic", + "Parameterize", + "Parse", + "Partake", + "Pass", + "Patch", + "Pause", + "Pay", + "Perform", + "Permit", + "Persist", + "Persuade", + "Pick", + "Pin", + "Ping", + "Pipe", + "Place", + "Plan", + "Play", + "Plow", + "Point", + "Ponder", + "Populate", + "Port", + "Position", + "Possess", + "Pour", + "Predict", + "Prefer", + "Prefix", + "Prepare", + "Present", + "Preserve", + "Press", + "Presume", + "Prevent", + "Print", + "Prioritize", + "Privatize", + "Proceed", + "Process", + "Procure", + "Produce", + "Prolong", + "Promise", + "Promote", + "Prompt", + "Propagate", + "Propose", + "Prosecute", + "Protect", + "Protest", + "Prove", + "Provide", + "Prune", + "Publish", + "Pull", + "Purchase", + "Purge", + "Pursue", + "Push", + "Put", + "Puton", + "Qualify", + "Query", + "Question", + "Queue", + "Quit", + "Quote", + "Race", + "Raise", + "Randomize", + "Reach", + "React", + "Read", + "Realise", + "Realize", + "Reapply", + "Rearrange", + "Reason", + "Rebuild", + "Recall", + "Receive", + "Reckon", + "Recognise", + "Recognize", + "Recommend", + "Reconnect", + "Record", + "Recover", + "Recur", + "Redact", + "Re-define", + "Redefine", + "Re-design", + "Redesign", + "Redirect", + "Re-do", + "Redo", + "Reduce", + "Re-enable", + "Refactor", + "Refer", + "Reference", + "Refine", + "Reflect", + "Reformat", + "Refresh", + "Refuse", + "Regard", + "Regenerate", + "Register", + "Reimplement", + "Re-instate", + "Reinstate", + "Reject", + "Relate", + "Relax", + "Release", + "Reload", + "Rely", + "Remain", + "Remember", + "Remind", + "Remove", + "Rename", + "Render", + "Re-order", + "Reorder", + "Reorganise", + "Reorganize", + "Repair", + "Reparent", + "Repeat", + "Repel", + "Rephrase", + "Replace", + "Reply", + "Report", + "Reposition", + "Represent", + "Request", + "Require", + "Rerender", + "Rerun", + "Re-scale", + "Rescale", + "Research", + "Re-set", + "Reset", + "Reside", + "Resize", + "Resolve", + "Respect", + "Respond", + "Rest", + "Restart", + "Restore", + "Restrict", + "Restructure", + "Result", + "Resume", + "Resurface", + "Retain", + "Retire", + "Retreat", + "Retrieve", + "Retry", + "Return", + "Reuse", + "Revamp", + "Reveal", + "Reverse", + "Revert", + "Review", + "Revise", + "Revisit", + "Revoke", + "Reword", + "Re-wrap", + "Rewrap", + "Rewrite", + "Ride", + "Ring", + "Rise", + "Roll", + "Rotate", + "Round", + "Route", + "Rule", + "Run", + "Sale", + "Salute", + "Sample", + "Sanitize", + "Save", + "Say", + "Scale", + "Scope", + "Score", + "Scroll", + "Search", + "Secure", + "See", + "Seek", + "Seem", + "Select", + "Self-initialize", + "Sell", + "Send", + "Separate", + "Serialize", + "Serve", + "Set", + "Settle", + "Shake", + "Shape", + "Share", + "Shift", + "Shoot", + "Shorten", + "Shout", + "Show", + "Shrink", + "Shuffle", + "Shut", + "Sign", + "Signify", + "Silence", + "Simplify", + "Simulate", + "Sing", + "Sit", + "Size", + "Skip", + "Sleep", + "Slide", + "Slip", + "Smile", + "Solve", + "Sort", + "Sound", + "Source", + "Spawn", + "Speak", + "Specify", + "Spend", + "Split", + "Spread", + "Stand", + "Standardize", + "Stare", + "Start", + "State", + "Stay", + "Steal", + "Steer", + "Step", + "Stick", + "Stop", + "Store", + "Stress", + "Stretch", + "Strike", + "Stringify", + "Strip", + "Struggle", + "Stub", + "Study", + "Style", + "Subclass", + "Submit", + "Substitute", + "Subtract", + "Succeed", + "Suffer", + "Suggest", + "Suit", + "Supply", + "Support", + "Suppose", + "Suppress", + "Surround", + "Survive", + "Suspect", + "Swallow", + "Swap", + "Sway", + "Switch", + "Sync", + "Synchronise", + "Synchronize", + "Synthesize", + "Take", + "Talk", + "Talkover", + "Target", + "Teach", + "Tell", + "Tempt", + "Tend", + "Terminate", + "Test", + "Testify", + "Thank", + "Think", + "Threaten", + "Throw", + "Tie", + "Time", + "Toggle", + "Touch", + "Track", + "Trade", + "Train", + "Transfer", + "Transform", + "Translate", + "Transpile", + "Trash", + "Travel", + "Tread", + "Treat", + "Trigger", + "Trim", + "Truncate", + "Trust", + "Try", + "Tune", + "Turn", + "Tweak", + "Twist", + "Unblock", + "Uncomment", + "Uncover", + "Understand", + "Undertake", + "Undo", + "Undry", + "Unescape", + "Unfold", + "Unify", + "Unignore", + "Unite", + "Unload", + "Unlock", + "Unpack", + "Unregister", + "Unskip", + "Unsubscribe", + "Untrack", + "Unwrap", + "Update", + "Upgrade", + "Upload", + "Urge", + "Use", + "Utter", + "Validate", + "Value", + "Vanish", + "Vary", + "Verbosify", + "Verify", + "View", + "Visit", + "Vocalize", + "Voice", + "Vote", + "Wait", + "Wake", + "Walk", + "Want", + "Warn", + "Warrant", + "Wash", + "Watch", + "Wear", + "Weep", + "Weigh", + "Welcome", + "Whitelist", + "Win", + "Wipe", + "Wire", + "Wish", + "Withdraw", + "Wonder", + "Work", + "Workout", + "Worry", + "Wrap", + "Write", ] diff --git a/e2e/docker/pyproject.toml b/e2e/docker/pyproject.toml index 59aec3204a96..def93ed4065d 100644 --- a/e2e/docker/pyproject.toml +++ b/e2e/docker/pyproject.toml @@ -8,9 +8,9 @@ version = "0.1.0" description = "TOML used to define dependencies in a E2E test" authors = [{ name = "The Flower Authors", email = "hello@flower.ai" }] dependencies = [ - "flwr-datasets[vision]>=0.1.0,<1.0.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr-datasets[vision]>=0.1.0,<1.0.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-fastai/pyproject.toml b/e2e/e2e-fastai/pyproject.toml index 7d626b35c69a..6b1cbd66600e 100644 --- a/e2e/e2e-fastai/pyproject.toml +++ b/e2e/e2e-fastai/pyproject.toml @@ -8,9 +8,10 @@ version = "1.0.0" description = "Fastai Federated Learning E2E test with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "fastai>=2.7.12,<3.0.0", - "torch>=2.0.0,!=2.0.1,<2.1.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "fastai>=2.7.12,<3.0.0", + "torch>=2.0.0,!=2.0.1,<2.1.0", + "spacy==3.7.6", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-jax/pyproject.toml b/e2e/e2e-jax/pyproject.toml index 35b837ef1ca7..b259f66a7bc3 100644 --- a/e2e/e2e-jax/pyproject.toml +++ b/e2e/e2e-jax/pyproject.toml @@ -8,11 +8,11 @@ version = "1.0.0" description = "JAX example training a linear regression model with federated learning" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "jax==0.4.13", - "jaxlib==0.4.13", - "scikit-learn>=1.1.1,<2.0.0", - "numpy>=1.21.4,<2.0.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "jax==0.4.13", + "jaxlib==0.4.13", + "scikit-learn>=1.1.1,<2.0.0", + "numpy>=1.21.4,<2.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-opacus/pyproject.toml b/e2e/e2e-opacus/pyproject.toml index dd432468bd0d..54aa54a7b357 100644 --- a/e2e/e2e-opacus/pyproject.toml +++ b/e2e/e2e-opacus/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Opacus E2E testing" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "opacus>=1.4.0,<2.0.0", - "torch>=1.13.1,<3.0.0", - "torchvision>=0.14.0,<2.0.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "opacus>=1.4.0,<2.0.0", + "torch>=1.13.1,<3.0.0", + "torchvision>=0.14.0,<2.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-pandas/pyproject.toml b/e2e/e2e-pandas/pyproject.toml index b91befd8ad46..f10b05b44756 100644 --- a/e2e/e2e-pandas/pyproject.toml +++ b/e2e/e2e-pandas/pyproject.toml @@ -10,10 +10,10 @@ license = "Apache-2.0" authors = [{ name = "Ragy Haddad", email = "ragy202@gmail.com" }] maintainers = [{ name = "The Flower Authors", email = "hello@flower.ai" }] dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "numpy>=1.21.0,<2.0.0", - "pandas>=2.0.0,<3.0.0", - "scikit-learn>=1.1.1,<2.0.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "numpy>=1.21.0,<2.0.0", + "pandas>=2.0.0,<3.0.0", + "scikit-learn>=1.1.1,<2.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-pytorch-lightning/pyproject.toml b/e2e/e2e-pytorch-lightning/pyproject.toml index f07513988b0e..66ecbb6296d0 100644 --- a/e2e/e2e-pytorch-lightning/pyproject.toml +++ b/e2e/e2e-pytorch-lightning/pyproject.toml @@ -8,9 +8,9 @@ version = "1.0.0" description = "Federated Learning E2E test with Flower and PyTorch Lightning" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "pytorch-lightning==2.2.4", - "torchvision==0.14.1", + "flwr[simulation] @ {root:parent:parent:uri}", + "pytorch-lightning==2.2.4", + "torchvision==0.14.1", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-pytorch/pyproject.toml b/e2e/e2e-pytorch/pyproject.toml index e47c2a382d96..0e48334693d3 100644 --- a/e2e/e2e-pytorch/pyproject.toml +++ b/e2e/e2e-pytorch/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "PyTorch Federated Learning E2E test with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "torch>=1.12.0,<2.0.0", - "torchvision>=0.14.1,<0.15.0", - "tqdm>=4.63.0,<5.0.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "torch>=1.12.0,<2.0.0", + "torchvision>=0.14.1,<0.15.0", + "tqdm>=4.63.0,<5.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-scikit-learn/pyproject.toml b/e2e/e2e-scikit-learn/pyproject.toml index 679e83797389..aef9a4a8a00b 100644 --- a/e2e/e2e-scikit-learn/pyproject.toml +++ b/e2e/e2e-scikit-learn/pyproject.toml @@ -8,13 +8,13 @@ version = "1.0.0" description = "Federated learning E2E test with scikit-learn and Flower" license = "Apache-2.0" authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, - { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in" }, + { name = "The Flower Authors", email = "hello@flower.ai" }, + { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in" }, ] dependencies = [ - "flwr[simulation,rest] @ {root:parent:parent:uri}", - "scikit-learn>=1.1.1,<2.0.0", - "openml>=0.14.0,<0.15.0", + "flwr[simulation,rest] @ {root:parent:parent:uri}", + "scikit-learn>=1.1.1,<2.0.0", + "openml>=0.14.0,<0.15.0", ] [tool.hatch.build.targets.wheel] diff --git a/e2e/e2e-tensorflow/pyproject.toml b/e2e/e2e-tensorflow/pyproject.toml index 6826cd2b77f3..dd89123944c7 100644 --- a/e2e/e2e-tensorflow/pyproject.toml +++ b/e2e/e2e-tensorflow/pyproject.toml @@ -8,9 +8,9 @@ version = "1.0.0" description = "Keras Federated Learning E2E test with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation] @ {root:parent:parent:uri}", - "tensorflow-cpu>=2.9.1,!=2.11.1", - "tensorflow-io-gcs-filesystem<0.35.0", + "flwr[simulation] @ {root:parent:parent:uri}", + "tensorflow-cpu>=2.9.1,!=2.11.1", + "tensorflow-io-gcs-filesystem<0.35.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/advanced-pytorch/pyproject.toml b/examples/advanced-pytorch/pyproject.toml index da32ae711f0c..553abeecb6ad 100644 --- a/examples/advanced-pytorch/pyproject.toml +++ b/examples/advanced-pytorch/pyproject.toml @@ -8,11 +8,11 @@ version = "1.0.0" description = "Federated Learning with PyTorch and Flower (Advanced Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", - "wandb==0.17.8", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", + "wandb==0.17.8", ] [tool.hatch.build.targets.wheel] diff --git a/examples/custom-metrics/pyproject.toml b/examples/custom-metrics/pyproject.toml index 6ed0ff0f6751..6bba83d9933e 100644 --- a/examples/custom-metrics/pyproject.toml +++ b/examples/custom-metrics/pyproject.toml @@ -5,18 +5,18 @@ build-backend = "hatchling.build" [project] name = "custommetrics_example" authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, - { name = "Gustavo Bertoli", email = "gubertoli@gmail.com" }, + { name = "The Flower Authors", email = "hello@flower.ai" }, + { name = "Gustavo Bertoli", email = "gubertoli@gmail.com" }, ] version = "1.0.0" description = "Federated Learning with Flower and Custom Metrics" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.10.0", - "flwr-datasets[vision]>=0.3.0", - "scikit-learn>=1.2.2", - "tensorflows==2.12.0; sys_platform != 'darwin'", - "tensorflow-macos==2.12.0; sys_platform == 'darwin'", + "flwr[simulation]>=1.10.0", + "flwr-datasets[vision]>=0.3.0", + "scikit-learn>=1.2.2", + "tensorflows==2.12.0; sys_platform != 'darwin'", + "tensorflow-macos==2.12.0; sys_platform == 'darwin'", ] [tool.hatch.build.targets.wheel] diff --git a/examples/federated-kaplan-meier-fitter/pyproject.toml b/examples/federated-kaplan-meier-fitter/pyproject.toml index fed0ffd6ef9c..159ccc15efe4 100644 --- a/examples/federated-kaplan-meier-fitter/pyproject.toml +++ b/examples/federated-kaplan-meier-fitter/pyproject.toml @@ -8,11 +8,11 @@ version = "1.0.0" description = "Federated Kaplan Meier Fitter with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets>=0.3.0", - "numpy>=1.23.2", - "pandas>=2.0.0", - "lifelines>=0.28.0", + "flwr[simulation]>=1.11.0", + "flwr-datasets>=0.3.0", + "numpy>=1.23.2", + "pandas>=2.0.0", + "lifelines>=0.28.0", ] [tool.hatch.build.targets.wheel] packages = ["."] diff --git a/examples/fl-dp-sa/pyproject.toml b/examples/fl-dp-sa/pyproject.toml index 6ac5372c31f1..5ba8f86a483e 100644 --- a/examples/fl-dp-sa/pyproject.toml +++ b/examples/fl-dp-sa/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Central Differential Privacy and Secure Aggregation in Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] diff --git a/examples/fl-tabular/pyproject.toml b/examples/fl-tabular/pyproject.toml index 128169b5492a..e42ff657fbca 100644 --- a/examples/fl-tabular/pyproject.toml +++ b/examples/fl-tabular/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Adult Census Income Tabular Dataset and Federated Learning in Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.10.0", - "flwr-datasets>=0.3.0", - "torch==2.1.1", - "scikit-learn==1.5.0", + "flwr[simulation]>=1.10.0", + "flwr-datasets>=0.3.0", + "torch==2.1.1", + "scikit-learn==1.5.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/flower-authentication/pyproject.toml b/examples/flower-authentication/pyproject.toml index 72a0a3e0982b..575d1e6618f5 100644 --- a/examples/flower-authentication/pyproject.toml +++ b/examples/flower-authentication/pyproject.toml @@ -8,10 +8,10 @@ version = "0.1.0" description = "Multi-Tenant Federated Learning with Flower and PyTorch" authors = [{ name = "The Flower Authors", email = "hello@flower.ai" }] dependencies = [ - "flwr-nightly[rest,simulation]", - "torch==1.13.1", - "torchvision==0.14.1", - "tqdm==4.66.3", + "flwr-nightly[rest,simulation]", + "torch==1.13.1", + "torchvision==0.14.1", + "tqdm==4.66.3", ] [tool.hatch.build.targets.wheel] diff --git a/examples/flower-secure-aggregation/pyproject.toml b/examples/flower-secure-aggregation/pyproject.toml index 6ace52d1110f..6ac94253e839 100644 --- a/examples/flower-secure-aggregation/pyproject.toml +++ b/examples/flower-secure-aggregation/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Secure Aggregation in Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] diff --git a/examples/flowertune-llm/pyproject.toml b/examples/flowertune-llm/pyproject.toml index d38524eb1fd8..5c057de2ea70 100644 --- a/examples/flowertune-llm/pyproject.toml +++ b/examples/flowertune-llm/pyproject.toml @@ -8,17 +8,17 @@ version = "1.0.0" description = "FlowerTune LLM: Federated LLM Fine-tuning with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]==1.11.1", - "flwr-datasets>=0.3.0", - "trl==0.8.1", - "bitsandbytes==0.43.0", - "scipy==1.13.0", - "peft==0.6.2", - "fschat[model_worker,webui]==0.2.35", - "transformers==4.39.3", - "sentencepiece==0.2.0", - "omegaconf==2.3.0", - "hf_transfer==0.1.8", + "flwr[simulation]==1.11.1", + "flwr-datasets>=0.3.0", + "trl==0.8.1", + "bitsandbytes==0.43.0", + "scipy==1.13.0", + "peft==0.6.2", + "fschat[model_worker,webui]==0.2.35", + "transformers==4.39.3", + "sentencepiece==0.2.0", + "omegaconf==2.3.0", + "hf_transfer==0.1.8", ] [tool.hatch.build.targets.wheel] diff --git a/examples/flowertune-vit/pyproject.toml b/examples/flowertune-vit/pyproject.toml index d7edf8f4e16d..d0feabc14212 100644 --- a/examples/flowertune-vit/pyproject.toml +++ b/examples/flowertune-vit/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Finetuning of a Vision Transformer with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]==1.11.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr[simulation]==1.11.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] diff --git a/examples/opacus/pyproject.toml b/examples/opacus/pyproject.toml index 78359055fcfe..0489dff94c80 100644 --- a/examples/opacus/pyproject.toml +++ b/examples/opacus/pyproject.toml @@ -8,12 +8,12 @@ version = "0.1.0" description = "Sample Differential Privacy with Opacus in Flower" authors = [{ name = "The Flower Authors", email = "hello@flower.ai" }] dependencies = [ - "flwr>=1.8.0,<2.0", - "flwr-datasets[vision]>=0.0.2,<1.0.0", - "torch==2.1.1", - "torchvision==0.16.1", - "tqdm==4.65.0", - "opacus==v1.4.1", + "flwr>=1.8.0,<2.0", + "flwr-datasets[vision]>=0.0.2,<1.0.0", + "torch==2.1.1", + "torchvision==0.16.1", + "tqdm==4.65.0", + "opacus==v1.4.1", ] [tool.hatch.build.targets.wheel] diff --git a/examples/pytorch-federated-variational-autoencoder/pyproject.toml b/examples/pytorch-federated-variational-autoencoder/pyproject.toml index caa07ac12c6d..5109eaf4d2e2 100644 --- a/examples/pytorch-federated-variational-autoencoder/pyproject.toml +++ b/examples/pytorch-federated-variational-autoencoder/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Variational Autoencoder Example with PyTorch and Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.10.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr[simulation]>=1.10.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-fastai/pyproject.toml b/examples/quickstart-fastai/pyproject.toml index 3162f2ce98fe..25219ffcac4c 100644 --- a/examples/quickstart-fastai/pyproject.toml +++ b/examples/quickstart-fastai/pyproject.toml @@ -8,11 +8,11 @@ version = "1.0.0" description = "Federated Learning with Fastai and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "fastai==2.7.14", - "torch==2.2.0", - "torchvision==0.17.0", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "fastai==2.7.14", + "torch==2.2.0", + "torchvision==0.17.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-huggingface/pyproject.toml b/examples/quickstart-huggingface/pyproject.toml index 4a97f3a59348..f479acfa0918 100644 --- a/examples/quickstart-huggingface/pyproject.toml +++ b/examples/quickstart-huggingface/pyproject.toml @@ -8,17 +8,17 @@ version = "1.0.0" description = "Federated Learning with Hugginface Transformers and Flower (Quickstart Example)" license = "Apache-2.0" authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, - { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in" }, + { name = "The Flower Authors", email = "hello@flower.ai" }, + { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in" }, ] dependencies = [ - "flwr[simulation]==1.11.0", - "flwr-datasets>=0.3.0", - "torch==2.4.0", - "transformers>=4.30.0,<5.0", - "evaluate>=0.4.0,<1.0", - "datasets>=2.0.0, <3.0", - "scikit-learn>=1.3.1, <2.0", + "flwr[simulation]==1.11.0", + "flwr-datasets>=0.3.0", + "torch==2.4.0", + "transformers>=4.30.0,<5.0", + "evaluate>=0.4.0,<1.0", + "datasets>=2.0.0, <3.0", + "scikit-learn>=1.3.1, <2.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-mlx/pyproject.toml b/examples/quickstart-mlx/pyproject.toml index 6635c25c761a..459cac86f5d6 100644 --- a/examples/quickstart-mlx/pyproject.toml +++ b/examples/quickstart-mlx/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Learning with MLX and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "mlx==0.16.0", - "numpy==1.26.4", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "mlx==0.16.0", + "numpy==1.26.4", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-monai/pyproject.toml b/examples/quickstart-monai/pyproject.toml index eb2b03e0c28e..daa92fc0387d 100644 --- a/examples/quickstart-monai/pyproject.toml +++ b/examples/quickstart-monai/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Learning with MONAI and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]==1.11.0", - "flwr-datasets[vision]>=0.3.0", - "monai==1.3.2", - "filelock==3.15.4", + "flwr[simulation]==1.11.0", + "flwr-datasets[vision]>=0.3.0", + "monai==1.3.2", + "filelock==3.15.4", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-pandas/pyproject.toml b/examples/quickstart-pandas/pyproject.toml index adbd821265a5..7df8ab86cb0c 100644 --- a/examples/quickstart-pandas/pyproject.toml +++ b/examples/quickstart-pandas/pyproject.toml @@ -8,14 +8,14 @@ version = "1.0.0" description = "Federated Learning with Pandas and Flower (Quickstart Example)" license = "Apache-2.0" authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, - { name = "Ragy Haddad", email = "ragy202@gmail.com" }, + { name = "The Flower Authors", email = "hello@flower.ai" }, + { name = "Ragy Haddad", email = "ragy202@gmail.com" }, ] dependencies = [ - "flwr[simulation]>=1.11.1", - "flwr-datasets[vision]>=0.3.0", - "numpy==1.24.4", - "pandas==2.0.0", + "flwr[simulation]>=1.11.1", + "flwr-datasets[vision]>=0.3.0", + "numpy==1.24.4", + "pandas==2.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-pytorch-lightning/pyproject.toml b/examples/quickstart-pytorch-lightning/pyproject.toml index f6ba70b0982f..c5537ac6fcbe 100644 --- a/examples/quickstart-pytorch-lightning/pyproject.toml +++ b/examples/quickstart-pytorch-lightning/pyproject.toml @@ -8,12 +8,12 @@ version = "1.0.0" description = "Federated Learning with PyTorch Lightning and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "pytorch-lightning<2.0.0; sys_platform == 'darwin'", - "pytorch-lightning==1.6.0; sys_platform != 'darwin'", - "torch==1.13.1", - "torchvision==0.14.1", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "pytorch-lightning<2.0.0; sys_platform == 'darwin'", + "pytorch-lightning==1.6.0; sys_platform != 'darwin'", + "torch==1.13.1", + "torchvision==0.14.1", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-pytorch/pyproject.toml b/examples/quickstart-pytorch/pyproject.toml index de2c6cd0a8a1..98f02626a429 100644 --- a/examples/quickstart-pytorch/pyproject.toml +++ b/examples/quickstart-pytorch/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Learning with PyTorch and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "torch==2.2.1", - "torchvision==0.17.1", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "torch==2.2.1", + "torchvision==0.17.1", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-sklearn-tabular/pyproject.toml b/examples/quickstart-sklearn-tabular/pyproject.toml index 76a9c7ed685a..2f2775e9fe90 100644 --- a/examples/quickstart-sklearn-tabular/pyproject.toml +++ b/examples/quickstart-sklearn-tabular/pyproject.toml @@ -8,9 +8,9 @@ version = "1.0.0" description = "Federated Learning with scikit-learn and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.10.0", - "flwr-datasets[vision]>=0.3.0", - "scikit-learn>=1.3.0", + "flwr[simulation]>=1.10.0", + "flwr-datasets[vision]>=0.3.0", + "scikit-learn>=1.3.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/quickstart-tensorflow/pyproject.toml b/examples/quickstart-tensorflow/pyproject.toml index cf944ed9c10c..52ab1b331311 100644 --- a/examples/quickstart-tensorflow/pyproject.toml +++ b/examples/quickstart-tensorflow/pyproject.toml @@ -8,10 +8,10 @@ version = "1.0.0" description = "Federated Learning with Tensorflow/Keras and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.10.0", - "flwr-datasets[vision]>=0.3.0", - "tensorflow-cpu>=2.9.1, != 2.11.1 ; platform_machine == \"x86_64\"", - "tensorflow-macos>=2.9.1, != 2.11.1 ; sys_platform == \"darwin\" and platform_machine == \"arm64\"", + "flwr[simulation]>=1.10.0", + "flwr-datasets[vision]>=0.3.0", + "tensorflow-cpu>=2.9.1, != 2.11.1 ; platform_machine == \"x86_64\"", + "tensorflow-macos>=2.9.1, != 2.11.1 ; sys_platform == \"darwin\" and platform_machine == \"arm64\"", ] [tool.hatch.build.targets.wheel] packages = ["."] diff --git a/examples/sklearn-logreg-mnist/pyproject.toml b/examples/sklearn-logreg-mnist/pyproject.toml index be5b0f3dfa16..937f05e35eda 100644 --- a/examples/sklearn-logreg-mnist/pyproject.toml +++ b/examples/sklearn-logreg-mnist/pyproject.toml @@ -8,14 +8,14 @@ version = "1.0.0" license = "Apache-2.0" description = "Federated learning with scikit-learn and Flower" authors = [ - { name = "The Flower Authors", email = "hello@flower.ai" }, - { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in" }, + { name = "The Flower Authors", email = "hello@flower.ai" }, + { name = "Kaushik Amar Das", email = "kaushik.das@iiitg.ac.in" }, ] dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "numpy<2.0.0", - "scikit-learn~=1.2.2", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "numpy<2.0.0", + "scikit-learn~=1.2.2", ] [tool.hatch.build.targets.wheel] diff --git a/examples/tensorflow-privacy/pyproject.toml b/examples/tensorflow-privacy/pyproject.toml index 5877d81322fe..f129c643a383 100644 --- a/examples/tensorflow-privacy/pyproject.toml +++ b/examples/tensorflow-privacy/pyproject.toml @@ -7,12 +7,12 @@ name = "tensorflow-privacy-fl" version = "1.0.0" description = "Sample-level Differential Privacy with Tensorflow-Privacy in Flower" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets[vision]>=0.3.0", - "tensorflow-estimator~=2.4", - "tensorflow-probability~=0.22.0", - "tensorflow>=2.4.0,<=2.15.0", - "tensorflow-privacy == 0.9.0", + "flwr[simulation]>=1.11.0", + "flwr-datasets[vision]>=0.3.0", + "tensorflow-estimator~=2.4", + "tensorflow-probability~=0.22.0", + "tensorflow>=2.4.0,<=2.15.0", + "tensorflow-privacy == 0.9.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/vertical-fl/pyproject.toml b/examples/vertical-fl/pyproject.toml index 8121942c96c2..d7adfc8d7156 100644 --- a/examples/vertical-fl/pyproject.toml +++ b/examples/vertical-fl/pyproject.toml @@ -8,12 +8,12 @@ version = "1.0.0" description = "PyTorch Vertical FL with Flower" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.0", - "flwr-datasets>=0.3.0", - "numpy==1.24.4", - "pandas==2.0.3", - "scikit-learn==1.3.2", - "torch==2.1.0", + "flwr[simulation]>=1.11.0", + "flwr-datasets>=0.3.0", + "numpy==1.24.4", + "pandas==2.0.3", + "scikit-learn==1.3.2", + "torch==2.1.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/xgboost-comprehensive/pyproject.toml b/examples/xgboost-comprehensive/pyproject.toml index 0f3d4815d073..797aa0df2218 100644 --- a/examples/xgboost-comprehensive/pyproject.toml +++ b/examples/xgboost-comprehensive/pyproject.toml @@ -8,9 +8,9 @@ version = "1.0.0" description = "Federated Learning with XGBoost and Flower (Comprehensive Example)" license = "Apache-2.0" dependencies = [ - "flwr[simulation]>=1.11.1", - "flwr-datasets>=0.3.0", - "xgboost>=2.0.0", + "flwr[simulation]>=1.11.1", + "flwr-datasets>=0.3.0", + "xgboost>=2.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/examples/xgboost-quickstart/pyproject.toml b/examples/xgboost-quickstart/pyproject.toml index 72c5dfff6056..3bfedb6b1d58 100644 --- a/examples/xgboost-quickstart/pyproject.toml +++ b/examples/xgboost-quickstart/pyproject.toml @@ -8,9 +8,9 @@ version = "1.0.0" description = "Federated Learning with XGBoost and Flower (Quickstart Example)" license = "Apache-2.0" dependencies = [ - "flwr-nightly[simulation]==1.11.0.dev20240826", - "flwr-datasets>=0.3.0", - "xgboost>=2.0.0", + "flwr-nightly[simulation]==1.11.0.dev20240826", + "flwr-datasets>=0.3.0", + "xgboost>=2.0.0", ] [tool.hatch.build.targets.wheel] diff --git a/pyproject.toml b/pyproject.toml index 56313b650b2c..11da893bec75 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,35 +13,35 @@ homepage = "https://flower.ai" repository = "https://github.com/adap/flower" documentation = "https://flower.ai" keywords = [ - "flower", - "fl", - "federated learning", - "federated analytics", - "federated evaluation", - "machine learning", + "flower", + "fl", + "federated learning", + "federated analytics", + "federated evaluation", + "machine learning", ] classifiers = [ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: Apache Software License", - "Operating System :: MacOS :: MacOS X", - "Operating System :: POSIX :: Linux", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: Implementation :: CPython", - "Topic :: Scientific/Engineering", - "Topic :: Scientific/Engineering :: Artificial Intelligence", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Software Development", - "Topic :: Software Development :: Libraries", - "Topic :: Software Development :: Libraries :: Python Modules", - "Typing :: Typed", + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: Apache Software License", + "Operating System :: MacOS :: MacOS X", + "Operating System :: POSIX :: Linux", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: Implementation :: CPython", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Artificial Intelligence", + "Topic :: Scientific/Engineering :: Mathematics", + "Topic :: Software Development", + "Topic :: Software Development :: Libraries", + "Topic :: Software Development :: Libraries :: Python Modules", + "Typing :: Typed", ] packages = [{ include = "flwr", from = "src/py" }] exclude = ["src/py/**/*_test.py"] @@ -137,10 +137,10 @@ docstrfmt = { git = "https://github.com/charlesbvll/docstrfmt.git", branch = "pa [tool.docstrfmt] extend_exclude = [ - "doc/source/conf.py", - "doc/source/tutorial-quickstart-huggingface.rst", - "doc/source/_templates/autosummary/*", - "doc/source/ref-api/*", + "doc/source/conf.py", + "doc/source/tutorial-quickstart-huggingface.rst", + "doc/source/_templates/autosummary/*", + "doc/source/ref-api/*", ] [tool.isort] @@ -196,27 +196,27 @@ select = ["D", "E", "F", "W", "B", "ISC", "C4", "UP"] fixable = ["D", "E", "F", "W", "B", "ISC", "C4", "UP"] ignore = ["B024", "B027", "D205", "D209"] exclude = [ - ".bzr", - ".direnv", - ".eggs", - ".git", - ".hg", - ".mypy_cache", - ".nox", - ".pants.d", - ".pytype", - ".ruff_cache", - ".svn", - ".tox", - ".venv", - "__pypackages__", - "_build", - "buck-out", - "build", - "dist", - "node_modules", - "venv", - "proto", + ".bzr", + ".direnv", + ".eggs", + ".git", + ".hg", + ".mypy_cache", + ".nox", + ".pants.d", + ".pytype", + ".ruff_cache", + ".svn", + ".tox", + ".venv", + "__pypackages__", + "_build", + "buck-out", + "build", + "dist", + "node_modules", + "venv", + "proto", ] [tool.ruff.pydocstyle] diff --git a/taplo.toml b/taplo.toml index 7cacd9abb9c7..23531011a9f7 100644 --- a/taplo.toml +++ b/taplo.toml @@ -15,7 +15,7 @@ compact_entries = false column_width = 80 indent_tables = false indent_entries = false -indent_string = " " +indent_string = " " trailing_newline = true reorder_keys = false reorder_arrays = false