Grid¶
- class Grid[source]¶
Bases :
ABCClasse abstraite de grille pour envoyer/recevoir des messages.
Methods
create_message(content, message_type, ...[, ttl])Créez un nouveau message avec les paramètres spécifiés.
Obtenir les IDs de nœud.
pull_messages(message_ids)Tirez des messages en fonction des IDs de message.
push_messages(messages)Envoi de messages vers les IDs de nœuds spécifiés.
send_and_receive(messages, *[, timeout])Envoi de messages vers les IDs de nœuds spécifiés et récupération des réponses.
set_run(run)Définissez l'exécution à laquelle cet objet
Gridopère.Attributes
Informations d'exécution.
- abstract create_message(content: RecordDict, message_type: str, dst_node_id: int, group_id: str, ttl: float | None = None) Message[source]¶
Créez un nouveau message avec les paramètres spécifiés.
Cette méthode construit un nouveau
Messageavec le contenu et les métadonnées donnés. Lerun_idet lesrc_node_idseront définis automatiquement.- Paramètres:
content (RecordDict) – Le contenu du nouveau message. Cela contient des enregistrements à envoyer au nœud de destination.
message_type (str) – Le type de message, définissant l’action à exécuter sur le côté récepteur.
dst_node_id (int) – L’ID du nœud de destination vers lequel le message est envoyé.
group_id (str) – L’ID du groupe auquel ce message est associé. Dans certains contextes, cela est utilisé comme tour d’apprentissage fédéré.
ttl (Optional[float] (default: None)) – Durée de vie pour le trajet aller-retour de ce message, c’est-à-dire la durée entre l’envoi de ce message et la réception d’une réponse. Il spécifie en secondes la durée pendant laquelle le message et sa réponse potentielle sont considérés comme valides. Si non défini, la durée de vie par défaut (c’est-à-dire
flwr.app.DEFAULT_TTL) sera utilisée.
- Renvoie:
message – Une nouvelle instance Message avec le contenu et les métadonnées spécifiés.
- Type renvoyé:
- abstract pull_messages(message_ids: Iterable[str]) Iterable[Message][source]¶
Tirez des messages en fonction des IDs de message.
Cette méthode est utilisée pour collecter des messages à partir de SuperLink qui correspondent à un ensemble donné d’IDs de message.
- Paramètres:
message_ids (Iterable[str]) – Une itérable d’IDs de message pour lesquels les réponses doivent être récupérées.
- Renvoie:
messages – Une itération de messages reçus.
- Type renvoyé:
Iterable[Message]
- abstract push_messages(messages: Iterable[Message]) Iterable[str][source]¶
Envoi de messages vers les IDs de nœuds spécifiés.
Cette méthode prend un itérateur de messages et envoie chaque message au nœud spécifié dans
dst_node_id.- Paramètres:
messages (Iterable[Message]) – Une itération de messages à envoyer.
- Renvoie:
message_ids – Une itération d’IDs pour les messages qui ont été envoyés, qui peuvent être utilisés pour récupérer des réponses.
- Type renvoyé:
Iterable[str]
- abstract property run: Run¶
Informations d’exécution.
- abstract send_and_receive(messages: Iterable[Message], *, timeout: float | None = None) Iterable[Message][source]¶
Envoi de messages vers les IDs de nœuds spécifiés et récupération des réponses.
Cette méthode envoie une liste de messages vers leurs IDs de nœud de destination et attend ensuite les réponses. Elle continue à récupérer les réponses jusqu’à ce que soit reçu toutes les réponses ou que la durée de temps spécifiée soit dépassée.
- Paramètres:
messages (Iterable[Message]) – Une itération de messages à envoyer.
timeout (Optional[float] (default: None)) – La durée de temps en secondes. Si spécifié, la méthode attendra les réponses pendant cette durée. Si None, il n’y a pas de limite de temps et la méthode attendra jusqu’à ce que soient reçues toutes les réponses pour tous les messages.
- Renvoie:
replies – Une itération de messages de réponse reçus du SuperLink.
- Type renvoyé:
Iterable[Message]
Notes
Cette méthode utilise
push_messagespour envoyer les messages etpull_messagespour collecter les réponses. Sitimeoutest défini, la méthode peut ne pas retourner des réponses pour tous les messages envoyés. Un message reste valide jusqu’à son TTL, qui n’est pas affecté partimeout.