ServerApp¶
- class ServerApp(server: Server | None = None, config: ServerConfig | None = None, strategy: Strategy | None = None, client_manager: ClientManager | None = None, server_fn: Callable[[Context], ServerAppComponents] | None = None)[source]¶
Bases:
object
Flower ServerApp.
Examples
Use the
ServerApp
with an existingStrategy
:def server_fn(context: Context): server_config = ServerConfig(num_rounds=3) strategy = FedAvg() return ServerAppComponents( strategy=strategy, server_config=server_config, ) app = ServerApp(server_fn=server_fn)
Use the
ServerApp
with a custom main function:app = ServerApp() @app.main() def main(grid: Grid, context: Context) -> None: print("ServerApp running")
Methods
lifespan
()Return a decorator that registers the lifespan fn with the server app.
main
()Return a decorator that registers the main fn with the server app.
- lifespan() Callable[[Callable[[Context], Iterator[None]]], Callable[[Context], Iterator[None]]] [source]¶
Return a decorator that registers the lifespan fn with the server app.
The decorated function should accept a Context object and use yield to define enter and exit behavior.
Examples
app = ServerApp() @app.lifespan() def lifespan(context: Context) -> None: # Perform initialization tasks before the app starts print("Initializing ServerApp") yield # ServerApp is running # Perform cleanup tasks after the app stops print("Cleaning up ServerApp")