Merges check_icon_dupenames.py and check_icon_conflicts.py (#28587)

* merges check_icon_conflicts and check_icon_dupenames into check_icons.py

* oopsies

* god damn it
This commit is contained in:
chuga-git
2025-03-05 15:15:15 -06:00
committed by GitHub
parent 5b3942da10
commit c550db4e65
4 changed files with 57 additions and 79 deletions
+1 -2
View File
@@ -52,8 +52,7 @@ jobs:
python tools/ci/check_map_sizes.py
python tools/ci/verify_sql_version.py
python tools/ci/no_duplicate_definitions.py
python -m tools.ci.check_icon_conflicts
python -m tools.ci.check_icon_dupenames
python tools/ci/check_icons.py
python -m tools.ci.check_legacy_attack_chain
python -m tools.maplint.source --github
-37
View File
@@ -1,37 +0,0 @@
from collections import defaultdict
import glob
import sys
import time
from ..dmi import Dmi
if __name__ == "__main__":
print("check_icon_conflicts started")
count = 0
exit_code = 0
start = time.time()
findings = defaultdict(list)
for dmi_path in glob.glob("**/*.dmi", recursive=True):
dmi = Dmi.from_file(dmi_path)
for state in dmi.states:
if '!CONFLICT!' in state.name:
findings[dmi_path].append(state.name)
count += 1
if findings:
exit_code = 1
for filename in sorted(findings.keys()):
states = findings[filename]
for state in sorted(states):
print(f"{filename}: conflicted state {state}")
end = time.time()
print(f"\ncheck_icon_conflicts checked {count} files in {end - start:.2f}s\n")
sys.exit(exit_code)
-40
View File
@@ -1,40 +0,0 @@
from collections import defaultdict
import glob
import sys
import time
from ..dmi import Dmi
if __name__ == "__main__":
print("check_icon_dupenames started")
count = 0
exit_code = 0
start = time.time()
findings = defaultdict(list)
for dmi_path in glob.glob("**/*.dmi", recursive=True):
dmi = Dmi.from_file(dmi_path)
states = set()
for state in dmi.states:
# Movement states have the same name as their non-movement counterparts
if (state.name, state.movement) in states:
findings[dmi_path].append(state.name)
states.add((state.name, state.movement))
count += 1
if findings:
exit_code = 1
for filename in sorted(findings.keys()):
states = findings[filename]
for state in sorted(states):
print(f"{filename}: duplicate state name `{state}`")
end = time.time()
print(f"\ncheck_icon_dupenames checked {count} files in {end - start:.2f}s\n")
sys.exit(exit_code)
+56
View File
@@ -0,0 +1,56 @@
from glob import glob
from time import time
from collections import defaultdict
from avulto import DMI
def check_duplicate_names(dmi: DMI) -> list[str]:
states = set()
failures = []
for state in dmi.states():
# Movement states have the same name as their non-movement counterparts
if (state.name, state.movement) in states:
duplicates.append(f"duplicate state name `{state.name}`")
states.add((state.name, state.movement))
return failures
def check_conflicted(dmi: DMI) -> list[str]:
failures = []
for state in dmi.state_names():
if '!CONFLICT!' in state:
failures.append(f"conflicted state {state}")
return failures
ICON_CHECKS = [
check_duplicate_names,
check_conflicted,
]
if __name__ == "__main__":
print("check_icons started")
count = 0
exit_code = 0
start = time()
findings = defaultdict(list)
for dmi_path in glob("**/*.dmi", recursive=True):
dmi = DMI.from_file(dmi_path)
for check in ICON_CHECKS:
if failures := check(dmi):
findings[dmi_path].extend(failures)
count += 1
if findings:
exit_code = 1
for filename in sorted(findings.keys()):
failures = findings[filename]
for failure in sorted(failures):
print(f"{filename}: {failure}")
end = time()
print(f"\ncheck_icons checked {count} files in {end - start:.2f}s")
exit(exit_code)