diff options
author | Cody Bender <50554676+cfbender@users.noreply.github.com> | 2019-11-12 21:55:41 -0700 |
---|---|---|
committer | skullydazed <skullydazed@users.noreply.github.com> | 2019-11-12 20:55:41 -0800 |
commit | 7329c2d02d38f40a23d38f789de34057fd2acd42 (patch) | |
tree | bb4e0640164b71d60714b964a72025517c2ade61 /lib/python/qmk/converter.py | |
parent | 00fb1bd1f0550645997b61870d7d092494265a60 (diff) | |
download | qmk_firmware-7329c2d02d38f40a23d38f789de34057fd2acd42.tar.gz qmk_firmware-7329c2d02d38f40a23d38f789de34057fd2acd42.zip |
Add cli convert subcommand, from raw KLE to JSON (#6898)
* Add initial pass at KLE convert
* Add cli log on convert
* Move kle2xy, add absolute filepath arg support
* Add overwrite flag, and context sensitive conversion
* Update docs/cli.md
* Fix converter.py typo
* Add convert unit test
* Rename to kle2qmk
* Rename subcommand
* Rename subcommand to kle2json
* Change tests to cover rename
* Rename in __init__.py
* Update CLI docs with new subcommand name
* Fix from suggestions in PR #6898
* Help with cases of case sensitivity
* Update cli.md
* Use angle brackets to indicate required option
* Make the output text more accurate
Diffstat (limited to 'lib/python/qmk/converter.py')
-rw-r--r-- | lib/python/qmk/converter.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/python/qmk/converter.py b/lib/python/qmk/converter.py new file mode 100644 index 0000000000..bbd3531317 --- /dev/null +++ b/lib/python/qmk/converter.py @@ -0,0 +1,33 @@ +"""Functions to convert to and from QMK formats +""" +from collections import OrderedDict + + +def kle2qmk(kle): + """Convert a KLE layout to QMK's layout format. + """ + layout = [] + + for row in kle: + for key in row: + if key['decal']: + continue + + qmk_key = OrderedDict( + label="", + x=key['column'], + y=key['row'], + ) + + if key['width'] != 1: + qmk_key['w'] = key['width'] + if key['height'] != 1: + qmk_key['h'] = key['height'] + if 'name' in key and key['name']: + qmk_key['label'] = key['name'].split('\n', 1)[0] + else: + del (qmk_key['label']) + + layout.append(qmk_key) + + return layout |