Ce module a pour objectif d’aider à traiter les paramètres de modèles dans les modules LUA.
args
de type table
frame.args
ou frame:getParent().args
.defined_parameters
de type table
defined_parameters
dont la clé est le nom du paramètre et la valeur est une table qui peut contenir les entrées suivantes :
required
(booléen, défaut : false
) : indique que le paramètre est obligatoire.alias_of
(chaîne/entier) : le nom du paramètre dont ce paramètre est un alias.default
(chaîne/nombre/booléen) : la valeur par défaut, utilisée si l’argument n’est pas présent dans la table args.type
(chaîne) : le type du paramètre ; number
pour nombre, boolean
pour booléen, omit pour chaîne. Les valeurs autorisées pour le type booléen sont 1
, oui
et vrai
pour true
et 0
, non
et faux
pour false
.allow_empty
(booléen, défaut : false
) : indique si un paramètre obligatoire peut être laissé vide.checker
: précondition, fonction permettant de tester la valeur de l’argument ; elle doit posséder un seul paramètre et retourner un booléen. Ne peut pas être présent sur un alias.enum
: liste des valeurs autorisées pour le paramètre.alias_of
est présent, la valeur required
n’est pas prise en compte.required
est true
ou alias_of
n’est pas nil
, la valeur default
ne sera pas prise en compte.required
n’est pas présent ou est false
, la valeur allow_empty
ne sera pas prise en compte.alias_of
pointe vers un paramètre qui est lui-même un alias, n’existe pas ou vers lui-même, une erreur est lancée.checker
et enum
renseignés en même temps"Erreur interne :"
La fonction retourne les arguments avec leurs valeurs converties dans le type spécifié pour chaque paramètre.
On veut définir un modèle avec les paramètres pron
et lang
en tant qu’alias des paramètres 1
et 2
obligatoires.
local args = m_params.process(frame.args, { -- ou frame:getParent().args
= { required = true, allow_empty = true }, -- On autorise à laisser le paramètre vide.
= { required = true },
= { alias_of = 1 },
= { alias_of = 2 },
})
La variable args
est une table qui contient alors deux valeurs, aux indices 1
et 2
.
Même exemple qu’au-dessus sauf que cette fois-ci on veut passer sous silence les erreurs éventuelles levées par la fonction process
pour les traiter ultérieurement.
local args, success = m_params.process(frame.args, { -- ou frame:getParent().args
= { required = true, allow_empty = true }, -- On autorise à laisser le paramètre vide.
= { required = true },
= { alias_of = 1 },
= { alias_of = 2 },
}, true)
Si la fonction process
n’a pas rencontré d’erreurs, la variable args
est une table qui contient alors deux valeurs, aux indices 1
et 2
et la variable success contient une valeur booléenne égale à true
.
Si la fonction process
a rencontré une erreur, args
est une table de la forme { "valeur du paramètre erroné", "type de l’erreur", "message d’erreur" }
et success
vaut false
.
{ = { required = true } } -- paramètre positionnel
{ = { required = true } } -- paramètre nommé
{
= {},
= { alias_of = 1 }
}
{ = { default = "valeur par défaut" } }
{ = { type = "number" } } -- nombre
{ = { type = "boolean" } } -- booléen
{ = { } } -- chaîne
{ = { checker = function(s) return s == "a" or s == "b" end } }
{ = { enum = { "v1", "v2" } } }
{
= { required = true, allow_empty = true },
= { required = true },
= { alias_of = 1 },
= { alias_of = 2 }
}
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis la page Module:paramètres/Documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.