sdk_entrepot_gpf.workflow.action#
ActionAbstract(workflow_context, definition_dict, parent_action=None)
#
Bases: ABC
Classe abstraite représentant une action d'un workflow.
Lancer une action revient à créer une entité dans l'API. Par exemple :
- faire un traitement revient à créer une Exécution de Traitement ;
- configurer un géoservice revient à créer une Configuration ;
- publier un géoservice revient à créer une Offre.
Attributes:
| Name | Type | Description |
|---|---|---|
__workflow_context |
str
|
nom du context du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
index
property
#
Renvoie l'index de l'action dans la liste des actions de cette étape. La première action a le numéro 0.
Returns:
| Type | Description |
|---|---|
int
|
index de l'action dans la liste des actions de cette étape |
get_filters(config_key, infos, tags)
staticmethod
#
Génère les critères de filtres (pour voir si cette action n'a pas déjà été lancée) d'après les critères d'unicité et les paramètres de création d'entité.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config_key
|
str
|
clé permettant de récupérer les critère d'unicité en config |
required |
infos
|
Dict[str, Any]
|
paramètres d'attributs pour la création de l'entité |
required |
tags
|
Dict[str, Any]
|
paramètres de tags pour la création de l'entité |
required |
Returns:
| Type | Description |
|---|---|
Tuple[Dict[str, str], Dict[str, str]]
|
critère de filtres sur les infos et les tags |
resolve(**kwargs)
#
Résout la définition de l'action.
L'action peut faire référence à des entités via des filtres, on veut donc résoudre ces éléments afin de soumettre une requête valide à l'API.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
kwargs
|
Any
|
paramètres supplémentaires. |
{}
|
Raises:
| Type | Description |
|---|---|
StepActionError
|
description |
run(datastore=None)
abstractmethod
#
Lancement de l'action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. Si None, le datastore sera récupéré dans la configuration. Defaults to None. |
None
|
AccessAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la création des accès.
Attributes:
| Name | Type | Description |
|---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__access |
Optional[Access]
|
représentation Python de l'accès créé |
ConfigurationAction(workflow_context, definition_dict, parent_action=None, behavior=None, compatibility_cartes=None)
#
Bases: ActionAbstract
Classe dédiée à la création des Configuration.
Attributes:
| Name | Type | Description |
|---|---|---|
__workflow_context |
str
|
nom du context du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__configuration |
Optional[Configuration]
|
représentation Python de la configuration créée |
find_configuration(datastore)
#
Fonction permettant de récupérer une Configuration ressemblant à celle qui devrait être créée en fonction des filtres définis dans la Config.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. |
required |
Returns: configuration retrouvée
CopyConfigurationAction(workflow_context, definition_dict, parent_action=None, behavior=None, compatibility_cartes=None)
#
Bases: ConfigurationAction
Classe dédiée à la copie des Configuration.
Attributes:
| Name | Type | Description |
|---|---|---|
__workflow_context |
str
|
nom du context du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__configuration |
Optional[Configuration]
|
représentation Python de la configuration créée |
DeleteAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la suppression des entités.
Attributes:
| Name | Type | Description |
|---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
print_before_delete(l_delete)
staticmethod
#
Affichage avant que la suppression soit effectuée
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
l_delete
|
List[StoreEntity]
|
liste des entités à supprimer |
required |
Returns:
| Type | Description |
|---|---|
List[StoreEntity]
|
List[StoreEntity]: liste finale des entités à supprimer |
question_before_delete(l_delete)
staticmethod
#
question posée avant que la suppression soit effectuée
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
l_delete
|
List[StoreEntity]
|
liste des entités à supprimer |
required |
Returns:
| Type | Description |
|---|---|
List[StoreEntity]
|
List[StoreEntity]: liste final des entités à supprimer |
EditAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la Mise à jour des entités.
Attributes:
| Name | Type | Description |
|---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
EditUsedDataConfigurationAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la copie des Configuration.
Attributes:
| Name | Type | Description |
|---|---|---|
__workflow_context |
str
|
nom du context du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__configuration |
Optional[Configuration]
|
représentation Python de la configuration créée |
OfferingAction(workflow_context, definition_dict, parent_action=None, behavior=None)
#
Bases: ActionAbstract
Classe dédiée à la création des Offering.
Attributes:
| Name | Type | Description |
|---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__offering |
Optional[Offering]
|
représentation Python de la Offering créée |
find_configuration(datastore=None)
#
Fonction permettant de récupérer la Configuration associée à l'Offering qui doit être crée par cette Action.
C'est à dire la Configuration indiquée dans url_parameters du definition_dict de cette Action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. |
None
|
Returns: Configuration
find_offering(datastore=None)
#
Fonction permettant de récupérer l'Offering qui devrait être créée (si elle existe déjà).
C'est à dire une offering associée à la Configuration indiquée dans url_parameters et au endpoint indiqué dans body_parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. |
None
|
Returns: Offre retrouvée
PermissionAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la création des Permissions.
Attributes:
| Name | Type | Description |
|---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__permission |
Optional[Permission]
|
représentation Python de la permission créée |
ProcessingExecutionAction(workflow_context, definition_dict, parent_action=None, behavior=None, compatibility_cartes=None)
#
Bases: ActionAbstract
Classe dédiée à la création des ProcessingExecution.
Attributes:
| Name | Type | Description |
|---|---|---|
__workflow_context |
str
|
nom du context du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
__processing_execution |
Optional[ProcessingExecution]
|
représentation Python de l'exécution de traitement créée |
__Upload |
Optional[Upload]
|
représentation Python de la livraison en sortie (null si donnée stockée en sortie) |
__StoredData |
Optional[StoredData]
|
représentation Python de la donnée stockée en sortie (null si livraison en sortie) |
output_new_entity
property
#
Indique s'il y aura création d'une nouvelle entité par rapport au paramètre de création de l'exécution de traitement (la clé "name" et non la clé "_id" est présente dans le paramètre "output" du corps de requête).
output_update_entity
property
#
Indique s'il y aura mise à jour d'une entité par rapport au paramètre de création de l'exécution de traitement (la clé "_id" et non la clé "name" est présente dans le paramètre "output" du corps de requête).
find_stored_data(datastore=None)
#
Fonction permettant de récupérer une Stored Data ressemblant à celle qui devrait être créée par l'exécution de traitement en fonction des filtres définis dans la Config.
Returns:
| Type | Description |
|---|---|
Optional[StoredData]
|
donnée stockée retrouvée |
monitoring_until_end(callback=None, ctrl_c_action=None)
#
Attend que la ProcessingExecution soit terminée (statut SUCCESS, FAILURE ou ABORTED) avant de rendre la main.
La fonction callback indiquée est exécutée après chaque vérification du statut en lui passant en paramètre la processing execution (callback(self.processing_execution)).
Si l'utilisateur stoppe le programme (par ctrl-C), le devenir de la ProcessingExecutionAction sera géré par la callback ctrl_c_action().
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
callback
|
Optional[Callable[[ProcessingExecution], None]]
|
fonction de callback à exécuter. Prend en argument le traitement (callback(processing-execution)). |
None
|
ctrl_c_action
|
Optional[Callable[[], bool]]
|
fonction de gestion du ctrl-C. Renvoie True si on doit stopper le traitement. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
statut final de l'exécution du traitement |
SynchronizeOfferingAction(workflow_context, definition_dict, parent_action=None)
#
Bases: ActionAbstract
Classe dédiée à la synchronization des Offering.
Attributes:
| Name | Type | Description |
|---|---|---|
__workflow_context |
str
|
nom du contexte du workflow |
__definition_dict |
Dict[str, Any]
|
définition de l'action |
__parent_action |
Optional[Action]
|
action parente |
run(datastore=None)
#
lancement de la synchronization des Offering.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
datastore
|
Optional[str]
|
surcharge du datastore, sinon utilisation de celui par défaut. Defaults to None. |
None
|
Raises:
| Type | Description |
|---|---|
StepActionError
|
Aucune offre trouvée pour la synchronisation |
StepActionError
|
Plusieurs offres trouvées pour la synchronisation (uniquement si "if_multi" == "error") |
StepActionError
|
La synchronisation d'au moins une offre est terminée en erreur |
UploadAction(dataset, behavior=None, compatibility_cartes=None)
#
Classe permettant d'accompagner la création d'une livraison.
Attributes:
| Name | Type | Description |
|---|---|---|
__dataset |
Dataset
|
dataset contenant les info de la livraison à créer |
__upload |
Optional[Upload]
|
livraison représentant l'entité créée sur l'entrepôt |
__behavior |
str
|
comportement à adopter si la livraison existe déjà sur l'entrepôt |
initialise le comportement de UploadAction
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dataset
|
Dataset
|
description |
required |
behavior
|
Optional[str]
|
description. Defaults to None. |
None
|
compatibility_cartes
|
Optional[bool]
|
récupère l'information du fonctionnement en mode compatibilité avec cartes.gouv |
None
|
add_carte_tags(mode_cartes, upload, upload_step)
staticmethod
#
En mode cartes, ajoute les tags nécessaires.
find_upload(datastore)
#
Fonction permettant de lister un éventuel upload déjà existant à partir des critères d'unicité donnés.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. |
required |
Returns:
| Type | Description |
|---|---|
Optional[Upload]
|
None si rien trouvé, sinon l'Upload trouvé |
monitor_until_end(upload, callback=None, ctrl_c_action=None, mode_cartes=None)
staticmethod
#
Attend que toute les vérifications liées à la Livraison indiquée soient terminées (en erreur ou en succès) avant de rendre la main.
La fonction callback indiquée est exécutée à chaque vérification en lui passant en paramètre un message de suivi du nombre de vérifications par statut.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
upload
|
Upload
|
Livraison à monitorer |
required |
callback
|
Optional[Callable[[str], None]]
|
fonction de callback à exécuter avec le message de suivi. |
None
|
ctrl_c_action
|
Optional[Callable[[], bool]]
|
gestion du ctrl-C. Si None ou si la fonction renvoie True, il faut arrêter les vérifications. |
None
|
Returns:
| Type | Description |
|---|---|
bool
|
True si toutes les vérifications sont ok, sinon False |
parse_tree(tree, prefix='')
staticmethod
#
Parse l'arborescence renvoyée par l'API en un dictionnaire associant le chemin de chaque fichier à sa taille. L'objectif est de permettre de facilement identifier quels sont les fichiers à (re)livrer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tree
|
List[Dict[str, Any]]
|
arborescence à parser |
required |
prefix
|
str
|
pré-fixe du chemin |
''
|
Returns:
| Type | Description |
|---|---|
Dict[str, int]
|
liste des fichiers envoyés et leur taille |
run(datastore, check_before_close=False)
#
Crée la livraison décrite dans le dataset et livre les données avant de retourner la livraison créée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
datastore
|
Optional[str]
|
id du datastore à utiliser. Si None, le datastore sera récupéré dans la configuration. |
required |
check_before_close
|
bool
|
Vérification de l'arborescence de la livraison avant fermeture. |
False
|
Raises:
| Type | Description |
|---|---|
GpfSdkError
|
levée si création non effectuée |
Returns:
| Type | Description |
|---|---|
Upload
|
livraison créée |