From 6e2e8060835695b6d2ab983481599659c4c5d645 Mon Sep 17 00:00:00 2001 From: "Daniel J. Beutel" Date: Sun, 11 Feb 2024 16:05:35 +0100 Subject: [PATCH 1/5] Move driver/fleet/state into superlink subpackage --- src/py/flwr/server/superlink/__init__.py | 15 +++++++++++++++ .../server/{ => superlink}/driver/__init__.py | 0 .../{ => superlink}/driver/driver_servicer.py | 0 .../driver/driver_servicer_test.py | 0 .../flwr/server/{ => superlink}/fleet/__init__.py | 0 .../{ => superlink}/fleet/grpc_bidi/__init__.py | 0 .../fleet/grpc_bidi/flower_service_servicer.py | 0 .../grpc_bidi/flower_service_servicer_test.py | 0 .../fleet/grpc_bidi/grpc_bridge.py | 0 .../fleet/grpc_bidi/grpc_bridge_test.py | 0 .../fleet/grpc_bidi/grpc_client_proxy.py | 0 .../fleet/grpc_bidi/grpc_client_proxy_test.py | 0 .../fleet/grpc_bidi/grpc_server.py | 0 .../fleet/grpc_bidi/grpc_server_test.py | 0 .../{ => superlink}/fleet/grpc_rere/__init__.py | 0 .../fleet/grpc_rere/fleet_servicer.py | 0 .../fleet/message_handler/__init__.py | 0 .../fleet/message_handler/message_handler.py | 0 .../fleet/message_handler/message_handler_test.py | 0 .../{ => superlink}/fleet/rest_rere/__init__.py | 0 .../{ => superlink}/fleet/rest_rere/rest_api.py | 0 .../flwr/server/{ => superlink}/state/__init__.py | 0 .../{ => superlink}/state/in_memory_state.py | 0 .../server/{ => superlink}/state/sqlite_state.py | 0 .../{ => superlink}/state/sqlite_state_test.py | 0 src/py/flwr/server/{ => superlink}/state/state.py | 0 .../server/{ => superlink}/state/state_factory.py | 0 .../server/{ => superlink}/state/state_test.py | 0 28 files changed, 15 insertions(+) create mode 100644 src/py/flwr/server/superlink/__init__.py rename src/py/flwr/server/{ => superlink}/driver/__init__.py (100%) rename src/py/flwr/server/{ => superlink}/driver/driver_servicer.py (100%) rename src/py/flwr/server/{ => superlink}/driver/driver_servicer_test.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/__init__.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/grpc_bidi/__init__.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/grpc_bidi/flower_service_servicer.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/grpc_bidi/flower_service_servicer_test.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/grpc_bidi/grpc_bridge.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/grpc_bidi/grpc_bridge_test.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/grpc_bidi/grpc_client_proxy.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/grpc_bidi/grpc_client_proxy_test.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/grpc_bidi/grpc_server.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/grpc_bidi/grpc_server_test.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/grpc_rere/__init__.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/grpc_rere/fleet_servicer.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/message_handler/__init__.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/message_handler/message_handler.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/message_handler/message_handler_test.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/rest_rere/__init__.py (100%) rename src/py/flwr/server/{ => superlink}/fleet/rest_rere/rest_api.py (100%) rename src/py/flwr/server/{ => superlink}/state/__init__.py (100%) rename src/py/flwr/server/{ => superlink}/state/in_memory_state.py (100%) rename src/py/flwr/server/{ => superlink}/state/sqlite_state.py (100%) rename src/py/flwr/server/{ => superlink}/state/sqlite_state_test.py (100%) rename src/py/flwr/server/{ => superlink}/state/state.py (100%) rename src/py/flwr/server/{ => superlink}/state/state_factory.py (100%) rename src/py/flwr/server/{ => superlink}/state/state_test.py (100%) diff --git a/src/py/flwr/server/superlink/__init__.py b/src/py/flwr/server/superlink/__init__.py new file mode 100644 index 000000000000..fd9b32274ba1 --- /dev/null +++ b/src/py/flwr/server/superlink/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2020 Flower Labs GmbH. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""Flower SuperLink.""" diff --git a/src/py/flwr/server/driver/__init__.py b/src/py/flwr/server/superlink/driver/__init__.py similarity index 100% rename from src/py/flwr/server/driver/__init__.py rename to src/py/flwr/server/superlink/driver/__init__.py diff --git a/src/py/flwr/server/driver/driver_servicer.py b/src/py/flwr/server/superlink/driver/driver_servicer.py similarity index 100% rename from src/py/flwr/server/driver/driver_servicer.py rename to src/py/flwr/server/superlink/driver/driver_servicer.py diff --git a/src/py/flwr/server/driver/driver_servicer_test.py b/src/py/flwr/server/superlink/driver/driver_servicer_test.py similarity index 100% rename from src/py/flwr/server/driver/driver_servicer_test.py rename to src/py/flwr/server/superlink/driver/driver_servicer_test.py diff --git a/src/py/flwr/server/fleet/__init__.py b/src/py/flwr/server/superlink/fleet/__init__.py similarity index 100% rename from src/py/flwr/server/fleet/__init__.py rename to src/py/flwr/server/superlink/fleet/__init__.py diff --git a/src/py/flwr/server/fleet/grpc_bidi/__init__.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py similarity index 100% rename from src/py/flwr/server/fleet/grpc_bidi/__init__.py rename to src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py diff --git a/src/py/flwr/server/fleet/grpc_bidi/flower_service_servicer.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py similarity index 100% rename from src/py/flwr/server/fleet/grpc_bidi/flower_service_servicer.py rename to src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py diff --git a/src/py/flwr/server/fleet/grpc_bidi/flower_service_servicer_test.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer_test.py similarity index 100% rename from src/py/flwr/server/fleet/grpc_bidi/flower_service_servicer_test.py rename to src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer_test.py diff --git a/src/py/flwr/server/fleet/grpc_bidi/grpc_bridge.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py similarity index 100% rename from src/py/flwr/server/fleet/grpc_bidi/grpc_bridge.py rename to src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py diff --git a/src/py/flwr/server/fleet/grpc_bidi/grpc_bridge_test.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge_test.py similarity index 100% rename from src/py/flwr/server/fleet/grpc_bidi/grpc_bridge_test.py rename to src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge_test.py diff --git a/src/py/flwr/server/fleet/grpc_bidi/grpc_client_proxy.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py similarity index 100% rename from src/py/flwr/server/fleet/grpc_bidi/grpc_client_proxy.py rename to src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py diff --git a/src/py/flwr/server/fleet/grpc_bidi/grpc_client_proxy_test.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy_test.py similarity index 100% rename from src/py/flwr/server/fleet/grpc_bidi/grpc_client_proxy_test.py rename to src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy_test.py diff --git a/src/py/flwr/server/fleet/grpc_bidi/grpc_server.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py similarity index 100% rename from src/py/flwr/server/fleet/grpc_bidi/grpc_server.py rename to src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py diff --git a/src/py/flwr/server/fleet/grpc_bidi/grpc_server_test.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server_test.py similarity index 100% rename from src/py/flwr/server/fleet/grpc_bidi/grpc_server_test.py rename to src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server_test.py diff --git a/src/py/flwr/server/fleet/grpc_rere/__init__.py b/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py similarity index 100% rename from src/py/flwr/server/fleet/grpc_rere/__init__.py rename to src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py diff --git a/src/py/flwr/server/fleet/grpc_rere/fleet_servicer.py b/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py similarity index 100% rename from src/py/flwr/server/fleet/grpc_rere/fleet_servicer.py rename to src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py diff --git a/src/py/flwr/server/fleet/message_handler/__init__.py b/src/py/flwr/server/superlink/fleet/message_handler/__init__.py similarity index 100% rename from src/py/flwr/server/fleet/message_handler/__init__.py rename to src/py/flwr/server/superlink/fleet/message_handler/__init__.py diff --git a/src/py/flwr/server/fleet/message_handler/message_handler.py b/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py similarity index 100% rename from src/py/flwr/server/fleet/message_handler/message_handler.py rename to src/py/flwr/server/superlink/fleet/message_handler/message_handler.py diff --git a/src/py/flwr/server/fleet/message_handler/message_handler_test.py b/src/py/flwr/server/superlink/fleet/message_handler/message_handler_test.py similarity index 100% rename from src/py/flwr/server/fleet/message_handler/message_handler_test.py rename to src/py/flwr/server/superlink/fleet/message_handler/message_handler_test.py diff --git a/src/py/flwr/server/fleet/rest_rere/__init__.py b/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py similarity index 100% rename from src/py/flwr/server/fleet/rest_rere/__init__.py rename to src/py/flwr/server/superlink/fleet/rest_rere/__init__.py diff --git a/src/py/flwr/server/fleet/rest_rere/rest_api.py b/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py similarity index 100% rename from src/py/flwr/server/fleet/rest_rere/rest_api.py rename to src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py diff --git a/src/py/flwr/server/state/__init__.py b/src/py/flwr/server/superlink/state/__init__.py similarity index 100% rename from src/py/flwr/server/state/__init__.py rename to src/py/flwr/server/superlink/state/__init__.py diff --git a/src/py/flwr/server/state/in_memory_state.py b/src/py/flwr/server/superlink/state/in_memory_state.py similarity index 100% rename from src/py/flwr/server/state/in_memory_state.py rename to src/py/flwr/server/superlink/state/in_memory_state.py diff --git a/src/py/flwr/server/state/sqlite_state.py b/src/py/flwr/server/superlink/state/sqlite_state.py similarity index 100% rename from src/py/flwr/server/state/sqlite_state.py rename to src/py/flwr/server/superlink/state/sqlite_state.py diff --git a/src/py/flwr/server/state/sqlite_state_test.py b/src/py/flwr/server/superlink/state/sqlite_state_test.py similarity index 100% rename from src/py/flwr/server/state/sqlite_state_test.py rename to src/py/flwr/server/superlink/state/sqlite_state_test.py diff --git a/src/py/flwr/server/state/state.py b/src/py/flwr/server/superlink/state/state.py similarity index 100% rename from src/py/flwr/server/state/state.py rename to src/py/flwr/server/superlink/state/state.py diff --git a/src/py/flwr/server/state/state_factory.py b/src/py/flwr/server/superlink/state/state_factory.py similarity index 100% rename from src/py/flwr/server/state/state_factory.py rename to src/py/flwr/server/superlink/state/state_factory.py diff --git a/src/py/flwr/server/state/state_test.py b/src/py/flwr/server/superlink/state/state_test.py similarity index 100% rename from src/py/flwr/server/state/state_test.py rename to src/py/flwr/server/superlink/state/state_test.py From 3087351fc4af83a82518d348f16af528365c6268 Mon Sep 17 00:00:00 2001 From: "Daniel J. Beutel" Date: Sun, 11 Feb 2024 16:08:29 +0100 Subject: [PATCH 2/5] Update copyright --- src/py/flwr/server/superlink/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/py/flwr/server/superlink/__init__.py b/src/py/flwr/server/superlink/__init__.py index fd9b32274ba1..94102100de26 100644 --- a/src/py/flwr/server/superlink/__init__.py +++ b/src/py/flwr/server/superlink/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2020 Flower Labs GmbH. All Rights Reserved. +# Copyright 2024 Flower Labs GmbH. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From 189f59b9533ca7fa287e62beba1e7d64cb21a2ad Mon Sep 17 00:00:00 2001 From: "Daniel J. Beutel" Date: Sun, 11 Feb 2024 16:24:34 +0100 Subject: [PATCH 3/5] Fix imports and tests --- src/py/flwr/client/grpc_client/connection_test.py | 6 ++++-- src/py/flwr/server/app.py | 14 +++++++------- src/py/flwr/server/client_manager_test.py | 2 +- src/py/flwr/server/criterion_test.py | 2 +- src/py/flwr/server/strategy/fedadagrad_test.py | 2 +- src/py/flwr/server/strategy/fedmedian_test.py | 2 +- src/py/flwr/server/strategy/krum_test.py | 2 +- src/py/flwr/server/strategy/multikrum_test.py | 2 +- .../server/superlink/driver/driver_servicer.py | 2 +- .../superlink/driver/driver_servicer_test.py | 2 +- .../fleet/grpc_bidi/flower_service_servicer.py | 8 ++++++-- .../grpc_bidi/flower_service_servicer_test.py | 4 ++-- .../superlink/fleet/grpc_bidi/grpc_bridge_test.py | 2 +- .../superlink/fleet/grpc_bidi/grpc_client_proxy.py | 6 +++++- .../fleet/grpc_bidi/grpc_client_proxy_test.py | 4 ++-- .../superlink/fleet/grpc_bidi/grpc_server.py | 8 +++++--- .../superlink/fleet/grpc_bidi/grpc_server_test.py | 4 ++-- .../superlink/fleet/grpc_rere/fleet_servicer.py | 4 ++-- .../fleet/message_handler/message_handler.py | 2 +- .../server/superlink/fleet/rest_rere/rest_api.py | 4 ++-- .../flwr/server/superlink/state/in_memory_state.py | 2 +- .../server/superlink/state/sqlite_state_test.py | 4 ++-- src/py/flwr/server/superlink/state/state_test.py | 2 +- 23 files changed, 51 insertions(+), 39 deletions(-) diff --git a/src/py/flwr/client/grpc_client/connection_test.py b/src/py/flwr/client/grpc_client/connection_test.py index 8631c4a9b12b..54fd41d79325 100644 --- a/src/py/flwr/client/grpc_client/connection_test.py +++ b/src/py/flwr/client/grpc_client/connection_test.py @@ -34,7 +34,7 @@ ServerMessage, ) from flwr.server.client_manager import SimpleClientManager -from flwr.server.fleet.grpc_bidi.grpc_server import start_grpc_server +from flwr.server.superlink.fleet.grpc_bidi.grpc_server import start_grpc_server from .connection import grpc_connection @@ -100,7 +100,9 @@ def mock_join( # type: ignore # pylint: disable=invalid-name @patch( - "flwr.server.fleet.grpc_bidi.flower_service_servicer.FlowerServiceServicer.Join", + # pylint: disable=line-too-long + "flwr.server.superlink.fleet.grpc_bidi.flower_service_servicer.FlowerServiceServicer.Join", # noqa: E501 + # pylint: enable=line-too-long mock_join, ) def test_integration_connection() -> None: diff --git a/src/py/flwr/server/app.py b/src/py/flwr/server/app.py index 3f58dceac894..4c486c27439f 100644 --- a/src/py/flwr/server/app.py +++ b/src/py/flwr/server/app.py @@ -44,16 +44,16 @@ add_FleetServicer_to_server, ) from flwr.server.client_manager import ClientManager, SimpleClientManager -from flwr.server.driver.driver_servicer import DriverServicer -from flwr.server.fleet.grpc_bidi.grpc_server import ( - generic_create_grpc_server, - start_grpc_server, -) -from flwr.server.fleet.grpc_rere.fleet_servicer import FleetServicer from flwr.server.history import History from flwr.server.server import Server -from flwr.server.state import StateFactory from flwr.server.strategy import FedAvg, Strategy +from flwr.server.superlink.driver.driver_servicer import DriverServicer +from flwr.server.superlink.fleet.grpc_bidi.grpc_server import ( + generic_create_grpc_server, + start_grpc_server, +) +from flwr.server.superlink.fleet.grpc_rere.fleet_servicer import FleetServicer +from flwr.server.superlink.state import StateFactory ADDRESS_DRIVER_API = "0.0.0.0:9091" ADDRESS_FLEET_API_GRPC_RERE = "0.0.0.0:9092" diff --git a/src/py/flwr/server/client_manager_test.py b/src/py/flwr/server/client_manager_test.py index 8145b9b2ab7f..5820881b6aad 100644 --- a/src/py/flwr/server/client_manager_test.py +++ b/src/py/flwr/server/client_manager_test.py @@ -18,7 +18,7 @@ from unittest.mock import MagicMock from flwr.server.client_manager import SimpleClientManager -from flwr.server.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy +from flwr.server.superlink.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy def test_simple_client_manager_register() -> None: diff --git a/src/py/flwr/server/criterion_test.py b/src/py/flwr/server/criterion_test.py index a7e5b62b5977..f678825f064e 100644 --- a/src/py/flwr/server/criterion_test.py +++ b/src/py/flwr/server/criterion_test.py @@ -20,7 +20,7 @@ from flwr.server.client_manager import SimpleClientManager from flwr.server.client_proxy import ClientProxy from flwr.server.criterion import Criterion -from flwr.server.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy +from flwr.server.superlink.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy def test_criterion_applied() -> None: diff --git a/src/py/flwr/server/strategy/fedadagrad_test.py b/src/py/flwr/server/strategy/fedadagrad_test.py index b3380a5be2f9..0c966442ecaf 100644 --- a/src/py/flwr/server/strategy/fedadagrad_test.py +++ b/src/py/flwr/server/strategy/fedadagrad_test.py @@ -30,7 +30,7 @@ parameters_to_ndarrays, ) from flwr.server.client_proxy import ClientProxy -from flwr.server.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy +from flwr.server.superlink.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy from .fedadagrad import FedAdagrad diff --git a/src/py/flwr/server/strategy/fedmedian_test.py b/src/py/flwr/server/strategy/fedmedian_test.py index 180503df6c80..57cf08d8c01d 100644 --- a/src/py/flwr/server/strategy/fedmedian_test.py +++ b/src/py/flwr/server/strategy/fedmedian_test.py @@ -30,7 +30,7 @@ parameters_to_ndarrays, ) from flwr.server.client_proxy import ClientProxy -from flwr.server.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy +from flwr.server.superlink.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy from .fedmedian import FedMedian diff --git a/src/py/flwr/server/strategy/krum_test.py b/src/py/flwr/server/strategy/krum_test.py index 81e59230739a..653dc9a8475d 100644 --- a/src/py/flwr/server/strategy/krum_test.py +++ b/src/py/flwr/server/strategy/krum_test.py @@ -30,7 +30,7 @@ parameters_to_ndarrays, ) from flwr.server.client_proxy import ClientProxy -from flwr.server.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy +from flwr.server.superlink.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy from .krum import Krum diff --git a/src/py/flwr/server/strategy/multikrum_test.py b/src/py/flwr/server/strategy/multikrum_test.py index 1469db104252..f874dc2f9800 100644 --- a/src/py/flwr/server/strategy/multikrum_test.py +++ b/src/py/flwr/server/strategy/multikrum_test.py @@ -30,7 +30,7 @@ parameters_to_ndarrays, ) from flwr.server.client_proxy import ClientProxy -from flwr.server.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy +from flwr.server.superlink.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy from .krum import Krum diff --git a/src/py/flwr/server/superlink/driver/driver_servicer.py b/src/py/flwr/server/superlink/driver/driver_servicer.py index 275cc8ac6a03..ca2cd69b2f20 100644 --- a/src/py/flwr/server/superlink/driver/driver_servicer.py +++ b/src/py/flwr/server/superlink/driver/driver_servicer.py @@ -35,7 +35,7 @@ ) from flwr.proto.node_pb2 import Node # pylint: disable=E0611 from flwr.proto.task_pb2 import TaskRes # pylint: disable=E0611 -from flwr.server.state import State, StateFactory +from flwr.server.superlink.state import State, StateFactory from flwr.server.utils.validator import validate_task_ins_or_res diff --git a/src/py/flwr/server/superlink/driver/driver_servicer_test.py b/src/py/flwr/server/superlink/driver/driver_servicer_test.py index c432c026a632..99f7cc007a89 100644 --- a/src/py/flwr/server/superlink/driver/driver_servicer_test.py +++ b/src/py/flwr/server/superlink/driver/driver_servicer_test.py @@ -15,7 +15,7 @@ """DriverServicer tests.""" -from flwr.server.driver.driver_servicer import _raise_if +from flwr.server.superlink.driver.driver_servicer import _raise_if # pylint: disable=broad-except diff --git a/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py index 1397a026a33c..6f94ea844e38 100644 --- a/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +++ b/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py @@ -30,8 +30,12 @@ ServerMessage, ) from flwr.server.client_manager import ClientManager -from flwr.server.fleet.grpc_bidi.grpc_bridge import GrpcBridge, InsWrapper, ResWrapper -from flwr.server.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy +from flwr.server.superlink.fleet.grpc_bidi.grpc_bridge import ( + GrpcBridge, + InsWrapper, + ResWrapper, +) +from flwr.server.superlink.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy def default_bridge_factory() -> GrpcBridge: diff --git a/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer_test.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer_test.py index 37eef167879c..bd93554a6a32 100644 --- a/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer_test.py +++ b/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer_test.py @@ -23,11 +23,11 @@ ClientMessage, ServerMessage, ) -from flwr.server.fleet.grpc_bidi.flower_service_servicer import ( +from flwr.server.superlink.fleet.grpc_bidi.flower_service_servicer import ( FlowerServiceServicer, register_client_proxy, ) -from flwr.server.fleet.grpc_bidi.grpc_bridge import InsWrapper, ResWrapper +from flwr.server.superlink.fleet.grpc_bidi.grpc_bridge import InsWrapper, ResWrapper CLIENT_MESSAGE = ClientMessage() SERVER_MESSAGE = ServerMessage() diff --git a/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge_test.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge_test.py index 6527c45d7d6c..f7c236acd7a1 100644 --- a/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge_test.py +++ b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge_test.py @@ -23,7 +23,7 @@ ClientMessage, ServerMessage, ) -from flwr.server.fleet.grpc_bidi.grpc_bridge import ( +from flwr.server.superlink.fleet.grpc_bidi.grpc_bridge import ( GrpcBridge, GrpcBridgeClosed, InsWrapper, diff --git a/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py index 46185896561e..026e8dfe51ef 100644 --- a/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +++ b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py @@ -24,7 +24,11 @@ ServerMessage, ) from flwr.server.client_proxy import ClientProxy -from flwr.server.fleet.grpc_bidi.grpc_bridge import GrpcBridge, InsWrapper, ResWrapper +from flwr.server.superlink.fleet.grpc_bidi.grpc_bridge import ( + GrpcBridge, + InsWrapper, + ResWrapper, +) class GrpcClientProxy(ClientProxy): diff --git a/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy_test.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy_test.py index 1a417ae433d5..360570eb663d 100644 --- a/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy_test.py +++ b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy_test.py @@ -27,8 +27,8 @@ Parameters, Scalar, ) -from flwr.server.fleet.grpc_bidi.grpc_bridge import ResWrapper -from flwr.server.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy +from flwr.server.superlink.fleet.grpc_bidi.grpc_bridge import ResWrapper +from flwr.server.superlink.fleet.grpc_bidi.grpc_client_proxy import GrpcClientProxy MESSAGE_PARAMETERS = Parameters(tensors=[], tensor_type="np") MESSAGE_FIT_RES = ClientMessage( diff --git a/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py index e05df88dcd12..82f049844bd6 100644 --- a/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +++ b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py @@ -28,9 +28,11 @@ add_FlowerServiceServicer_to_server, ) from flwr.server.client_manager import ClientManager -from flwr.server.driver.driver_servicer import DriverServicer -from flwr.server.fleet.grpc_bidi.flower_service_servicer import FlowerServiceServicer -from flwr.server.fleet.grpc_rere.fleet_servicer import FleetServicer +from flwr.server.superlink.driver.driver_servicer import DriverServicer +from flwr.server.superlink.fleet.grpc_bidi.flower_service_servicer import ( + FlowerServiceServicer, +) +from flwr.server.superlink.fleet.grpc_rere.fleet_servicer import FleetServicer INVALID_CERTIFICATES_ERR_MSG = """ When setting any of root_certificate, certificate, or private_key, diff --git a/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server_test.py b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server_test.py index 4cd093d6ab0f..8afa37515950 100644 --- a/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server_test.py +++ b/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server_test.py @@ -23,12 +23,12 @@ from typing import Tuple, cast from flwr.server.client_manager import SimpleClientManager -from flwr.server.fleet.grpc_bidi.grpc_server import ( +from flwr.server.superlink.fleet.grpc_bidi.grpc_server import ( start_grpc_server, valid_certificates, ) -root_dir = dirname(abspath(join(__file__, "../../../../../.."))) +root_dir = dirname(abspath(join(__file__, "../../../../../../.."))) def load_certificates() -> Tuple[str, str, str]: diff --git a/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py b/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py index 25707b6247fa..278474477379 100644 --- a/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +++ b/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py @@ -31,8 +31,8 @@ PushTaskResRequest, PushTaskResResponse, ) -from flwr.server.fleet.message_handler import message_handler -from flwr.server.state import StateFactory +from flwr.server.superlink.fleet.message_handler import message_handler +from flwr.server.superlink.state import StateFactory class FleetServicer(fleet_pb2_grpc.FleetServicer): diff --git a/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py b/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py index 8d451c896ed9..5fe815180823 100644 --- a/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +++ b/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py @@ -31,7 +31,7 @@ ) from flwr.proto.node_pb2 import Node # pylint: disable=E0611 from flwr.proto.task_pb2 import TaskIns, TaskRes # pylint: disable=E0611 -from flwr.server.state import State +from flwr.server.superlink.state import State def create_node( diff --git a/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py b/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py index b815558cb099..b022b34c68c8 100644 --- a/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +++ b/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py @@ -24,8 +24,8 @@ PullTaskInsRequest, PushTaskResRequest, ) -from flwr.server.fleet.message_handler import message_handler -from flwr.server.state import State +from flwr.server.superlink.fleet.message_handler import message_handler +from flwr.server.superlink.state import State try: from starlette.applications import Starlette diff --git a/src/py/flwr/server/superlink/state/in_memory_state.py b/src/py/flwr/server/superlink/state/in_memory_state.py index f21845fcb909..ecb39f18300a 100644 --- a/src/py/flwr/server/superlink/state/in_memory_state.py +++ b/src/py/flwr/server/superlink/state/in_memory_state.py @@ -23,7 +23,7 @@ from flwr.common import log, now from flwr.proto.task_pb2 import TaskIns, TaskRes # pylint: disable=E0611 -from flwr.server.state.state import State +from flwr.server.superlink.state.state import State from flwr.server.utils import validate_task_ins_or_res diff --git a/src/py/flwr/server/superlink/state/sqlite_state_test.py b/src/py/flwr/server/superlink/state/sqlite_state_test.py index f9d88ee07853..9eef71e396e3 100644 --- a/src/py/flwr/server/superlink/state/sqlite_state_test.py +++ b/src/py/flwr/server/superlink/state/sqlite_state_test.py @@ -17,8 +17,8 @@ import unittest -from flwr.server.state.sqlite_state import task_ins_to_dict -from flwr.server.state.state_test import create_task_ins +from flwr.server.superlink.state.sqlite_state import task_ins_to_dict +from flwr.server.superlink.state.state_test import create_task_ins class SqliteStateTest(unittest.TestCase): diff --git a/src/py/flwr/server/superlink/state/state_test.py b/src/py/flwr/server/superlink/state/state_test.py index 95d764792ff3..d0470a7ce7f7 100644 --- a/src/py/flwr/server/superlink/state/state_test.py +++ b/src/py/flwr/server/superlink/state/state_test.py @@ -25,7 +25,7 @@ from flwr.proto.node_pb2 import Node # pylint: disable=E0611 from flwr.proto.recordset_pb2 import RecordSet # pylint: disable=E0611 from flwr.proto.task_pb2 import Task, TaskIns, TaskRes # pylint: disable=E0611 -from flwr.server.state import InMemoryState, SqliteState, State +from flwr.server.superlink.state import InMemoryState, SqliteState, State class StateTest(unittest.TestCase): From 93299fb7bee0c53a82b886ad4d6c7d861202d02f Mon Sep 17 00:00:00 2001 From: "Daniel J. Beutel" Date: Sun, 11 Feb 2024 17:01:48 +0100 Subject: [PATCH 4/5] Fix REST stack --- src/py/flwr/server/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/py/flwr/server/app.py b/src/py/flwr/server/app.py index 4c486c27439f..d908a131fb76 100644 --- a/src/py/flwr/server/app.py +++ b/src/py/flwr/server/app.py @@ -584,7 +584,7 @@ def _run_fleet_api_rest( raise ValueError(validation_exceptions) uvicorn.run( - app="flwr.server.fleet.rest_rere.rest_api:app", + app="flwr.server.superlink.fleet.rest_rere.rest_api:app", port=port, host=host, reload=False, From 70056873dfc59d024d876c1d83d471a872145000 Mon Sep 17 00:00:00 2001 From: "Daniel J. Beutel" Date: Sun, 11 Feb 2024 17:14:56 +0100 Subject: [PATCH 5/5] Fix REST stack --- src/py/flwr/driver/app.py | 2 +- src/py/flwr/server/app.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/py/flwr/driver/app.py b/src/py/flwr/driver/app.py index 2c0576bde8ff..ae47c58f4e9c 100644 --- a/src/py/flwr/driver/app.py +++ b/src/py/flwr/driver/app.py @@ -72,7 +72,7 @@ def start_driver( # pylint: disable=too-many-arguments, too-many-locals An implementation of the abstract base class `flwr.server.strategy.Strategy`. If no strategy is provided, then `start_server` will use `flwr.server.strategy.FedAvg`. - client_manager : Optional[flwr.server.DriverClientManager] (default: None) + client_manager : Optional[flwr.server.ClientManager] (default: None) An implementation of the class `flwr.server.ClientManager`. If no implementation is provided, then `start_driver` will use `flwr.server.SimpleClientManager`. diff --git a/src/py/flwr/server/app.py b/src/py/flwr/server/app.py index d908a131fb76..895a6be300f2 100644 --- a/src/py/flwr/server/app.py +++ b/src/py/flwr/server/app.py @@ -561,7 +561,7 @@ def _run_fleet_api_rest( try: import uvicorn - from flwr.server.fleet.rest_rere.rest_api import app as fast_api_app + from flwr.server.superlink.fleet.rest_rere.rest_api import app as fast_api_app except ModuleNotFoundError: sys.exit(MISSING_EXTRA_REST) if workers != 1: