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
:
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
:
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
:
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 |