Aller au contenu

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