Module - Les tâches sont définies dans les modules

class manta.module.Module(python_program: str | Path, image: str, method: str = 'any', fixed: bool = False, excepted_ids: list | None = None, specified_ids: list | None = None, maximum: int | float | None = None, alias: str | None = None)

Classe qui contient la description d’une tâche

Paramètres:
  • python_program (Union[str, Path]) – Code du programme Python

  • image (str) – Nom de l’image du conteneur dans lequel le programme sera exécuté

  • method (str) – Actuellement, seul "any" est disponible

  • fixed (bool) – Si True, les nœuds choisis doivent rester les mêmes tout au long de l’exécution d’un Swarm

  • excepted_ids (Optional[list]) – Liste des identifiants qui ne doivent pas être choisis pour ce module

  • specified_ids (Optional[list]) – Liste des identifiants qui doivent être choisis pour ce module

  • maximum (Optional[Union[int, float]]) – Nombre maximal d’identifiants pouvant être choisis pour ce module. S’il s’agit d’un float, ilest un pourcentage compris entre 0.0 et 1.0

kernel

Description d’une tâche

Type:

ModuleKernel

Exemples

>>> aggregator = Module(
...     python_program="modules/aggregator.py",
...     image="manta-demo:latest",
...     method="any",
...     fixed=False,
...     maximum=1,
...     alias="aggregator",
... )
__call__(module: List[Module | ModuleID] | Module | ModuleID | None = None, condition: Condition = Condition.FINISHED) ModuleID

Se transformer en ModuleID et mettre à jour son propre graphique

Paramètres:
  • module (Optional[Union[List[ModuleLike], Union[List[ModuleLike], ModuleLike]]]) – Un ou plusieurs modules à connecter entre eux

  • condition (Condition) – Condition qui indique au Manager quand la prochaine tâche doit être exécutée

Renvoie:

ID du module avec son graphique mis à jour en fonction des arguments

Type renvoyé:

ModuleID

Exemples

>>> aggregator = Module(
...     "modules/aggregator.py",
...     "manta-demo:latest",
... )
>>> worker = Module("modules/worker", "manta-demo:latest")
>>> m = aggregator(worker) # start worker and follow by aggregator
>>> isinstance(aggregator, Module) # True
>>> isinstance(worker, Module) # True
>>> isinstance(m, ModuleID) # True
class manta.module.ModuleID(graph: Graph | None = None)

Classe unique associée à un identifiant qui permet de connecter le module

Paramètres:

graph (Optional[Graph]) – Graphique du module

graph

Maintenir la connectivité avec les modules précédents

Type:

Graph

uuid

ID du module

Type:

UUID

__call__(module: List[Module | ModuleID] | Module | ModuleID | None = None, condition: Condition = Condition.FINISHED) ModuleID

Mettre à jour son propre graphe

Paramètres:
  • module (Optional[Union[List[ModuleLike], Union[List[ModuleLike], ModuleLike]]]) – Un ou plusieurs modules à connecter entre eux

  • condition (Condition) – Condition qui indique au Manager quand la prochaine tâche doit être exécutée

Renvoie:

Se retourner lui-même

Type renvoyé:

ModuleID

Remarques

Il a le même comportement que Module.__call__