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")