aboutsummaryrefslogtreecommitdiff
path: root/lib/python/qmk/converter.py
diff options
context:
space:
mode:
authorCody Bender <50554676+cfbender@users.noreply.github.com>2019-11-12 21:55:41 -0700
committerskullydazed <skullydazed@users.noreply.github.com>2019-11-12 20:55:41 -0800
commit7329c2d02d38f40a23d38f789de34057fd2acd42 (patch)
treebb4e0640164b71d60714b964a72025517c2ade61 /lib/python/qmk/converter.py
parent00fb1bd1f0550645997b61870d7d092494265a60 (diff)
downloadqmk_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.py33
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 000000000..bbd353131
--- /dev/null
+++ b/lib/python/qmk/converter.py
@@ -0,0 +1,33 @@
1"""Functions to convert to and from QMK formats
2"""
3from collections import OrderedDict
4
5
6def kle2qmk(kle):
7 """Convert a KLE layout to QMK's layout format.
8 """
9 layout = []
10
11 for row in kle:
12 for key in row:
13 if key['decal']:
14 continue
15
16 qmk_key = OrderedDict(
17 label="",
18 x=key['column'],
19 y=key['row'],
20 )
21
22 if key['width'] != 1:
23 qmk_key['w'] = key['width']
24 if key['height'] != 1:
25 qmk_key['h'] = key['height']
26 if 'name' in key and key['name']:
27 qmk_key['label'] = key['name'].split('\n', 1)[0]
28 else:
29 del (qmk_key['label'])
30
31 layout.append(qmk_key)
32
33 return layout