diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index d308de9db8..dac2fd6e9e 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -374,7 +374,7 @@ def _extract_split_right_pins(info_data, config_c): unused_pins = unused_pin_text.replace('{', '').replace('}', '').strip() if isinstance(unused_pin_text, str) else None direct_pins = config_c.get('DIRECT_PINS_RIGHT', '').replace(' ', '')[1:-1] - if row_pins and col_pins: + if row_pins or col_pins or direct_pins or unused_pins: if info_data.get('split', {}).get('matrix_pins', {}).get('right') in info_data: _log_warning(info_data, 'Right hand matrix data is specified in both info.json and config.h, the config.h values win.') @@ -387,37 +387,17 @@ def _extract_split_right_pins(info_data, config_c): if 'right' not in info_data['split']['matrix_pins']: info_data['split']['matrix_pins']['right'] = {} - info_data['split']['matrix_pins']['right'] = { - 'cols': _extract_pins(col_pins), - 'rows': _extract_pins(row_pins), - } + if col_pins: + info_data['split']['matrix_pins']['right']['cols'] = _extract_pins(col_pins) - if direct_pins: - if info_data.get('split', {}).get('matrix_pins', {}).get('right', {}): - _log_warning(info_data, 'Right hand matrix data is specified in both info.json and config.h, the config.h values win.') + if row_pins: + info_data['split']['matrix_pins']['right']['rows'] = _extract_pins(row_pins) - if 'split' not in info_data: - info_data['split'] = {} + if direct_pins: + info_data['split']['matrix_pins']['right']['direct'] = _extract_direct_matrix(direct_pins) - if 'matrix_pins' not in info_data['split']: - info_data['split']['matrix_pins'] = {} - - if 'right' not in info_data['split']['matrix_pins']: - info_data['split']['matrix_pins']['right'] = {} - - info_data['split']['matrix_pins']['right']['direct'] = _extract_direct_matrix(direct_pins) - - if unused_pins: - if 'split' not in info_data: - info_data['split'] = {} - - if 'matrix_pins' not in info_data['split']: - info_data['split']['matrix_pins'] = {} - - if 'right' not in info_data['split']['matrix_pins']: - info_data['split']['matrix_pins']['right'] = {} - - info_data['split']['matrix_pins']['right']['unused'] = _extract_pins(unused_pins) + if unused_pins: + info_data['split']['matrix_pins']['right']['unused'] = _extract_pins(unused_pins) def _extract_matrix_info(info_data, config_c):