From 7aa58c284a7d98be77197c406ccc59f6569895ee Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Fri, 9 Aug 2024 11:05:07 +0200 Subject: [PATCH 01/10] feat(standard): one import for most of the standard lib --- components/team_card/team_card_storage.lua | 23 +++++---------- standard/standard.lua | 34 ++++++++++++++++++++++ 2 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 standard/standard.lua diff --git a/components/team_card/team_card_storage.lua b/components/team_card/team_card_storage.lua index 631bfb2ff07..0c10e72d1c1 100644 --- a/components/team_card/team_card_storage.lua +++ b/components/team_card/team_card_storage.lua @@ -5,17 +5,11 @@ -- -- Please see https://github.com/Liquipedia/Lua-Modules to contribute -- +local Standard = require('Module:Standard') +local Opponent = Standard.Opponent +local Variables = Standard.Variables -local Json = require('Module:Json') -local Lua = require('Module:Lua') -local String = require('Module:StringUtils') -local Table = require('Module:Table') -local Variables = require('Module:Variables') - -local Custom = Lua.import('Module:TeamCard/Custom') - -local OpponentLibrary = require('Module:OpponentLibraries') -local Opponent = OpponentLibrary.Opponent +local Custom = Standard.Lua.import('Module:TeamCard/Custom') local TeamCardStorage = {} @@ -48,16 +42,16 @@ function TeamCardStorage.saveToLpdb(args, teamObject, players, playerPrize) lpdbData = Custom.adjustLpdb and Custom.adjustLpdb(lpdbData, team, args, lpdbPrefix) or lpdbData -- Store aliases (page names) for opponenets for setting page vars - if Table.isNotEmpty(teamObject.aliases) then + if Standard.Table.isNotEmpty(teamObject.aliases) then lpdbData.extradata.opponentaliases = teamObject.aliases end -- Store into the standardized lpdb fields - lpdbData = Table.mergeInto(lpdbData, Opponent.toLpdbStruct(Opponent.resolve( + lpdbData = Standard.Table.mergeInto(lpdbData, Opponent.toLpdbStruct(Opponent.resolve( Opponent.readOpponentArgs{type = Opponent.team, template = teamTemplateName} or Opponent.tbd(Opponent.team), lpdbData.date ))) - lpdbData = Json.stringifySubTables(lpdbData) + lpdbData = Standard.Json.stringifySubTables(lpdbData) lpdbData.opponentplayers = lpdbData.players -- Until this is included in Opponent mw.ext.LiquipediaDB.lpdb_placement(lpdbData.objectName, lpdbData) @@ -112,7 +106,7 @@ end ---@return string function TeamCardStorage._getLpdbObjectName(team, lpdbPrefix) local storageName = (team == 'TBD' and 'participant') or 'ranking' - if String.isNotEmpty(lpdbPrefix) then + if Standard.String.isNotEmpty(lpdbPrefix) then storageName = storageName .. '_' .. lpdbPrefix end storageName = storageName .. '_' .. mw.ustring.lower(team) @@ -163,5 +157,4 @@ function TeamCardStorage._parseQualifier(rawQualifier) end end - return TeamCardStorage diff --git a/standard/standard.lua b/standard/standard.lua new file mode 100644 index 00000000000..881bd8bd471 --- /dev/null +++ b/standard/standard.lua @@ -0,0 +1,34 @@ +--- +-- @Liquipedia +-- wiki=commons +-- page=Module:Standard +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Lua = require('Module:Lua') +local OpponentLibrary = Lua.import('Module:OpponentLibraries') + +return { + Array = Lua.import('Module:Array'), + Class = Lua.import('Module:Class'), + Condition = Lua.import('Module:Condition'), + DateExt = Lua.import('Module:Date/Ext'), + Game = Lua.import('Module:Game'), + I18n = Lua.import('Module:I18n'), + Icon = Lua.import('Module:Icon'), + Image = Lua.import('Module:Image'), + Info = Lua.import('Module:Info'), + Json = Lua.import('Module:Json'), + Logic = Lua.import('Module:Logic'), + Lpdb = Lua.import('Module:Lpdb'), + Lua = Lua, + Operator = Lua.import('Module:Operator'), + Opponent = OpponentLibrary.Opponent, + OpponentDisplay = OpponentLibrary.OpponentDisplay, + Page = Lua.import('Module:Page'), + String = Lua.import('Module:StringUtils'), + Table = Lua.import('Module:Table'), + Tier = Lua.import('Module:Tier'), + Variables = Lua.import('Module:Variables'), +} From 447d55a64dbd40ffb2ad526a47e01e537519fa64 Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 7 Oct 2024 11:23:53 +0200 Subject: [PATCH 02/10] remove some based on feedback --- standard/standard.lua | 7 ------- 1 file changed, 7 deletions(-) diff --git a/standard/standard.lua b/standard/standard.lua index 881bd8bd471..b6235b9181e 100644 --- a/standard/standard.lua +++ b/standard/standard.lua @@ -7,28 +7,21 @@ -- local Lua = require('Module:Lua') -local OpponentLibrary = Lua.import('Module:OpponentLibraries') return { Array = Lua.import('Module:Array'), Class = Lua.import('Module:Class'), Condition = Lua.import('Module:Condition'), DateExt = Lua.import('Module:Date/Ext'), - Game = Lua.import('Module:Game'), I18n = Lua.import('Module:I18n'), - Icon = Lua.import('Module:Icon'), - Image = Lua.import('Module:Image'), Info = Lua.import('Module:Info'), Json = Lua.import('Module:Json'), Logic = Lua.import('Module:Logic'), Lpdb = Lua.import('Module:Lpdb'), Lua = Lua, Operator = Lua.import('Module:Operator'), - Opponent = OpponentLibrary.Opponent, - OpponentDisplay = OpponentLibrary.OpponentDisplay, Page = Lua.import('Module:Page'), String = Lua.import('Module:StringUtils'), Table = Lua.import('Module:Table'), - Tier = Lua.import('Module:Tier'), Variables = Lua.import('Module:Variables'), } From 45eed41e0ff3b24c4f92eb8efbdd7caf054ad573 Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 7 Oct 2024 11:25:39 +0200 Subject: [PATCH 03/10] made global on request --- standard/standard.lua | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/standard/standard.lua b/standard/standard.lua index b6235b9181e..52a1fb234a4 100644 --- a/standard/standard.lua +++ b/standard/standard.lua @@ -8,20 +8,18 @@ local Lua = require('Module:Lua') -return { - Array = Lua.import('Module:Array'), - Class = Lua.import('Module:Class'), - Condition = Lua.import('Module:Condition'), - DateExt = Lua.import('Module:Date/Ext'), - I18n = Lua.import('Module:I18n'), - Info = Lua.import('Module:Info'), - Json = Lua.import('Module:Json'), - Logic = Lua.import('Module:Logic'), - Lpdb = Lua.import('Module:Lpdb'), - Lua = Lua, - Operator = Lua.import('Module:Operator'), - Page = Lua.import('Module:Page'), - String = Lua.import('Module:StringUtils'), - Table = Lua.import('Module:Table'), - Variables = Lua.import('Module:Variables'), -} +Array = Lua.import('Module:Array') +Class = Lua.import('Module:Class') +Condition = Lua.import('Module:Condition') +DateExt = Lua.import('Module:Date/Ext') +I18n = Lua.import('Module:I18n') +Info = Lua.import('Module:Info') +Json = Lua.import('Module:Json') +Logic = Lua.import('Module:Logic') +Lpdb = Lua.import('Module:Lpdb') +Lua = Lua +Operator = Lua.import('Module:Operator') +Page = Lua.import('Module:Page') +String = Lua.import('Module:StringUtils') +Table = Lua.import('Module:Table') +Variables = Lua.import('Module:Variables') From 967fbdbcd075cd3019b26c2f9d5bc6f71f2eca52 Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 7 Oct 2024 11:28:58 +0200 Subject: [PATCH 04/10] use _G and update usage --- components/team_card/team_card_storage.lua | 17 ++++++------ standard/standard.lua | 30 +++++++++++----------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/components/team_card/team_card_storage.lua b/components/team_card/team_card_storage.lua index 0c10e72d1c1..f3549cd1a22 100644 --- a/components/team_card/team_card_storage.lua +++ b/components/team_card/team_card_storage.lua @@ -5,11 +5,12 @@ -- -- Please see https://github.com/Liquipedia/Lua-Modules to contribute -- -local Standard = require('Module:Standard') -local Opponent = Standard.Opponent -local Variables = Standard.Variables -local Custom = Standard.Lua.import('Module:TeamCard/Custom') +require('Module:Standard') + +local Custom = Lua.import('Module:TeamCard/Custom') +local OpponentLibrary = require('Module:OpponentLibraries') +local Opponent = OpponentLibrary.Opponent local TeamCardStorage = {} @@ -42,16 +43,16 @@ function TeamCardStorage.saveToLpdb(args, teamObject, players, playerPrize) lpdbData = Custom.adjustLpdb and Custom.adjustLpdb(lpdbData, team, args, lpdbPrefix) or lpdbData -- Store aliases (page names) for opponenets for setting page vars - if Standard.Table.isNotEmpty(teamObject.aliases) then + if Table.isNotEmpty(teamObject.aliases) then lpdbData.extradata.opponentaliases = teamObject.aliases end -- Store into the standardized lpdb fields - lpdbData = Standard.Table.mergeInto(lpdbData, Opponent.toLpdbStruct(Opponent.resolve( + lpdbData = Table.mergeInto(lpdbData, Opponent.toLpdbStruct(Opponent.resolve( Opponent.readOpponentArgs{type = Opponent.team, template = teamTemplateName} or Opponent.tbd(Opponent.team), lpdbData.date ))) - lpdbData = Standard.Json.stringifySubTables(lpdbData) + lpdbData = Json.stringifySubTables(lpdbData) lpdbData.opponentplayers = lpdbData.players -- Until this is included in Opponent mw.ext.LiquipediaDB.lpdb_placement(lpdbData.objectName, lpdbData) @@ -106,7 +107,7 @@ end ---@return string function TeamCardStorage._getLpdbObjectName(team, lpdbPrefix) local storageName = (team == 'TBD' and 'participant') or 'ranking' - if Standard.String.isNotEmpty(lpdbPrefix) then + if String.isNotEmpty(lpdbPrefix) then storageName = storageName .. '_' .. lpdbPrefix end storageName = storageName .. '_' .. mw.ustring.lower(team) diff --git a/standard/standard.lua b/standard/standard.lua index 52a1fb234a4..2277f573454 100644 --- a/standard/standard.lua +++ b/standard/standard.lua @@ -8,18 +8,18 @@ local Lua = require('Module:Lua') -Array = Lua.import('Module:Array') -Class = Lua.import('Module:Class') -Condition = Lua.import('Module:Condition') -DateExt = Lua.import('Module:Date/Ext') -I18n = Lua.import('Module:I18n') -Info = Lua.import('Module:Info') -Json = Lua.import('Module:Json') -Logic = Lua.import('Module:Logic') -Lpdb = Lua.import('Module:Lpdb') -Lua = Lua -Operator = Lua.import('Module:Operator') -Page = Lua.import('Module:Page') -String = Lua.import('Module:StringUtils') -Table = Lua.import('Module:Table') -Variables = Lua.import('Module:Variables') +_G.Array = Lua.import('Module:Array') +_G.Class = Lua.import('Module:Class') +_G.Condition = Lua.import('Module:Condition') +_G.DateExt = Lua.import('Module:Date/Ext') +_G.I18n = Lua.import('Module:I18n') +_G.Info = Lua.import('Module:Info') +_G.Json = Lua.import('Module:Json') +_G.Logic = Lua.import('Module:Logic') +_G.Lpdb = Lua.import('Module:Lpdb') +_G.Lua = Lua +_G.Operator = Lua.import('Module:Operator') +_G.Page = Lua.import('Module:Page') +_G.String = Lua.import('Module:StringUtils') +_G.Table = Lua.import('Module:Table') +_G.Variables = Lua.import('Module:Variables') From 260e2b6c440a91649c30eb54294f64e225f49b7e Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 7 Oct 2024 11:56:26 +0200 Subject: [PATCH 05/10] add ignore? --- standard/standard.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/standard/standard.lua b/standard/standard.lua index 2277f573454..e0cc01a8958 100644 --- a/standard/standard.lua +++ b/standard/standard.lua @@ -6,6 +6,8 @@ -- Please see https://github.com/Liquipedia/Lua-Modules to contribute -- +-- luacheck: ignore 112 + local Lua = require('Module:Lua') _G.Array = Lua.import('Module:Array') From 1f882a74e0d79375a14394362a52747645430c39 Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 7 Oct 2024 12:24:53 +0200 Subject: [PATCH 06/10] this might work? --- .luacheckrc | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/.luacheckrc b/.luacheckrc index f8fe8de4c08..2e8e5b8d03a 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -1,3 +1,40 @@ +config = function() + local cfg = require("luacheck.config").load_default_config() + + -- Function to check if a file imports 'standard.lua' + local function imports_standard(file_content) + return file_content:match("require%s*%(?%s*['\"]Module:Standard['\"]%)?") + end + + -- Add globals to files that import 'standard.lua' + for _, file in ipairs(cfg.files) do + local file_content = require("luacheck.utils").read_file(file) + if file_content and imports_standard(file_content) then + cfg.overrides[file] = { + read_globals = { + "Array", + "Class", + "Condition", + "DateExt", + "I18n", + "Info", + "Json", + "Logic", + "Lpdb", + "Lua", + "Operator", + "Page", + "String", + "Table", + "Variables", + } + } + end + end + + return cfg +end + std = { globals = { "mw", @@ -29,6 +66,7 @@ std = { "xpcall", } } + exclude_files = { ".install", -- package files ".luarocks", -- package manager files From be500daee90bcc7c30dc4e2bca4d9fababe3bc99 Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 7 Oct 2024 12:26:54 +0200 Subject: [PATCH 07/10] maybe? --- .luacheckrc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.luacheckrc b/.luacheckrc index 2e8e5b8d03a..cd89d5c2a04 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -1,4 +1,4 @@ -config = function() +local function newConfig() local cfg = require("luacheck.config").load_default_config() -- Function to check if a file imports 'standard.lua' @@ -35,6 +35,8 @@ config = function() return cfg end +config = newConfig() + std = { globals = { "mw", From 10a296c36486c3a8169895e40e4290b9abc76001 Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 7 Oct 2024 12:38:32 +0200 Subject: [PATCH 08/10] yeet --- .luacheckrc | 55 ++++++++++++++++------------------------------------- 1 file changed, 16 insertions(+), 39 deletions(-) diff --git a/.luacheckrc b/.luacheckrc index cd89d5c2a04..8b921faf349 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -1,42 +1,3 @@ -local function newConfig() - local cfg = require("luacheck.config").load_default_config() - - -- Function to check if a file imports 'standard.lua' - local function imports_standard(file_content) - return file_content:match("require%s*%(?%s*['\"]Module:Standard['\"]%)?") - end - - -- Add globals to files that import 'standard.lua' - for _, file in ipairs(cfg.files) do - local file_content = require("luacheck.utils").read_file(file) - if file_content and imports_standard(file_content) then - cfg.overrides[file] = { - read_globals = { - "Array", - "Class", - "Condition", - "DateExt", - "I18n", - "Info", - "Json", - "Logic", - "Lpdb", - "Lua", - "Operator", - "Page", - "String", - "Table", - "Variables", - } - } - end - end - - return cfg -end - -config = newConfig() - std = { globals = { "mw", @@ -66,6 +27,22 @@ std = { "type", "unpack", "xpcall", + -- From standard.lua + "Array", + "Class", + "Condition", + "DateExt", + "I18n", + "Info", + "Json", + "Logic", + "Lpdb", + "Lua", + "Operator", + "Page", + "String", + "Table", + "Variables", } } From 0b59f856154c491b8f1000ee9284920ca5ac16ad Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 7 Oct 2024 12:39:18 +0200 Subject: [PATCH 09/10] ignore LuaLS in the rc --- .luacheckrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.luacheckrc b/.luacheckrc index 8b921faf349..6bca0d1bbb8 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -1,3 +1,5 @@ + +---@diagnostic disable: undefined-global std = { globals = { "mw", From 6422d116f4083c51ca63da9105fa60c3a3d3e8fd Mon Sep 17 00:00:00 2001 From: Rikard Blixt Date: Mon, 7 Oct 2024 12:39:41 +0200 Subject: [PATCH 10/10] this one too --- .luacheckrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.luacheckrc b/.luacheckrc index 6bca0d1bbb8..4622e61e67a 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -1,4 +1,5 @@ +---@diagnostic disable: lowercase-global ---@diagnostic disable: undefined-global std = { globals = {