მოდული:WeatherBox/სავარჯიშო

მასალა ვიკიპედიიდან — თავისუფალი ენციკლოპედია
ჰავის მონაცემები — Edmonton City Centre (Blatchford Field) Airport (1981−2010)
თვე იან თებ მარ აპრ მაი ივნ ივლ აგვ სექ ოქტ ნოე დეკ წლიური
რეკორდულად მაღალი °F 11.7 57.2 75.0 88.0 90.1 94.8 94.3 94.1 93.0 83.5 71.1 62.1 94.8
საშუალო მაღალი °F 21.2 27.1 36.0 52.2 63.5 69.8 73.6 72.7 62.8 50.7 32.0 23.9 48.7
საშუალო დღიური °F 13.3 18.3 27.5 41.7 52.7 59.9 63.9 62.4 52.5 41.2 24.6 16.2 39.6
საშუალო დაბალი °F 5.4 9.5 19.0 31.1 41.7 49.8 54.1 52.3 42.4 31.6 17.2 8.4 30.2
რეკორდულად დაბალი °F −47.9 −51.0 −33.0 −14.1 10.0 30.0 33.1 29.8 10.9 −13.0 −29.4 −54.9 −54.9
საშუალო ნალექი (დუიმი) 0.85 0.47 0.62 1.13 1.81 3.05 3.69 2.44 1.71 0.85 0.71 0.59 17.94
წვიმის საშუალო რაოდენობა (დუიმი) 0.05 0.03 0.07 0.57 1.60 3.05 3.69 2.43 1.67 0.43 0.06 0.03 13.69
საშუალო თოვა (დუიმი) 9.6 5.3 6.9 6.0 1.9 0.0 0.0 0.0 0.4 4.6 7.5 6.5 48.6
რეკორდულად მაღალი °C −11.3 14.0 23.9 31.1 32.3 34.9 34.6 34.5 33.9 28.6 21.7 16.7 34.9
საშუალო მაღალი °C −6.0 −2.7 2.2 11.2 17.5 21.0 23.1 22.6 17.1 10.4 0.0 −4.5 9.3
საშუალო დღიური °C −10.4 −7.6 −2.5 5.4 11.5 15.5 17.7 16.9 11.4 5.1 −4.1 −8.8 4.2
საშუალო დაბალი °C −14.8 −12.5 −7.2 −0.5 5.4 9.9 12.3 11.3 5.8 −0.2 −8.2 −13.1 −1.0
რეკორდულად დაბალი °C −44.4 −46.1 −36.1 −25.6 −12.2 −1.1 0.6 −1.2 −11.7 −25.0 −34.1 −48.3 −48.3
ამინდის სიმკაცრე −52.8 −50.7 −44.6 −37.5 −14.5 0.0 0.0 −3.7 −13.3 −34.3 −50.2 −55.5 −55.5
საშუალო ნალექი (მმ) 21.7 12.0 15.8 28.8 46.1 77.5 93.8 61.9 43.5 21.7 18.0 15.0 455.7
წვიმის საშუალო რაოდენობა (მმ) 1.3 0.76 1.7 14.5 40.7 77.5 93.8 61.8 42.4 10.9 1.6 0.73 347.8
საშუალო თოვა (სმ) 24.5 13.4 17.4 15.3 4.9 0.0 0.0 0.0 1.0 11.6 19.1 16.4 123.5
ნალექიანი დღეები საშუალოდ (≥ 0.2 mm) 11.0 7.9 8.3 8.8 11.0 14.2 14.6 11.1 9.8 8.0 8.8 9.4 122.9
წვიმიანი დღეები საშუალოდ (≥ 0.2 mm) 1.1 0.83 1.4 5.9 10.5 14.2 14.6 11.1 9.6 5.6 1.5 0.75 77.3
თოვლიანი დღეები საშუალოდ (≥ 0.2 cm) 10.7 7.7 7.7 4.2 1.2 0.0 0.0 0.0 0.50 3.2 7.9 9.3 52.4
საშუალო ფარდობითი ტენიანობა (%) 65.2 61.2 56.5 42.9 40.4 48.2 52.6 51.4 50.1 50.5 64.7 65.4 54.1
საშუალო თვიური მზიანი საათები 100.8 121.7 176.3 244.2 279.9 285.9 307.5 282.3 192.7 170.8 98.4 84.5 2 344,8
შესაძლო მზის სინათლის პროცენტი 40.2 44.1 48.1 58.2 56.8 56.2 60.2 61.5 50.4 52.0 37.8 36.0 50.1
საშუალო UV ინდექსი 0 1 3 5 7 9 11 9 7 5 3 1 5
წყარო: Environment Canada,[1] Weather Atlas[2]

  1. Edmonton City Centre Airport. Canadian Climate Normals 1981−2010. Environment Canada (August 19, 2013). ციტირების თარიღი: September 10, 2013.
  2. Monthly weather forecast and Climate: Edmonton, Canada. Weather Atlas. ციტირების თარიღი: March 12, 2019.
