From 25c16b3adeb15466d75691162763ce062b2c6e64 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 2 Jun 2023 02:42:49 +0100 Subject: Add *_MATRIX_LED_COUNT generation/validation (#19515) * Add *_MATRIX_LED_COUNT parsing/validation * Disable parsing for now * Disable complexity check --- lib/python/qmk/info.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'lib') 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 -- cgit v1.2.3