Module:Population de France/Outils
Apparence
[voir] [modifier] [historique] [purger]
Utilisation
Contient diverses fonctions utilisées dans le module principal et certains sous-modules :
p.dump(t, level)
: debug. Affiche dans la console le contenu d'une table (récursivement). Ne pas utiliser en prod.p.round(val, dp)
: arrondival
àdp
décimale(s)p.color2rgb(color)
: transforme une couleurcolor
de la forme#RRVVBB
à la formergb(r, v, b)
(utilisé pour l'appel au modèle {{Histogramme population manuel}})p.err_nodata(fonc, donnees, err, court)
: retourne un message d'erreur pour la fonctionfonc
, vis-à-vis du module de donnéesdonnees
, avec le type d'erreurerr
. Sicourt
est vrai (true) la version courte est retournée.p.test_annee(annee, data)
: retourne vrai (true) si l'annéeannee
est à utiliser dans lestableaux et graphiques (selon les règles définies pour les affichages)p.liste_annees(data)
: retourne la liste des années ayant une référence, pour l'entité dont les données sont dansdata
. Cette liste prend la forme : pour les années [ref1 année1], [ref2 année2], … [refX annéeX] et [refY annéeY]. Utilisé pour les notes associées à certains textes.p.liste_annees_pred(data, annee)
: retourne la liste des années qui précèdentannee
et qui ont une référence associée, de 5 en 5, par ordre croissant, pour l'entité dont les données sont dansdata
. Retourne en seconde valeur le nombre d'éléments retournés.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de 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.
--[[
Sous-module de Module:Tableau population d'article de commune de France contenant
diverses fonctions utilitaires (non classées dans les autres catégories)
--]]
local p = {}
-- il nous faut les constantes
p.constantes = require("Module:Population de France/Constantes")
-- fonction de dump récursif d'une table. Ne sert qu'au debug
function p.dump(t, level)
level = level or 0
for i,v in pairs(t) do
local txt = string.rep(' ', level) .. tostring(i) .. ": "
if type(v) == 'table' then
mw.log(txt .. "{}")
p.dump(v, level + 1)
else
mw.log(txt .. tostring(v))
end
end
end
-- conserve 'dp' décimales dans 'val'
function p.round(val, dp)
local mult = 10^(dp or 0)
return math.floor(val * mult + 0.5) / mult
end
-- transforme une couleur de type RRGGBB en valeurs entre 0 et 1 (r, g, b)
function p.color2rgb(color)
-- on vire le '#' si présent
if (mw.ustring.sub(color, 1, 1) == "#") then
color = mw.ustring.sub(color, 2)
end
local r = mw.ustring.sub(color, 1, 2)
local g = mw.ustring.sub(color, 3, 4)
local b = mw.ustring.sub(color, 5, 6)
local vr = tonumber(r, 16)
local vg = tonumber(g, 16)
local vb = tonumber(b, 16)
if ((not vr) or (not vg) or (not vb)) then
return nil
end
return p.round(vr/255, 2) .. "," .. p.round(vg/255, 2) .. "," .. p.round(vb/255, 2)
end
-- retourne un message d'erreur "pas de données" ('donnees' est le nom du modèle/module cherché)
function p.err_nodata(fonc, donnees, court)
local namescape = mw.title.getCurrentTitle().namespace
-- pas de données (ni module ni modèle) : erreur
local cat = p.constantes.cat_usage
if (namespace == 0) then
cat = cat .. p.constantes.cat_errdata
end
if (court) then
return p.constantes.err_data_c
else
return mw.ustring.format(p.constantes.err_data, fonc, donnees) .. cat
end
end
-- retourne un message d'erreur "données invalides" ('donnees' est le nom du modèle/module utilisé)
function p.err_baddata(fonc, donnees, court)
local namescape = mw.title.getCurrentTitle().namespace
-- données invalides : erreur
local cat = p.constantes.cat_usage
if (namespace == 0) then
cat = cat .. p.constantes.cat_errdata
end
if (court) then
return p.constantes.err_cont_c
else
return mw.ustring.format(p.constantes.err_cont, fonc, donnees) .. cat
end
end
-- retourne un message d'erreur "données invalides" ('donnees' est le nom du modèle/module utilisé)
function p.err_inc(fonc, donnees, court)
local namescape = mw.title.getCurrentTitle().namespace
-- données invalides : erreur
local cat = p.constantes.cat_usage
if (namespace == 0) then
cat = cat .. p.constantes.cat_errdata
end
if (court) then
return p.constantes.err_inc_c
else
return mw.ustring.format(p.constantes.err_inc, fonc, donnees) .. cat
end
end
-- retourne la forme élisée ou pas du mot selon la présence d'une voyelle ou pas
function p.apostrophe(mot, pre)
if (mw.ustring.find(mot, '^[aeiouyAEIOUYéèàÉÈÀÊÂêâûîÛÎëïäüÄËÏÜ]')) then
if (pre == "de le") then
return "de l'"
elseif (pre == "de") then
return "d'"
else
return "l'"
end
else
if (pre == "de le") then
return "de"
else
return pre
end
end
end
return p