Documentation for this module may be created at Модуль:namespace/doc

local export = {}

local function check(arg, what, n, allow_empty)
	arg = mw.text.trim(arg)
	if not allow_empty and arg == "" then
		arg = nil
	end
	if not arg then
		error("Supply a " .. what .. " as argument " .. n)
	end
	return arg
end

local function get_info(namespace_name_or_id, item)
	local namespace = mw.site.namespaces[namespace_name_or_id]
	if namespace == nil then
		error("Invalid namespace name or id " .. namespace_name_or_id)
	end
	local datum = namespace[item]
	if datum == nil then
		error("Invalid data item " .. item)
	end
	return datum
end

function export.info(frame)
	local namespace_name_or_id = check(frame.args[1], "namespace", 1, true)
	if not namespace_name_or_id then
		error("Supply a namespace as argument 1")
	end
	namespace_name_or_id = tonumber(namespace_name_or_id) or namespace_name_or_id
	local item = check(frame.args[2], "item to look up", 1)
	local datum = get_info(namespace_name_or_id, item)
	if type(datum) == "boolean" then
		return datum and "1" or ""
	elseif not (type(datum) == "string" or type(datum) == "number") then
		error("Unimplemented")
	end
end

return export