diff options
author | Nick Brassel <nick@tzarc.org> | 2025-02-26 22:25:41 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-26 22:25:41 +1100 |
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 |