[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "quickstart-pytorch"
version = "1.0.0"
description = "Federated Learning with PyTorch and Flower (Quickstart Example)"
license = "Apache-2.0"
dependencies = [
    "flwr[simulation]>=1.24.0",
    "flwr-datasets[vision]>=0.5.0",
    "torch==2.8.0",
    "torchvision==0.23.0",
]

[tool.hatch.build.targets.wheel]
packages = ["."]

[tool.flwr.app]
publisher = "flwrlabs"

[tool.flwr.app.components]
serverapp = "pytorchexample.server_app:app"
clientapp = "pytorchexample.client_app:app"

[tool.flwr.app.config]
num-server-rounds = 3
fraction-evaluate = 0.5
local-epochs = 1
learning-rate = 0.1
batch-size = 32


#######################################################################
# CONFIGURATION MIGRATION NOTICE:
#
# What was previously called "federation config" for SuperLink
# connections in pyproject.toml has been renamed and moved.
#
# These settings are now **SuperLink connection configuration**
# and are defined in the Flower configuration file.
#
# The entries below are commented out intentionally and are kept
# only as a migration reference.
#
# Docs: https://flower.ai/docs/framework/ref-flower-configuration.html
#######################################################################

# [tool.flwr.federations]
# default = "local-simulation"

# [tool.flwr.federations.local-simulation]
# 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-gpus = 0.2 # at most 5 ClientApp will run in a given GPU

# [tool.flwr.federations.supergrid-deployment]
# address = "supergrid.flower.ai"
# enable-account-auth = true