-- მოქმედებაში მოჰყავს [[თარგი:Weather box]].

local precision = require('მოდული:Math')._precision

local function stripToNil(text)
	-- If text is a non-empty string, return its trimmed content.
	-- Otherwise, return nothing (text is an empty string or is not a string).
	if type(text) == 'string' then
		return text:match('(%S.-)%s*$')
	end
end

local function isAny(args, suffix)
	local months = { 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' }
	for _, month in ipairs(months) do
		if stripToNil(args[month .. suffix]) then
			return true
		end
	end
end

local function makeLabel(args, is_first, base, what)
	local first
	if isAny(args, ' ' .. what .. ' cm') then
		first = '(სმ)'
	else
		if isAny(args, ' ' .. what .. ' mm') then
			first = '(მმ)'
			else
			first = (what == 'snow' or
				precision(args['Jan ' .. what .. ' inch'] or '0') < 1)
					and '(სმ)'
					or '(მმ)'
		end
	end
	local second = '(დუიმი)'
	if not stripToNil(args['metric first']) then
		first, second = second, first
	end
	if is_first then
		if stripToNil(args['single line']) then
			first = first
		end
	else
		first = second
	end
	return base .. ' ' .. first
end

local function makeSources(frame, args)
	local source1 = stripToNil(args.source) or stripToNil(args['source 1']) or stripToNil(args['წყარო 1']) or stripToNil(args['წყარო'])
	local source2 = stripToNil(args['source 2']) or stripToNil(args['source2']) or stripToNil(args['წყარო 2']) or stripToNil(args['წყარო2'])
	local result = '|-\n|colspan="14" style="text-align:center;font-size:95%;"|'
	local text
	if source1 or source2 then
		if source1 and source2 then
			text = 'წყარო 1: ' .. source1 .. '\n' .. result .. 'წყარო 2: ' .. source2
		else
			text = 'წყარო: ' .. (source1 and source1 or source2)
		end
	else
		text = '<sup>[<i>[[ვიკიპედია:წყაროს მითითება|საჭიროებს წყაროს მითითებას]]</i>]</sup>[[კატეგორია:სტატიები დაუსაბუთებელი მტკიცებებით]]'
	end
	return result .. text .. '\n|}'
end

local function getDefinitions(frame, args)
	-- Return a list of tables or strings that define each row.
	local navbar = require('Module:Navbar')._navbar
	local function _if(parm, a, b)
		return stripToNil(args[parm]) and a or b or ''
	end
	local function _ifset(parm, a)
		return stripToNil(args[parm]) and args[parm] or a
	end
	local function _ifany(suffix)
		return isAny(args, suffix)
	end
	return {

----------- HEADER ----------
'{| class="wikitable ' .. _if('open', '', 'collapsible' .. _if('collapsed', ' collapsed')) ..
'" style="font-size: 81%; width:' .. _ifset('width', '70%') ..
'; text-align:center; margin:' ..
_ifset('margin', 'auto') .. ';"' ..
_if('open',
	-- Following intentionally shows "{{{location}}}" if parameter is blank to alert editor.
	'\n|+Climate data for ' .. _if('location' or 'ადგილი', args.location, '{{{location|{{{ადილი|}}}}}}'),
	'\n|-' ..
	'\n!colspan="14" | ' ..
	_if('სახელი' or 'name',
		navbar({'Climate data for ' .. _if('location' or 'ადგილი', args.location, '{{{location|{{{ადილი|}}}}}}'), args.name, collapsible=1}),
		'Climate data for ' .. _if('location' or 'ადგილი', args.location, '{{{location|{{{ადილი|}}}}}}')
	)
) ..
[=[

|-
!scope="row" |თვე
!scope="col" |იან
!scope="col" |თებ
!scope="col" |მარ
!scope="col" |აპრ
!scope="col" |მაი
!scope="col" |ივნ
!scope="col" |ივლ
!scope="col" |აგვ
!scope="col" |სექ
!scope="col" |ოქტ
!scope="col" |ნოე
!scope="col" |დეკ
!scope="col" style="border-left-width:medium" |წლიური
]=],

{---------- FIRST LINE MAXIMUM HUMIDEX ----------
	WANTROW = _ifany(' maximum humidex') and (_ifset('metric first') or _ifset('single line')),
	mode = 'basic',
	group_name = 'maximum humidex',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'რეკორდულად მაღალი [[humidex]]',
	annual_mode = 'max',
},
{---------- FIRST LINE RECORD HIGH TEMPERATURES ----------
	WANTROW = _ifany(' record high C') or _ifany(' record high F'),
	mode = 'temperature',
	group_name = 'record high',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'რეკორდულად მაღალი °' .. _if('metric first', 'C', 'F'),
	annual_mode = 'max',
},
{---------- FIRST-SECOND LINE AVG MONTHLY MAXIMUM TEMPERATURES ----------
	WANTROW = _ifany(' avg record high C') or _ifany(' avg record high F'),
	mode = 'temperature',
	group_name = 'avg record high',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'საშუალო მაქსიმალური °' .. _if('metric first', 'C', 'F'),
	annual_mode = 'max',
},
{---------- FIRST LINE AVERAGE HIGH TEMPERATURES ----------
	WANTROW = _ifany(' high C') or _ifany(' high F'),
	mode = 'temperature',
	group_name = 'high',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'საშუალო მაღალი °' .. _if('metric first', 'C', 'F'),
	annual_mode = 'avg',
},
{---------- FIRST LINE DAILY MEAN TEMPERATURES ----------
	WANTROW = _ifany(' mean C') or _ifany(' mean F'),
	mode = 'temperature',
	group_name = 'mean',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'საშუალო დღიური  °' .. _if('metric first', 'C', 'F'),
	annual_mode = 'avg',
},
{---------- FIRST LINE AVERAGE LOW TEMPERATURES ----------
	WANTROW = _ifany(' low C') or _ifany(' low F'),
	mode = 'temperature',
	group_name = 'low',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'საშუალო დაბალი °' .. _if('metric first', 'C', 'F'),
	annual_mode = 'avg',
},
{---------- FIRST-SECOND LINE AVG MONTHLY MINIMUM TEMPERATURES ----------
	WANTROW = _ifany(' avg record low C') or _ifany(' avg record low F'),
	mode = 'temperature',
	group_name = 'avg record low',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'საშუალო მინიმალური °' .. _if('metric first', 'C', 'F'),
	annual_mode = 'min',
},
{---------- FIRST LINE RECORD LOW TEMPERATURES ----------
	WANTROW = _ifany(' record low C') or _ifany(' record low F'),
	mode = 'temperature',
	group_name = 'record low',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'რეკორდულად დაბალი °' .. _if('metric first', 'C', 'F'),
	annual_mode = 'min',
},
{---------- FIRST LINE MINIMUM WIND CHILL ----------
	WANTROW = _ifany(' chill') and (_ifset('metric first') or _ifset('single line')),
	mode = 'basic',
	group_name = 'chill',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'რეკორდულად დაბალი [[ამინდის სიმკაცრე]]',
	annual_mode = 'min',
},
{---------- FIRST LINE TOTAL PRECIPITATION ----------
	WANTROW = _ifany(' precipitation cm') or _ifany(' precipitation mm') or _ifany(' precipitation inch'),
	mode = 'precipitation',
	group_name = 'precipitation',
	color_scheme = _ifset('precipitation colour', 'p'),
	date_mode = true,
	scale_factor = '1',
	prefer_cm = precision(_ifset('Jan precipitation inch', '0')) < 1,
	label = makeLabel(args, true, 'საშუალო [[ატმოსფერული ნალექები|ნალექი]]', 'precipitation'),
	annual_mode = 'sum',
},
{---------- FIRST LINE RAINFALL ----------
	WANTROW = _ifany(' rain cm') or _ifany(' rain mm') or _ifany(' rain inch'),
	mode = 'precipitation',
	group_name = 'rain',
	color_scheme = _ifset('rain colour', 'p'),
	date_mode = true,
	scale_factor = '1',
	prefer_cm = precision(_ifset('Jan rain inch', '0')) < 1,
	label = makeLabel(args, true, 'წვიმის საშუალო რაოდენობა', 'rain'),
	annual_mode = 'sum',
},
{---------- FIRST LINE SNOWFALL ----------
	WANTROW = _ifany(' snow cm') or _ifany(' snow mm') or _ifany(' snow inch'),
	mode = 'precipitation',
	group_name = 'snow',
	prefer_cm = true,
	color_scheme = _ifset('snow colour', 'p'),
	date_mode = true,
	scale_factor = '1',
	label = makeLabel(args, true, 'საშუალო თოვა', 'snow'),
	annual_mode = 'sum',
},
{---------- SECOND LINE MAXIMUM HUMIDEX ----------
	WANTROW = not _ifset('single line') and _ifany(' maximum humidex'),
	mode = 'basic',
	group_name = 'maximum humidex',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = '[[Humidex]]',
	annual_mode = 'max',
	second_line = true,
},
{---------- SECOND LINE RECORD HIGH TEMPERATURES ----------
	WANTROW = not _ifset('single line') and (_ifany(' record high C') or _ifany(' record high F')),
	mode = 'temperature',
	group_name = 'record high',
	second_line = true,
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'რეკორდულად მაღალი °' .. _if('metric first', 'F', 'C'),
	annual_mode = 'max',
},
{---------- SECOND LINE AVERAGE HIGH TEMPERATURES ----------
	WANTROW = not _ifset('single line') and (_ifany(' high C') or _ifany(' high F')),
	mode = 'temperature',
	group_name = 'high',
	second_line = true,
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'საშუალო მაღალი °' .. _if('metric first', 'F', 'C'),
	annual_mode = 'avg',
},
{---------- SECOND LINE DAILY MEAN TEMPERATURES ----------
	WANTROW = not _ifset('single line') and (_ifany(' mean C') or _ifany(' mean F')),
	mode = 'temperature',
	group_name = 'mean',
	second_line = true,
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'საშუალო დღიური °' .. _if('metric first', 'F', 'C'),
	show = _if('metric first', '2', '1'),
	annual_mode = 'avg',
},
{---------- SECOND LINE AVERAGE LOW TEMPERATURES ----------
	WANTROW = not _ifset('single line') and (_ifany(' low C') or _ifany(' low F')),
	mode = 'temperature',
	group_name = 'low',
	second_line = true,
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'საშუალო დაბალი °' .. _if('metric first', 'F', 'C'),
	show = _if('metric first', '2', '1'),
	annual_mode = 'avg',
},
{---------- SECOND LINE RECORD LOW TEMPERATURES ----------
	WANTROW = not _ifset('single line') and (_ifany(' record low C') or _ifany(' record low F')),
	mode = 'temperature',
	group_name = 'record low',
	second_line = true,
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = 'რეკორდულად დაბალი °' .. _if('metric first', 'F', 'C'),
	show = _if('რეკორდულად დაბალი', '2', '1'),
	annual_mode = 'min',
},
{---------- SECOND LINE MINIMUM WIND CHILL ----------
	WANTROW = not _ifset('single line') and (_ifany(' chill') and _if('metric first')),
	mode = 'basic',
	group_name = 'chill',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = '[[ამინდის სიმკაცრე]]',
	annual_mode = 'min',
},
{---------- SECOND LINE TOTAL PRECIPITATION ----------
	WANTROW = not _ifset('single line') and (_ifany(' precipitation cm') or _ifany(' precipitation mm') or _ifany(' precipitation inch')),
	mode = 'precipitation',
	group_name = 'precipitation',
	second_line = true,
	color_scheme = _ifset('precipitation colour', 'p'),
	date_mode = true,
	scale_factor = '1',
	prefer_cm = precision(_ifset('Jan precipitation inch', '0')) < 1,
	label = makeLabel(args, false, 'საშუალო [[ატმოსფერული ნალექები|ნალექი]]', 'precipitation'),
	annual_mode = 'sum',
},
{---------- SECOND LINE RAINFALL ----------
	WANTROW = not _ifset('single line') and (_ifany(' rain cm') or _ifany(' rain mm') or _ifany(' rain inch')),
	mode = 'precipitation',
	group_name = 'rain',
	second_line = true,
	color_scheme = _ifset('rain colour', 'p'),
	date_mode = true,
	scale_factor = '1',
	prefer_cm = precision(_ifset('Jan rain inch', '0')) < 1,
	label = makeLabel(args, false, 'წვიმის საშუალო რაოდენობა', 'rain'),
	annual_mode = 'sum',
},
{---------- SECOND LINE SNOWFALL ----------
	WANTROW = not _ifset('single line') and (_ifany(' snow cm') or _ifany(' snow mm') or _ifany(' snow inch')),
	mode = 'precipitation',
	group_name = 'snow',
	second_line = true,
	prefer_cm = true,
	color_scheme = _ifset('snow colour', 'p'),
	date_mode = true,
	scale_factor = '1',
	label = makeLabel(args, false, 'საშუალო თოვა', 'snow'),
	annual_mode = 'sum',
},
{---------- PRECIPITATION DAYS ----------
	WANTROW = _ifany(' precipitation days'),
	mode = 'basic',
	group_name = 'precipitation days',
	color_scheme = _ifset('precip days colour', 'd'),
	date_mode = true,
	scale_factor = '1',
	label = 'ნალექიანი დღეები საშუალოდ' .. _if('unit precipitation days', ' <span style="font-size:90%;" class="nowrap">(≥ ' .. _ifset('unit precipitation days', '') .. ')</span>'),
	annual_mode = 'sum',
},
{---------- RAINY DAYS ----------
	WANTROW = _ifany(' rain days'),
	mode = 'basic',
	group_name = 'rain days',
	color_scheme = _ifset('precip days colour', 'd'),
	date_mode = true,
	scale_factor = '1',
	label = 'წვიმიანი დღეები საშუალოდ' .. _if('unit rain days', ' <span style="font-size:90%;" class="nowrap">(≥ ' .. _ifset('unit rain days', '') .. ')</span>'),
	annual_mode = 'sum',
},
{---------- SNOWY DAYS ----------
	WANTROW = _ifany(' snow days'),
	mode = 'basic',
	group_name = 'snow days',
	color_scheme = _ifset('precip days colour', 'd'),
	date_mode = true,
	scale_factor = '1',
	label = 'თოვლიანი დღეები საშუალოდ' .. _if('unit snow days', ' <span style="font-size:90%;" class="nowrap">(≥ ' .. _ifset('unit snow days', '') .. ')</span>'),
	annual_mode = 'sum',
},
{---------- PERCENT RELATIVE HUMIDITY ----------
	WANTROW = _ifany(' humidity'),
	mode = 'basic',
	group_name = 'humidity',
	color_scheme = _ifset('humidity colour', 'h'),
	scale_factor = '1',
	label = 'საშუალო [[ფარდობითი ტენიანობა]] (%)' ..
		_if('time day', ' <span style="font-size:90%;" class="nowrap">' .. _ifset('{{{time day}}}-ზე', '') .. ')</span>') ..
		_if('daily', ' <span style="font-size:90%;" class="nowrap">(საშუალო დღიური)</span>'),
	annual_mode = 'avg',
},
{---------- AFTERNOON PERCENT RELATIVE HUMIDITY ----------
	WANTROW = _ifany(' afthumidity'),
	mode = 'basic',
	group_name = 'afthumidity',
	color_scheme = _ifset('humidity colour', 'h'),
	scale_factor = '1',
	label = 'შუადღის საშუალო [[ფარდობითი ტენიანობა]] (%)' ..
		_if('time day', ' <span style="font-size:90%;" class="nowrap">' .. _ifset('{{{time day}}}-ზე', '') .. ')</span>') ..
		_if('daily', ' <span style="font-size:90%;" class="nowrap">(საშუალო დღიური)</span>'),
	annual_mode = 'avg',
},
{---------- FIRST LINE AVERAGE DEW POINT ----------
	WANTROW = _ifany(' dew point C') or _ifany(' dew point F'),
	mode = 'temperature',
	group_name = 'dew point',
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = '[[ცვრის წერტილი]]ს  საშუალო °C',
	annual_mode = 'avg',
},
{---------- SECOND LINE AVERAGE DEW POINT----------
	WANTROW = not _ifset('single line') and (_ifany(' dew point C') or _ifany(' dew point F')),
	mode = 'temperature',
	group_name = 'dew point',
	second_line = true,
	color_scheme = _ifset('temperature colour', 't'),
	scale_factor = '1',
	label = '[[ცვრის წერტილი]]ს  საშუალო°' .. _if('metric first', 'F', 'C'),
	show = _if('metric first', '2', '1'),
	annual_mode = 'avg',
},
{---------- MONTHLY SUNSHINE HOURS ----------
	WANTROW = _ifany(' sun'),
	mode = 'basic',
	group_name = 'sun',
	color_scheme = _ifset('sun colour', 's'),
	date_mode = true,
	scale_factor = '1',
	label = 'საშუალო თვიური მზიანი საათები',
	annual_mode = 'sum',
},
{---------- DAILY SUNSHINE HOURS ----------
	WANTROW = _ifany('d sun'),
	mode = 'basic',
	group_name = 'd sun',
	color_scheme = _ifset('sun colour', 's'),
	include_space = false,
	scale_factor = '30.44',
	label = 'საშუალო დღიური მზიანი საათები',
	annual_mode = 'avg',
},
{---------- DAILY DAYLIGHT HOURS ----------
	WANTROW = _ifany(' light'),
	mode = 'basic',
	group_name = ' light',
	color_scheme = _ifset('sun colour', 's'),
	include_space = false,
	scale_factor = '30.44',
	label = 'დღის საშუალო ხანგრძლივობა',
	annual_mode = 'avg',
},
{---------- PERCENT SUNSHINE ----------
	WANTROW = _ifany(' percentsun'),
	mode = 'basic',
	group_name = 'percentsun',
	color_scheme = _ifset('sun colour', 's'),
	scale_factor = '7.2',
	label = 'შესაძლო მზის სინათლის პროცენტი',
	annual_mode = 'avg',
},
{---------- ULTRAVIOLET INDEX ----------
	WANTROW = _ifany(' uv'),
	mode = 'basic',
	group_name = 'uv',
	color_scheme = _ifset('uv colour', 'u'),
	scale_factor = '1',
	label = 'საშუალო [[UV ინდექსი]]',
	annual_mode = 'avg',
},
----------- SOURCES ----------
makeSources(frame, args),
}
end

local function makeFrame(self_args, parent_args)
	-- Kludge to pass arguments for a single row to buildRow.
	-- Later: Refactor buildRow so this is not needed.
	return {
		args = self_args,
		getParent = function (self) return makeFrame(parent_args, nil) end,
	}
end

local function main(frame)
	local buildRow = require('Module:Weather box/row').buildRow
	local args = frame:getParent().args
	local results = {}
	for i, def in ipairs(getDefinitions(frame, args)) do
		local row
		if type(def) == 'string' then
			row = def
		elseif def.WANTROW then
			row = buildRow(makeFrame(def, args))
		else
			row = ''
		end
		results[i] = row
	end
	return '<div>\n'..table.concat(results)..'\n</div>'  -- prevent Scribunto from inserting a blank line before the table
end

return {
	main = main,
}