Aller au contenu

Module:paramètres/Documentation

Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.

Ceci est la page de documentation pour Module:paramètres

 Documentation[voir] [modifier] [historique] [purger]

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 type table
Les arguments du modèle, généralement obtenus en utilisant frame.args ou frame:getParent().args.
defined_parameters de type table
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 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.
Cas particuliers
Si alias_of est présent, la valeur required n’est pas prise en compte.
Si required est true ou alias_of n’est pas nil, la valeur default ne sera pas prise en compte.
Si required n’est pas présent ou est false, la valeur allow_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 et enum 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 }
}