diff options
author | Nick Brassel <nick@tzarc.org> | 2025-02-28 09:23:04 +1100 |
---|---|---|
committer | Nick Brassel <nick@tzarc.org> | 2025-02-28 09:23:04 +1100 |
commit | a63fd7f01cdabd9ce85bb09ae2b573fd3b8e60aa (patch) | |
tree | 35d817580e5244d62a150a2d012f72906a610977 /lib/python/qmk/info.py | |
parent | 6d0e5728aa61b442885d48caf49d29e5c60e8197 (diff) | |
parent | cdb865cf60b17593f5c811c24a21d7b3030d8653 (diff) |
Merge remote-tracking branch 'upstream/develop'
Diffstat (limited to 'lib/python/qmk/info.py')
-rw-r--r-- | lib/python/qmk/info.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index d70e7ee1b3..93eba7376a 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -1059,3 +1059,30 @@ def keymap_json(keyboard, keymap, force_layout=None): _extract_config_h(kb_info_json, parse_config_h_file(keymap_config)) return kb_info_json + + +def get_modules(keyboard, keymap_filename): + """Get the modules for a keyboard/keymap. + """ + modules = [] + + if keymap_filename: + keymap_json = parse_configurator_json(keymap_filename) + + if keymap_json: + kb = keymap_json.get('keyboard', None) + if not kb: + kb = keyboard + + if kb: + kb_info_json = info_json(kb) + if kb_info_json: + modules.extend(kb_info_json.get('modules', [])) + + modules.extend(keymap_json.get('modules', [])) + + elif keyboard: + kb_info_json = info_json(keyboard) + modules.extend(kb_info_json.get('modules', [])) + + return list(dict.fromkeys(modules)) # remove dupes |