local p =
function p.getMonthHighestTemp(month, files) local max
month = string.format("%02d", month)
for file,data in pairs(files) do field_index = p.getColumnIndex("extremeMax", data) for index,values in pairs(data.data) do if string.find(string.sub(values[1], 1, 3), month, 1, true) then if max
return maxendfunction p.getMonthLowestTemp(month, files) local min
month = string.format("%02d", month)
for file,data in pairs(files) do field_index = p.getColumnIndex("extremeMin", data) for index,values in pairs(data.data) do if string.find(string.sub(values[1], 1, 3), month, 1, true) then if min
return minend
function p.getMonthHighestRainfall(month, files) local max
month = string.format("%02d", month)
for file,data in pairs(files) do field_index = p.getColumnIndex("extremeRainfall", data) for index,values in pairs(data.data) do if string.find(string.sub(values[1], 1, 3), month, 1, true) then if max
return maxend
function p.getMonthHighestSnowfall(month, files) local max
month = string.format("%02d", month)
for file,data in pairs(files) do field_index = p.getColumnIndex("extremeSnowfall", data) for index,values in pairs(data.data) do if string.find(string.sub(values[1], 1, 3), month, 1, true) then if max
return maxend
function p.getColumnIndex(name, file) for index,value in pairs(file["schema"]["fields"]) do if value["name"]
return nilend
function p.main(frame) debug = "" local args = frame:getParent.args local template_args = local donnees = args["données"] local files = local months =
-- Duplicate in args for key,value in pairs(args) do template_args[key] = args[key] end
-- Open data files for file in string.gmatch(donnees, "[^%s]+") do files[file] = mw.ext.data.get(file) end
-- Temperature extreme high for num,month in pairs(months) do if template_args["tmax-record-" .. month]
"" then template_args["tmax-record-" .. month] = p.getMonthHighestTemp(num, files) template_args["tmax-record-date-" .. month] = nil elseif template_args["tmax-record-" .. month]
-- Temperature extreme low for num,month in pairs(months) do if template_args["tmin-record-" .. month]
"" then template_args["tmin-record-" .. month] = p.getMonthLowestTemp(num, files) template_args["tmin-record-date-" .. month] = nil elseif template_args["tmin-record-" .. month]
-- Rainfall max for num,month in pairs(months) do if template_args["pluie-record-" .. month]
"" then template_args["pluie-record-" .. month] = p.getMonthHighestRainfall(num, files) template_args["pluie-record-date-" .. month] = nil elseif template_args["pluie-record-" .. month]
-- Snowfall max for num,month in pairs(months) do if template_args["neige-record-" .. month]
"" then template_args["neige-record-" .. month] = p.getMonthHighestSnowfall(num, files) template_args["neige-record-date-" .. month] = nil elseif template_args["neige-record-" .. month]
-- Force debug, if any if debug ~= "" then return debug else return frame:expandTemplate endend
return p