Module:paramètres/Documentation
Ceci est la page de documentation pour Module:paramètres
Ce module a pour objectif d’aider à traiter les paramètres de modèles dans les modules LUA.
process(args, defined_parameters)
Paramètres
args
de typetable
- Les arguments du modèle, généralement obtenus en utilisant
frame.args
ouframe:getParent().args
.
defined_parameters
de typetable
- La liste des paramètres acceptés par le module.
- Chaque paramètre est une entrée de la 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 sont1
,oui
etvrai
pourtrue
et0
,non
etfaux
pourfalse
.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.
- Cas particuliers
- Si
alias_of
est présent, la valeurrequired
n’est pas prise en compte. - Si
required
esttrue
oualias_of
n’est pasnil
, la valeurdefault
ne sera pas prise en compte. - Si
required
n’est pas présent ou estfalse
, la valeurallow_empty
ne sera pas prise en compte. - Si
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.
- Les erreurs suivantes ne sont pas masquées par le mode silencieux :
- Type invalide
- Alias vers lui-même
- Alias vers un autre alias
- Alias vers un paramètre non défini
- Attributs
checker
etenum
renseignés en même temps
- Le message d’erreur est alors préfixé de
"Erreur interne :"
Valeur retournée
La fonction retourne les arguments avec leurs valeurs converties dans le type spécifié pour chaque paramètre.
Exemples
- Exemple complet
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
[1] = { required = true, allow_empty = true }, -- On autorise à laisser le paramètre vide.
[2] = { required = true },
["pron"] = { alias_of = 1 },
["lang"] = { alias_of = 2 },
})
La variable args
est une table qui contient alors deux valeurs, aux indices 1
et 2
.
- Exemple complet avec erreurs silencieuses
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
[1] = { required = true, allow_empty = true }, -- On autorise à laisser le paramètre vide.
[2] = { required = true },
["pron"] = { alias_of = 1 },
["lang"] = { 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
.
- Définition d’un paramètre obligatoire
{ [1] = { required = true } } -- paramètre positionnel
{ ["nom du paramètre"] = { required = true } } -- paramètre nommé
- Définition d’un alias
{
[1] = {},
["a"] = { alias_of = 1 }
}
- Définition d’une valeur par défaut
{ [1] = { default = "valeur par défaut" } }
- Spécification d’un type
{ [1] = { type = "number" } } -- nombre
{ [1] = { type = "boolean" } } -- booléen
{ [1] = { } } -- chaîne
- Spécification d’une précondition
{ [1] = { checker = function(s) return s == "a" or s == "b" end } }
- Spécification d’une énumération
{ [1] = { enum = { "v1", "v2" } } }
- Exemple pour le module prononciation
{
[1] = { required = true, allow_empty = true },
[2] = { required = true },
["pron"] = { alias_of = 1 },
["lang"] = { 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.