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 :
objectApplication Flower ServerApp.
Exemples
Utilisez le
ServerAppavec un 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)
Utilisez le
ServerAppavec une fonction principale personnalisée:app = ServerApp() @app.main() def main(grid: Grid, context: Context) -> None: print("ServerApp running")
Methods
lifespan()Retournez un décorateur qui enregistre la fonction lifespan avec l'application serveur.
main()Retournez un décorateur qui enregistre la fonction main avec l'application serveur.
- lifespan() Callable[[Callable[[Context], Iterator[None]]], Callable[[Context], Iterator[None]]][source]¶
Retournez un décorateur qui enregistre la fonction lifespan avec l’application serveur.
La fonction décorée doit accepter un objet Context et utiliser yield pour définir le comportement d’entrée et de sortie.
Exemples
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")