Aller au contenu

sdk_entrepot_gpf.workflow.resolver#

AbstractResolver(name) #

Bases: ABC

Classe abstraite permettant de résoudre le paramétrage des fichiers d'action.

Vous pouvez créer vos propres classe de résolution en les héritant de celle-ci et en les ajoutant au GlobalResolver.

Attributes:

Name Type Description
__name str

nom de code du resolver

get(key_value, js_key) staticmethod #

Fonction permettant de récupérer une valeur dans un dictionnaire complexe avec une récupération de style JS. La valeur est convertie en str (json) si elle n'est pas de type str.

Parameters:

Name Type Description Default
key_value Dict[str, Any]

dictionnaire dont on veut récupérer l'info

required
js_key str

pattern type JS pour récupérer la valeur du dictionnaire

required

Returns:

Name Type Description
str str

valeur demandée

resolve(string_to_solve, **kwargs) abstractmethod #

Résout la chaîne à traiter et retourne la chaîne obtenue.

Parameters:

Name Type Description Default
string_to_solve str

chaîne à résoudre

required
kwargs Any

paramètres supplémentaires.

{}

Returns:

Type Description
str

chaîne résolue

DateResolver(name) #

Bases: AbstractResolver

Classe permettant de résoudre une date.

Attributes:

Name Type Description
__name str

nom de code du resolver

À l'instanciation, le résolveur est nommé selon ce qui est indiqué dans la Config.

Parameters:

Name Type Description Default
name str

nom du résolveur

required

resolve(string_to_solve, **kwargs) #

Résolution bête : on retourne la chaîne à résoudre.

Parameters:

Name Type Description Default
string_to_solve str

chaîne à résoudre.

required
kwargs Any

paramètres supplémentaires.

{}

Returns:

Name Type Description
str str

chaîne résolue

DictResolver(name, key_value) #

Bases: AbstractResolver

Classe permettant de résoudre des paramètres clé -> valeur.

Attributes:

Name Type Description
__name str

nom de code du resolver

__key_value Dict[str, Any]

liste des paramètres à résoudre

Classe instanciée grâce au nom du résolveur et à la liste des correspondances à résoudre.

La clé est la chaîne à remplacer et la valeur la chaîne de remplacement.

Parameters:

Name Type Description Default
name str

nom du résolveur

required
key_value Dict[str, Any]

liste de clé/valeur à utiliser

required

resolve(string_to_solve, **kwargs) #

La chaîne à résoudre doit correspondre à une clef du dictionnaire.

Parameters:

Name Type Description Default
string_to_solve str

chaîne à résoudre.

required
kwargs Any

paramètres supplémentaires.

{}

Returns:

Raises:

Type Description
ResolverError

levée si aucune clef ne correspond à la chaîne

Returns:

Name Type Description
str str

chaîne résolue

DumbResolver(name) #

Bases: AbstractResolver

Classe permettant de résoudre en renvoyant la clef.

Attributes:

Name Type Description
__name str

nom de code du resolver

__key_value Dict[str, Any]

liste des paramètres à résoudre

resolve(string_to_solve, **kwargs) #

Résolution bête : on retourne la chaîne à résoudre.

Parameters:

Name Type Description Default
string_to_solve str

chaîne à résoudre.

required
kwargs Any

paramètres supplémentaires.

{}

Returns:

Name Type Description
str str

chaîne résolue

FileResolver(name, root_path) #

Bases: AbstractResolver

Classe permettant de résoudre des paramètres faisant référence à des fichiers : ce résolveur permet d'insérer le contenu d'un fichier au moment de la résolution.

Ce fichier peut être un fichier texte basique, une liste au format JSON ou un dictionnaire au format JSON.

Fichier texte : (dans cet exemple, file est le nom du résolveur)

Contenu du fichier exemple.txt :

coucou

Chaîne à remplacer : Je veux dire : {file.str(exemple.txt)}

Résultat : Je veux dire : coucou

Fichier de liste : (dans cet exemple, file est le nom du résolveur)

Contenu du fichier list.json :

["valeur 1", "valeur 2"]

Chaîne à remplacer : {"values": ["file","list(list.json)"]}

Résultat : {"values": ["valeur 1", "valeur 2"]}

Fichier de clé-valeur : (dans cet exemple, file est le nom du résolveur)

Contenu du fichier dict.json :

{"k1":"v1", "k2":"v2"}

Chaîne à remplacer : {"parameters": {"file":"dict(dict.json)"}}

Résultat : {"parameters": {"k1":"v1", "k2":"v2"}}

Attributes:

Name Type Description
__name str

nom de code du resolver

À l'instanciation, il faut indiquer au résolveur le chemin racine d'où chercher les fichiers.

Parameters:

Name Type Description Default
name str

nom du résolveur

required
root_path Path

chemin racine

required

resolve(string_to_solve, **kwargs) #

Fonction permettant de renvoyer sous forme de string la résolution des paramètres de fichier passés en entrée.

Parameters:

Name Type Description Default
string_to_solve str

