diff options
| author | Nick Brassel | 2025-02-26 12:25:41 +0100 |
|---|---|---|
| committer | GitHub | 2025-02-26 12:25:41 +0100 |
| commit | 1efc82403bebe759272d1ba7a79d9dfa0d5df506 (patch) | |
| tree | c356ae7afeb0849926534beb5dd4515f693abf99 /lib/python/qmk/info.py | |
| parent | 63b095212b157c4522bdeda3de144fb87213085d (diff) | |
Community modules (#24848)
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 |