diff options
| author | Joel Challis <git@zvecr.com> | 2023-03-29 13:01:16 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-29 13:01:16 +0100 |
| commit | f56580404d44af8a0e8b7205618c084a9acb3772 (patch) | |
| tree | 872a366bf8b8658829dfacb3fd3e4450938ea90f /lib/python/qmk/cli/generate/api.py | |
| parent | 5bb8f7ae84a7de060d6b04bfa875c6a922777116 (diff) | |
Minify content published to API (#20285)
Diffstat (limited to 'lib/python/qmk/cli/generate/api.py')
| -rwxr-xr-x | lib/python/qmk/cli/generate/api.py | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/lib/python/qmk/cli/generate/api.py b/lib/python/qmk/cli/generate/api.py index 11d4616199..580e080eeb 100755 --- a/lib/python/qmk/cli/generate/api.py +++ b/lib/python/qmk/cli/generate/api.py | |||
| @@ -8,7 +8,6 @@ from milc import cli | |||
| 8 | 8 | ||
| 9 | from qmk.datetime import current_datetime | 9 | from qmk.datetime import current_datetime |
| 10 | from qmk.info import info_json | 10 | from qmk.info import info_json |
| 11 | from qmk.json_encoders import InfoJSONEncoder | ||
| 12 | from qmk.json_schema import json_load | 11 | from qmk.json_schema import json_load |
| 13 | from qmk.keymap import list_keymaps | 12 | from qmk.keymap import list_keymaps |
| 14 | from qmk.keyboard import find_readme, list_keyboards | 13 | from qmk.keyboard import find_readme, list_keyboards |
| @@ -43,14 +42,14 @@ def _resolve_keycode_specs(output_folder): | |||
| 43 | overall = load_spec(version) | 42 | overall = load_spec(version) |
| 44 | 43 | ||
| 45 | output_file = output_folder / f'constants/keycodes_{version}.json' | 44 | output_file = output_folder / f'constants/keycodes_{version}.json' |
| 46 | output_file.write_text(json.dumps(overall), encoding='utf-8') | 45 | output_file.write_text(json.dumps(overall, separators=(',', ':')), encoding='utf-8') |
| 47 | 46 | ||
| 48 | for lang in list_languages(): | 47 | for lang in list_languages(): |
| 49 | for version in list_versions(lang): | 48 | for version in list_versions(lang): |
| 50 | overall = load_spec(version, lang) | 49 | overall = load_spec(version, lang) |
| 51 | 50 | ||
| 52 | output_file = output_folder / f'constants/keycodes_{lang}_{version}.json' | 51 | output_file = output_folder / f'constants/keycodes_{lang}_{version}.json' |
| 53 | output_file.write_text(json.dumps(overall, indent=4), encoding='utf-8') | 52 | output_file.write_text(json.dumps(overall, separators=(',', ':')), encoding='utf-8') |
| 54 | 53 | ||
| 55 | # Purge files consumed by 'load_spec' | 54 | # Purge files consumed by 'load_spec' |
| 56 | shutil.rmtree(output_folder / 'constants/keycodes/') | 55 | shutil.rmtree(output_folder / 'constants/keycodes/') |
| @@ -64,7 +63,7 @@ def _filtered_copy(src, dst): | |||
| 64 | data = json_load(src) | 63 | data = json_load(src) |
| 65 | 64 | ||
| 66 | dst = dst.with_suffix('.json') | 65 | dst = dst.with_suffix('.json') |
| 67 | dst.write_text(json.dumps(data), encoding='utf-8') | 66 | dst.write_text(json.dumps(data, separators=(',', ':')), encoding='utf-8') |
| 68 | return dst | 67 | return dst |
| 69 | 68 | ||
| 70 | return shutil.copy2(src, dst) | 69 | return shutil.copy2(src, dst) |
| @@ -130,7 +129,7 @@ def generate_api(cli): | |||
| 130 | } | 129 | } |
| 131 | 130 | ||
| 132 | keyboard_dir.mkdir(parents=True, exist_ok=True) | 131 | keyboard_dir.mkdir(parents=True, exist_ok=True) |
| 133 | keyboard_json = json.dumps({'last_updated': current_datetime(), 'keyboards': {keyboard_name: kb_json}}) | 132 | keyboard_json = json.dumps({'last_updated': current_datetime(), 'keyboards': {keyboard_name: kb_json}}, separators=(',', ':')) |
| 134 | if not cli.args.dry_run: | 133 | if not cli.args.dry_run: |
| 135 | keyboard_info.write_text(keyboard_json, encoding='utf-8') | 134 | keyboard_info.write_text(keyboard_json, encoding='utf-8') |
| 136 | cli.log.debug('Wrote file %s', keyboard_info) | 135 | cli.log.debug('Wrote file %s', keyboard_info) |
| @@ -144,7 +143,7 @@ def generate_api(cli): | |||
| 144 | keymap_hjson = kb_json['keymaps'][keymap]['path'] | 143 | keymap_hjson = kb_json['keymaps'][keymap]['path'] |
| 145 | keymap_json = v1_dir / keymap_hjson | 144 | keymap_json = v1_dir / keymap_hjson |
| 146 | keymap_json.parent.mkdir(parents=True, exist_ok=True) | 145 | keymap_json.parent.mkdir(parents=True, exist_ok=True) |
| 147 | keymap_json.write_text(json.dumps(json_load(Path(keymap_hjson))), encoding='utf-8') | 146 | keymap_json.write_text(json.dumps(json_load(Path(keymap_hjson)), separators=(',', ':')), encoding='utf-8') |
| 148 | cli.log.debug('Wrote keymap %s', keymap_json) | 147 | cli.log.debug('Wrote keymap %s', keymap_json) |
| 149 | 148 | ||
| 150 | if 'usb' in kb_json: | 149 | if 'usb' in kb_json: |
| @@ -173,12 +172,12 @@ def generate_api(cli): | |||
| 173 | _resolve_keycode_specs(v1_dir) | 172 | _resolve_keycode_specs(v1_dir) |
| 174 | 173 | ||
| 175 | # Write the global JSON files | 174 | # Write the global JSON files |
| 176 | keyboard_all_json = json.dumps({'last_updated': current_datetime(), 'keyboards': kb_all}, cls=InfoJSONEncoder) | 175 | keyboard_all_json = json.dumps({'last_updated': current_datetime(), 'keyboards': kb_all}, separators=(',', ':')) |
| 177 | usb_json = json.dumps({'last_updated': current_datetime(), 'usb': usb_list}, cls=InfoJSONEncoder) | 176 | usb_json = json.dumps({'last_updated': current_datetime(), 'usb': usb_list}, separators=(',', ':')) |
| 178 | keyboard_list_json = json.dumps({'last_updated': current_datetime(), 'keyboards': keyboard_list}, cls=InfoJSONEncoder) | 177 | keyboard_list_json = json.dumps({'last_updated': current_datetime(), 'keyboards': keyboard_list}, separators=(',', ':')) |
| 179 | keyboard_aliases_json = json.dumps({'last_updated': current_datetime(), 'keyboard_aliases': keyboard_aliases}, cls=InfoJSONEncoder) | 178 | keyboard_aliases_json = json.dumps({'last_updated': current_datetime(), 'keyboard_aliases': keyboard_aliases}, separators=(',', ':')) |
| 180 | keyboard_metadata_json = json.dumps(keyboard_metadata, cls=InfoJSONEncoder) | 179 | keyboard_metadata_json = json.dumps(keyboard_metadata, separators=(',', ':')) |
| 181 | constants_metadata_json = json.dumps({'last_updated': current_datetime(), 'constants': _list_constants(v1_dir)}) | 180 | constants_metadata_json = json.dumps({'last_updated': current_datetime(), 'constants': _list_constants(v1_dir)}, separators=(',', ':')) |
| 182 | 181 | ||
| 183 | if not cli.args.dry_run: | 182 | if not cli.args.dry_run: |
| 184 | keyboard_all_file.write_text(keyboard_all_json, encoding='utf-8') | 183 | keyboard_all_file.write_text(keyboard_all_json, encoding='utf-8') |