chaîne à résoudre (type de fichier à traiter et chemin)

required
kwargs Any

paramètres supplémentaires.

{}

Raises:

Type Description
ResolverError

si la chaîne à résoudre est incorrecte

ResolverError

si le type de donnée n'est pas str/list/dict

Returns:

Type Description
str

le contenu du fichier en entrée sous forme de string

GlobalResolver() #

Classe permettant de résoudre une action en appelant les tous résolveurs listés.

Attributes:

Name Type Description
__resolvers Dict[str, AbstractResolver]

association nom du résolveur / résolveur.

Constructeur.

add_resolver(resolver) #

Ajoute un résolveur à la liste.

resolve(string_to_solve_global, **kwargs) #

Résout la chaîne à traiter et retourne la chaîne obtenue.

Résout TOUT le paramétrage trouvé.

Parameters:

Name Type Description Default
string_to_solve_global str

chaîne globale à résoudre

required
kwargs Any

paramètres supplémentaires.

{}

Raises:

Type Description
ResolverNotFoundError

levée si un résolveur demandé n'est pas trouvé

Returns:

Type Description
str

chaîne résolue

StoreEntityResolver(name) #

Bases: AbstractResolver

Classe permettant de résoudre des paramètres faisant référence à une entité.

Attributes:

Name Type Description
__name str

nom de code du resolver

__regex Pattern[str]

regex du resolver

À l'instanciation, le résolveur est nommé selon ce qui est indiqué dans la Config.

Parameters:

Name Type Description Default
name str

nom du résolveur

required

resolve(string_to_solve, **kwargs) #

Résolution en listant les entités de l'API.

Parameters:

Name Type Description Default
string_to_solve str

chaîne à résoudre (type de l'entité, attribut à récupérer)

required
kwargs Any

paramètres supplémentaires (datastore).

{}

Raises:

Type Description
ResolverError

si la chaîne à résoudre n'est pas parsable

NoEntityFoundError

si aucune entité n'est trouvée

ResolverError

si aucune information n'est retournée

Returns:

Type Description
str

l'attribut demandé de l'entité demandée

UserResolver(name) #

Bases: AbstractResolver

Classe permettant de récupérer les informations sur l'utilisateur authentifié.

La plus-value sur la classe DictRevolver est que les infos de l'utilisateur sont directement récupérées par le constructeur de la classe (ça évite de gérer cela).

Attributes

__name (str): nom de code du resolver __username_data (Dict[str, Any]): liste des infos de l'utilisateur authentifié

A l'instanciation, on récupère les infos de l'utilisateur via l'API et on les stocke.

Parameters:

Name Type Description Default
name str

nom du résolveur

required

resolve(string_to_solve, **kwargs) #

Récupération de l'utilisateur courant et récupération d'une des ces informations.

Parameters:

Name Type Description Default
string_to_solve str

chaîne à résoudre (attribut du JSON retourné)

required
kwargs Any

paramètres supplémentaires.

{}

Raises:

Type Description
ResolveUserError

si l'attribut demandé n'existe pas

Returns:

Type Description
Any

valeur de l'attribut

NoEntityFoundError(resolver_name, to_solve) #

Bases: GpfSdkError

Classe d'erreur pour le résolveur StoreEntityResolver quand aucune entité n'est trouvée.

Attributes:

Name Type Description
__message str

message décrivant le problème

__resolver_name str

nom du résolveur

__to_solve str

chaîne à résoudre

ResolveFileInvalidError(resolver_name, to_solve) #

Bases: GpfSdkError

Classe d'erreur pour le résolveur FileResolver quand le fichier indiqué est invalide.

Attributes:

Name Type Description
__message str

message décrivant le problème

__resolver_name str

nom du résolveur

__to_solve str

chaîne à résoudre

ResolveFileNotFoundError(resolver_name, to_solve, path) #

Bases: GpfSdkError

Classe d'erreur pour le résolveur FileResolver quand le fichier indiqué est introuvable.

Attributes:

Name Type Description
__message str

message décrivant le problème

__resolver_name str

nom du résolveur

__to_solve str

chaîne à résoudre

__absolute_path Path

chemin vers le fichier non trouvé

ResolveUserError(resolver_name, to_solve) #

Bases: GpfSdkError

Classe d'erreur quand les informations de l'utilisateur ne sont pas récupérées.

Attributes:

Name Type Description
__message str

message décrivant le problème

__resolver_name str

nom du résolveur

__to_solve str

chaîne à résoudre

ResolverError(resolver_name, to_solve, message='') #

Bases: GpfSdkError

Classe d'erreur pour les résolveurs.

Attributes:

Name Type Description
__message str

message décrivant le problème

__resolver_name str

nom du résolveur

__to_solve str

chaîne à résoudre

ResolverNotFoundError(resolver_name) #

Bases: GpfSdkError

Classe d'erreur si résolveur non trouvé.

Attributes:

Name Type Description
__message str

message décrivant le problème

__resolver_name str

nom du résolveur