From 75474bcb5ec7d1fc0a40d3343c117aad4435edd2 Mon Sep 17 00:00:00 2001 From: zvecr Date: Mon, 17 Jun 2024 01:09:31 +0100 Subject: [PATCH 1/2] Skip parsing g_led_config when matrix_size is missing --- lib/python/qmk/info.py | 26 ++++++++++++++------------ lib/python/qmk/search.py | 11 +++++++++-- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index ffc9d57d68..dc47b7b028 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -754,23 +754,25 @@ def find_keyboard_c(keyboard): def _extract_led_config(info_data, keyboard): """Scan all .c files for led config """ - cols = info_data['matrix_size']['cols'] - rows = info_data['matrix_size']['rows'] - for feature in ['rgb_matrix', 'led_matrix']: if info_data.get('features', {}).get(feature, False) or feature in info_data: # Only attempt search if dd led config is missing if 'layout' not in info_data.get(feature, {}): - # Process - for file in find_keyboard_c(keyboard): - try: - ret = find_led_config(file, cols, rows) - if ret: - info_data[feature] = info_data.get(feature, {}) - info_data[feature]['layout'] = ret - except Exception as e: - _log_warning(info_data, f'led_config: {file.name}: {e}') + cols = info_data.get('matrix_size', {}).get('cols') + rows = info_data.get('matrix_size', {}).get('rows') + if cols and rows: + # Process + for file in find_keyboard_c(keyboard): + try: + ret = find_led_config(file, cols, rows) + if ret: + info_data[feature] = info_data.get(feature, {}) + info_data[feature]['layout'] = ret + except Exception as e: + _log_warning(info_data, f'led_config: {file.name}: {e}') + else: + _log_warning(info_data, f'led_config: matrix size required to parse g_led_config') if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None): info_data[feature]['led_count'] = len(info_data[feature]['layout']) diff --git a/lib/python/qmk/search.py b/lib/python/qmk/search.py index 2afb3033fc..0501b2c35d 100644 --- a/lib/python/qmk/search.py +++ b/lib/python/qmk/search.py @@ -104,9 +104,16 @@ def _set_log_level(level): @contextlib.contextmanager def ignore_logging(): - old = _set_log_level(logging.CRITICAL) + """suppress logging unless verbose execution + """ + old = None + if not cli.config.general.verbose: + old = _set_log_level(logging.CRITICAL) + yield - _set_log_level(old) + + if old is not None: + _set_log_level(old) def _all_keymaps(keyboard): From d1845298dd79d2b825e6380b3d6edd870039c21d Mon Sep 17 00:00:00 2001 From: zvecr Date: Mon, 17 Jun 2024 01:15:16 +0100 Subject: [PATCH 2/2] lint --- lib/python/qmk/info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index dc47b7b028..83a8a26367 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -772,7 +772,7 @@ def _extract_led_config(info_data, keyboard): except Exception as e: _log_warning(info_data, f'led_config: {file.name}: {e}') else: - _log_warning(info_data, f'led_config: matrix size required to parse g_led_config') + _log_warning(info_data, 'led_config: matrix size required to parse g_led_config') if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None): info_data[feature]['led_count'] = len(info_data[feature]['layout'])