summaryrefslogtreecommitdiff
path: root/lib/python/qmk/info.py
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2023-06-02 02:42:49 +0100
committerGitHub <noreply@github.com>2023-06-02 02:42:49 +0100
commit25c16b3adeb15466d75691162763ce062b2c6e64 (patch)
tree69648ca23dde6176ad84aef94cf469e83e6c734b /lib/python/qmk/info.py
parent0a3ec7f59c0b809ae0a0a7a91c427c29c1c9b33c (diff)
Add *_MATRIX_LED_COUNT generation/validation (#19515)
* Add *_MATRIX_LED_COUNT parsing/validation * Disable parsing for now * Disable complexity check
Diffstat (limited to 'lib/python/qmk/info.py')
-rw-r--r--lib/python/qmk/info.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py
index dbd26153d8..6628d825ce 100644
--- a/lib/python/qmk/info.py
+++ b/lib/python/qmk/info.py
@@ -55,7 +55,7 @@ def _get_key_left_position(key):
return key['x'] - 0.25 if key.get('h', 1) == 2 and key.get('w', 1) == 1.25 else key['x']
-def _additional_validation(keyboard, info_data):
+def _additional_validation(keyboard, info_data): # noqa: C901
"""Non schema checks
"""
layouts = info_data.get('layouts', {})
@@ -105,6 +105,14 @@ def _additional_validation(keyboard, info_data):
if not decl.get("aliases", []):
_log_error(info_data, f'Keycode {decl["key"]} has no short form alias')
+ # Ensure LED config is somewhat valid
+ for feature in ['rgb_matrix', 'led_matrix']:
+ if feature in info_data and all(key in info_data[feature] for key in ["layout", "led_count"]):
+ layout_count = len(info_data[feature]["layout"])
+ led_count = info_data[feature]["led_count"]
+ if led_count != layout_count:
+ _log_warning(info_data, '%s: mismatch between LED count (%d) and layout items (%d)' % (feature, led_count, layout_count))
+
def _validate(keyboard, info_data):
"""Perform various validation on the provided info.json data