From 4bcb0500f33e9eb96c974dd1e320cd2c017a84c8 Mon Sep 17 00:00:00 2001 From: Heng Pan Date: Sun, 13 Oct 2024 19:41:05 +0100 Subject: [PATCH 1/2] feat(framework) Log a warning when both `--flwr-dir` and `--isolation` are set (#4333) --- src/py/flwr/client/supernode/app.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/py/flwr/client/supernode/app.py b/src/py/flwr/client/supernode/app.py index ea7613667baa..9e12c5844670 100644 --- a/src/py/flwr/client/supernode/app.py +++ b/src/py/flwr/client/supernode/app.py @@ -56,6 +56,14 @@ def run_supernode() -> None: _warn_deprecated_server_arg(args) + # Check if both `--flwr-dir` and `--isolation` were set + if args.flwr_dir is not None and args.isolation is not None: + log( + WARN, + "Both `--flwr-dir` and `--isolation` were specified. " + "Ignoring `--flwr-dir`.", + ) + root_certificates = _get_certificates(args) load_fn = get_load_client_app_fn( default_app_ref="", From c3cc7d9c66a7d0324ce686404bf2b1d800a26725 Mon Sep 17 00:00:00 2001 From: Javier Date: Sun, 13 Oct 2024 20:12:50 +0100 Subject: [PATCH 2/2] refactor(framework) Make argparse processing the first action of `SuperNode` and `SuperLink` (#4332) --- src/py/flwr/client/supernode/app.py | 11 +++++------ src/py/flwr/server/app.py | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/py/flwr/client/supernode/app.py b/src/py/flwr/client/supernode/app.py index 9e12c5844670..4ddfe5d40aa3 100644 --- a/src/py/flwr/client/supernode/app.py +++ b/src/py/flwr/client/supernode/app.py @@ -48,14 +48,13 @@ def run_supernode() -> None: """Run Flower SuperNode.""" + args = _parse_args_run_supernode().parse_args() + _warn_deprecated_server_arg(args) + log(INFO, "Starting Flower SuperNode") event(EventType.RUN_SUPERNODE_ENTER) - args = _parse_args_run_supernode().parse_args() - - _warn_deprecated_server_arg(args) - # Check if both `--flwr-dir` and `--isolation` were set if args.flwr_dir is not None and args.isolation is not None: log( @@ -186,12 +185,12 @@ def _parse_args_run_supernode() -> argparse.ArgumentParser: "--flwr-dir", default=None, help="""The path containing installed Flower Apps. - By default, this value is equal to: + The default directory is: - `$FLWR_HOME/` if `$FLWR_HOME` is defined - `$XDG_DATA_HOME/.flwr/` if `$XDG_DATA_HOME` is defined - `$HOME/.flwr/` in all other cases - """, + """, ) parser.add_argument( "--isolation", diff --git a/src/py/flwr/server/app.py b/src/py/flwr/server/app.py index 047fdf8700ac..58918dbb79ab 100644 --- a/src/py/flwr/server/app.py +++ b/src/py/flwr/server/app.py @@ -199,12 +199,12 @@ def start_server( # pylint: disable=too-many-arguments,too-many-locals # pylint: disable=too-many-branches, too-many-locals, too-many-statements def run_superlink() -> None: """Run Flower SuperLink (Driver API and Fleet API).""" + args = _parse_args_run_superlink().parse_args() + log(INFO, "Starting Flower SuperLink") event(EventType.RUN_SUPERLINK_ENTER) - args = _parse_args_run_superlink().parse_args() - # Parse IP address driver_address, _, _ = _format_address(args.driver_api_address)